Estamos criando um programa para realizar a conexão com um banco de dados Postgre, só que ocorre erro ao executar o programa: "Ocorreu um erro durante acesso a componente da propriedada\método: activeconection. A operação solicitada requer um objeto OLE DB session, para o qual não há suporte do provedor atual." O código utilizado é o seguinte: Código: DEF VAR chConexao AS COM-HANDLE NO-UNDO. DEF VAR chComando AS COM-HANDLE NO-UNDO. DEF VAR chRegistro AS COM-HANDLE NO-UNDO. DEF VAR odbcRegistro AS INTEGER NO-UNDO. DEF VAR odbcNulo AS CHARACTER NO-UNDO. DEF VAR odbcPonteiro AS INTEGER NO-UNDO. DEF VAR cSQL AS CHARACTER FORMAT "X(2000)" NO-UNDO. CREATE "ADODB.Connection" chConexao. CREATE "ADODB.Command" chComando. chConexao:open("Provider=PostgreSQL30;Data Source=PostGreSQL30", "User ID=postgres", "password=postgres", 1000). MESSAGE 'Vou conectar' VIEW-AS ALERT-BOX INFO BUTTONS OK. chComando:ActiveConnection = chConexao. MESSAGE 'Conexão OK' VIEW-AS ALERT-BOX INFO BUTTONS OK. ASSIGN cSQL = "SELECT * FROM nota_fiscal". DEFINE VARIABLE i AS INTEGER NO-UNDO. /* Executa a instrução SQL */ chComando:CommandText = cSQL. chConexao:CursorLocation = 3 . chRegistro = chComando:EXECUTE(OUTPUT odbcNulo,"",32) . assign i = chRegistro:RecordCount. MESSAGE i VIEW-AS ALERT-BOX INFO BUTTONS OK. No código acima, o erro ocorre nessa instrução: Código: chComando:ActiveConnection = chConexao. . Alguém sabe o que pode estar errado? Obrigado.
Descobrimos o problema, a conexão correta é a seguinte: Código: chConexao:open("Data Source=PostgreSQL30;Server=informar_o_IP", /* Data Source deve ser o nome da conexão ODBC criada em fontes de dados ODBC do Windows */ "user", /* usuário */ "password", /* senha */ -1). /* timeout - deixar -1, se ocorrer algum erro então o programa não ficará aguardando */