Conexão com Banco Oracle

Discussão em 'Banco de Dados / Database' iniciado por marcelo.mca, Janeiro 5, 2011.

  1. marcelo.mca

    marcelo.mca Sem Pontuação

    Boa Tarde a todos!

    Pessoal, estou com um problema e gostaria se possível da ajuda de vocês. Preciso so Progress, fazer uma conexão com um banco Oracle para realizar um consulta apenas. Preciso fazer isto sem utilizar Dataserver for Oracle ou schema holder. Sabem se é possível? Se sim, sabem como fazer isto na pratica?

    Achei uma informação no tópico viewtopic.php?f=12&t=2410&p=7715 , mas la não descreve a forma como esta conexão é feita.

    Desde já muito obrigado a todos!!!
  2. marcelo.mca

    marcelo.mca Sem Pontuação

    Bom Dia,

    Pessoal, consegui a solucionar a questão que eu havia perguntado acima. Com base em uns exemplos de conexão com o SQL Server utilizando componentes ADO e uma KB do Progress, cheguei a uma solução. Segue abaixo o código e quem precisar de mais informações o KB P116614 do ProKB ou o link da web direto para ele http://progress.atgnow.com/esprogress/j ... ue=p116614 .


    Código:
    /* Conexão com o Oracle */
    
    DEFINE VARIABLE ObjConnection 	AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE ObjCommand 		AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE ObjRecordSet     AS COM-HANDLE NO-UNDO.
    DEFINE VARIABLE ODBC-DSN 		  AS CHARACTER NO-UNDO.
    DEFINE VARIABLE ODBC-SERVER 	  AS CHARACTER NO-UNDO.
    DEFINE VARIABLE ODBC-USERID      AS CHARACTER NO-UNDO.
    DEFINE VARIABLE ODBC-PASSWD 	  AS CHARACTER NO-UNDO.
    DEFINE VARIABLE ODBC-QUERY 		AS CHARACTER NO-UNDO.
    DEFINE VARIABLE ODBC-STATUS 	  AS CHARACTER NO-UNDO.
    DEFINE VARIABLE ODBC-NULL 		 AS CHARACTER NO-UNDO.
    DEFINE VARIABLE ODBC-RECCOUNT 	AS INTEGER NO-UNDO.
    DEFINE VARIABLE ODBC-CURSOR 	  AS INTEGER NO-UNDO.
    
    ASSIGN ODBC-DSN	 = "nome_do_odbc" 		  /* Oracle ODBC DSN */                              
           ODBC-SERVER = "localhost" 		     /* The name of the server hosting the Oracle DB and DSN */
           ODBC-USERID = "usuario_oracle"		 /* The user id for access to the OracleDatabase */
           ODBC-PASSWD = "senha_oracle"		   /* Password required by above user-id */
           ODBC-QUERY  = "select QTDE from vw_saldo_estoque_htl v where v.CD_PRODUTO = '000000001'". /* Select */
    
    CREATE "ADODB.Connection" ObjConnection.    /* Create the connection object for the link to Oracle */
    CREATE "ADODB.RecordSet" ObjRecordSet.      /* Create a recordset object ready to return the data */
    CREATE "ADODB.Command" ObjCommand.          /* Create a command object for sending the SQL statement */
    
    ObjConnection:OPEN ("data source=" + ODBC-DSN + ";server=" + ODBC-SERVER, ODBC-USERID, ODBC-PASSWD, 0) NO-ERROR.
    
    IF (ERROR-STATUS:NUM-MESSAGES > 0) THEN DO:
        ODBC-STATUS = "Error: Could not establish connection.".
        RETURN.
    END.
    
    ELSE DO: /* informações em http://www.w3schools.com/ado/prop_comm_commandtype.asp */
    ObjCommand:ActiveConnection = ObjConnection.
    ObjCommand:CommandType = 1.             /* adCmdText */
    ObjCommand:CommandText = ODBC-QUERY.
    ObjConnection:CursorLocation = 3.       /* adUseClient */
    ObjRecordSet:CursorType = 3.            /* adOpenStatic */
    ObjRecordSet = ObjCommand:Execute(OUTPUT ODBC-NULL, "", 32). 
    ODBC-RECCOUNT = ObjRecordSet:RecordCount. 
    ODBC-CURSOR = 0.
    
    /* Retorno do select */
    MESSAGE ObjRecordSet:FIELDS ("qtde"):VALUE VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
    
    END.
    Vlw!

Compartilhe esta Página