Hrmcobol,
Fiz há algum tempo atras um software para transferir ficheiros de PowerCobol para uma base de dados de um site na Internet.
Está tudo feito em PowerCobol V9.0, cria as tabelas no SQL do site, apaga as tabelas também, e escreve e le dados, tudo através duma ligação á Internet.
Não utiliza ODBC, faz a ligação direta á base de dados.
A única diferença é que utilizei tudo, através de comandos COM/OLE2 e o ADO.
Código COBOL:
INVOKE COM "CREATE-OBJECT" USING ADO-CONNECTION-TYPE RETURNING OBJ-CONNECTION.
INVOKE COM "CREATE-OBJECT" USING ADO-COMMAND-TYPE RETURNING OBJ-COMMAND.
INVOKE COM "CREATE-OBJECT" USING ADO-RECORDSET-TYPE RETURNING OBJ-RECORDSET(1).
**
*** DEFINE AND OPEN CONNECTION
**
INITIALIZE ADO-CONNECT-STRING.
STRING
"Driver=" ADO-DRIVER DELIMITED BY ";" "; " DELIMITED BY SIZE
"Server=" ADO-SERVER DELIMITED BY ";" "; " DELIMITED BY SIZE
"Port=" ADO-PORT DELIMITED BY ";" "; " DELIMITED BY SIZE
"UID=" ADO-UID DELIMITED BY ";" "; " DELIMITED BY SIZE
"PWD=" ADO-PWD DELIMITED BY ";" "; " DELIMITED BY SIZE
"CHARSET=" ADO-CHARSET DELIMITED BY ";" "; " DELIMITED BY SIZE
"DATABASE=" ADO-DATABASE DELIMITED BY ";"
"; " DELIMITED BY SIZE
INTO ADO-CONNECT-STRING.
*
MAIN-05.
* MOVE "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\RPS13_SRC\RPSFtsEIbd\Database5.accdb;Jet OLEDB:Database;" TO ADO-CONNECT-STRING.
*
MOVE "SETCONNECTIONSTRING " TO INSTRUCAO.
*
INVOKE OBJ-CONNECTION "SET-CONNECTIONSTRING" USING ADO-CONNECT-STRING RETURNING RETURN-ERROR.
IF RETURN-ERROR NOT = 0 DISPLAY "ERRO: CONNECTION STRING" STOP " " GO TO MAIN-99-EXIT.
*
MOVE "OPEN CONNECTION" TO INSTRUCAO.
INVOKE OBJ-CONNECTION "OPEN" RETURNING RETURN-ERROR.
IF RETURN-ERROR NOT = 0 DISPLAY "ERRO:OPEN CONNECTION" STOP " " GO TO MAIN-99-EXIT.
*
Já subi, algum tempo atrás, para o foro um exemplo de como ligar por esse processo e ler dados da base de dados. --> Base de Dados DBF por OLE2
Se estiveres interessado na utilização de COM/OLE2, poderei dar-te uma ajuda, com um pequeno exemplo.
Un saludo,
Rui Pinto