A simpler option is the ASP call a URL of the Progress and a return XML that will be used by VB.
It is as if the ASP that a RUN in Progress program and receive data back
Vide
http://starweb-software.no-ip.info:8000/exemplo-asp/
Asp code
---------
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>Exemplo010<br><hr></div>
<asp:XmlDataSource ID="dsClientes" runat="server" DataFile="
http://starweb-software.no-ip.info:8000/scripts/demo.pl/exemplos/xml/exemplo130" XPath="/dados/clientes/cliente"></asp:XmlDataSource>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="dsClientes">
<Columns>
<asp:BoundField DataField="codigo" HeaderText="Código" />
<asp:BoundField DataField="nome" HeaderText="Nome do cliente" />
<asp:BoundField DataField="cidade" HeaderText="Cidade" />
<asp:BoundField DataField="estado" HeaderText="Estado" />
<asp:BoundField DataField="pais" HeaderText="Pais" />
</Columns>
</asp:GridView>
</form>
</body>
</html>
Progress 4GL Code (/exemplos/xml/exemplo130.p)
-----------------------------------------------
{ cgi/cgi-cgi.i &carregarSuportePara="XML"}
output-content-type("text/xml").
documentoXML-AbrirDocumento("WEB").
documentoXML-Tabela("dados").
documentoXML-Registro("clientes").
FOR EACH Customer NO-LOCK:
documentoXML-CampoComAtributo("cliente").
documentoXML-AtributoDoCampo("codigo",STRING(Customer.Cust-Num)).
documentoXML-AtributoDoCampo("nome",Customer.Name).
documentoXML-AtributoDoCampo("cidade",Customer.City).
documentoXML-AtributoDoCampo("estado",Customer.State).
documentoXML-AtributoDoCampo("pais",Customer.Country).
END.
documentoXML-FecharDocumento().