Conexão com banco de dados Postgre

Discussão em 'Progress 4GL' iniciado por jonas, Janeiro 30, 2012.

  1. jonas

    jonas Membro Participativo

    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.
  2. jonas

    jonas Membro Participativo

    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 */
    

Compartilhe esta Página