[NEWSboard IBMi Forum]

Thema: SQL / CLI

  1. #1
    Registriert seit
    Jan 2008
    Beiträge
    122

    SQL / CLI

    Suche SQL-/CLI-Guru für (tel.) Support

    __________________________________________________ _______________________

    EMSENHUBER INFORMATIK
    Wielandsthal 41
    A-3130 Herzogenburg
    ++43(0)2782/82443-0 Fax DW-40
    http://www.emsenhuber.at
    __________________________________________________ _______________________

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Was willst du wissen ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2008
    Beiträge
    122
    Sg. Herr Fürchau, wir haben folgende VARPG-Problematik: Wir wollen via ODBC extrem flexibel auf DB400, DB2, SQLServer, & Andere zugreifen. Der VARPG zwingt uns aber ein GUI-Programm einzusetzen um die ODBC-Komponente nutzen zu können. Wir "müssen" aber ODBC aus einer (VARPG)DLL aufrufen und so stellt sich die Frage ist der ODBC-Aufruf auch über eine DB(Treiber-) DLL möglich ? wenn ja wie heissen diese DLL's und wie sieht die Parameterübergabe im VARPG aus.

    Mfg
    Anton Emsenhuber


  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Dazu gibts die CLI-Routinen von Microsoft:
    ODBC-API-Implementierungsdetails
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jan 2008
    Beiträge
    122
    danke für den Tipp; gibt's VARPG-Muster-/Beispielprogramme ?; komme für die Unkosten (nach vorheriger Absprache) natürlich auf

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Muss es denn unbedingt VARPG sein ?
    Mittels PC-Sprachen (VB6, VB.NET o.ä.) sind die Zugriffe doch wesentlich einfacher zu gestalten, da es zumindest mit ADO/ADO.NET extrem vereinfachte Zugriffsmöglichkeiten gibt.

    Ansonsten gilt:
    Jede CLI-Funktion muss als Prototyp deklariert werden (wie man beim Prototyp die DLL angibt, weiß ich nicht).
    Die Funktionen sind alle in der "odbccp32.dll".

    Auf der AS/400 gibts das auch, deshalb hatte ich mir mal da ein Beispiel gemacht:

    Code:
    d**********************************************************************
    d* Definition Funktionsprototypen                                      
    d**********************************************************************
    dSQLAllocEnv      pr            10I 0 EXTPROC('SQLAllocEnv')           
    d  pHENV                        10I 0                                  
     
    dSQLFreeEnv       pr            10I 0 EXTPROC('SQLFreeEnv')            
    d  pHENV                        10I 0 value                            
     
    dSQLAllocCon      pr            10I 0 EXTPROC('SQLAllocConnect')       
    d  HENV                         10I 0 value                            
    d  pHDBC                        10I 0                                  
                                                                           
    dSQLFreeCon       pr            10I 0 EXTPROC('SQLFreeConnect')
    d  HDBC                         10I 0 value                    
     
    dSQLConnect       pr            10I 0 EXTPROC('SQLConnect')    
    d  HDBC                         10I 0 value                    
    d  szDSN                       256    options(*varsize)        
    d  cbDSN                         5I 0 value                    
    d  szUID                       256    options(*varsize)        
    d  cbUID                         5I 0 value                    
    d  szAUT                       256    options(*varsize)        
    d  cbAUT                         5I 0 value                    
    dSQLDisconnect    pr            10I 0 EXTPROC('SQLDisconnect')  
    d  HDBC                         10I 0 value                     
     
    dSQLAllocStmt     pr            10I 0 EXTPROC('SQLAllocStmt')   
    d  HDBC                         10I 0 value                     
    d  pHSTMT                       10I 0                           
                                                                    
    dSQLFreeStmt      pr            10I 0 EXTPROC('SQLFreeStmt')     
    d  HSTMT                        10I 0 value                      
    d  fOption                       5I 0 value                      
     
    dSQLPrepare       pr            10I 0 EXTPROC('SQLPrepare')      
    d  HSTMT                        10I 0 value                      
    d  szSqlStr                  32766    options(*varsize)          
    d  cbSqlStr                      5I 0 value                      
     
    dSQLNumResCols    pr            10I 0 EXTPROC('SQLNumResultCols')
    d  HSTMT                        10I 0 value                      
    d  pCCOL                         5I 0                            
                                                                     
    dSQLDescribeCol   pr            10I 0 EXTPROC('SQLDescribeCol')
    d  HSTMT                        10I 0 value                    
    d  ICOL                          5I 0 value                    
    d  szColName                   128    options(*varsize)        
    d  cbColNameMax                  5I 0 value                    
    d  pcbColName                    5I 0                          
    d  pfSqlType                     5I 0                          
    d  pcbColDef                    10I 0                          
    d  pibScale                      5I 0                          
    d  pfNull                        5I 0                          
    d**********************************************************************
    d* Definition Konstanten                                               
    d**********************************************************************
    d* Sql-Returns                                                         
    d SQL_SUCCESS     c                   const(  0)                       
    d SQL_SUCCESS_I   c                   const(  1)                       
    d SQL_NO_DATA     c                   const(100)                       
    d SQL_NEED_DATA   c                   const( 99)                       
    d SQL_ERROR       c                   const( -1)                       
    d SQL_INV_HAND    c                   const( -2)                       
     
    d* Sql-Drop                                                            
    d SQL_CLOSE       c                   const( 1)                        
    d SQL_DROP        c                   const( 2)                        
    d SQL_UNBIND      c                   const( 3)                        
    d SQL_RESET_P     c                   const( 4)                        
                                                                           
    d* Sql-Allgemein                               
    d SQL_FALSE       c                   const( 0)
    d SQL_TRUE        c                   const( 1)
    d SQL_NTS         c                   const(-3)
    d SQL_SQLSTATS    c                   const( 5)
     
    d SQL_NO_NULLS    c                   const( 0)
    d SQL_NULLABLE    c                   const( 1)
     
    d* Sql-Feldtypen                               
    d SQL_CHAR        c                   const( 1)
    d SQL_NUMERIC     c                   const( 2)
    d SQL_DECIMAL     c                   const( 3)
    d SQL_INTEGER     c                   const( 4)
    d SQL_SMALLINT    c                   const( 5)
    d SQL_FLOAT       c                   const( 6)
    d SQL_REAL        c                   const( 7)
    d SQL_DOUBLE      c                   const( 8)
    d SQL_DATETIME    c                   const( 9)
    d SQL_VARCHAR     c                   const(12)
    d SQL_BLOB        c                   const(13)
    d SQL_CLOB        c                   const(14)
    d SQL_DBCLOB      c                   const(15)
    d SQL_DATALINK    c                   const(16)
    d SQL_WCHAR       c                   const(17)
    d SQL_WVARCHAR    c                   const(18)
    d SQL_BIGINT      c                   const(19)
    d SQL_BLOB_LOC    c                   const(20)
    d SQL_CLOB_LOC    c                   const(21)
     
    d SQL_DBCLOB_LOC  c                   const(22) 
    d SQL_WLONGVARCH  c                   const(18) 
    d SQL_LONGVARCHA  c                   const(12) 
    d SQL_GRAPHIC     c                   const(95) 
    d SQL_VARGRAPHIC  c                   const(96) 
    d SQL_LONGVARGRA  c                   const(96) 
    d SQL_BINARY      c                   const(97) 
    d SQL_VARBINARY   c                   const(98) 
    d SQL_LONGVARBIN  c                   const(98) 
    d SQL_DATE        c                   const(91) 
    d SQL_TYPE_DATE   c                   const(91) 
    d SQL_TIME        c                   const(92) 
    d SQL_TYPE_TIME   c                   const(92) 
    d SQL_TIMESTAMP   c                   const(93) 
    d SQL_TYPE_TS     c                   const(93)
    Die Reihenfolge der Verwendung ist:

    SqlAllocEnv
    SQLSetEnvAttr <= je Attribut
    SQLAllocConnect
    SQLSetConnectAttr <= je Attribut
    SQLConnect
    SQLAllocStmt
    SQLExecDirect <= kann jeder Befehl sein

    SQLNumResultCols
    SQLColAttributes <= Information je Spalte und Attribut

    SqlBindCol <= Zuweisung Pufferadresse

    Schleife bis Ende:
    SQLFetch <= Lesen der Daten

    SQLFreeStmt
    SQLDisconnect
    SQLFreeConnect
    SqlFreeEnv

    Ich hoffe das reicht mal fürs probieren.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    Jan 2008
    Beiträge
    122
    DANKE für diese aufwendige info, hat uns ein gutes stück weitergebracht. alternativen zu varpg sind erst in einer weiteren migrationsphase ein thema

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. SQL CLI Apis: Datenbankverindung trennen
    By sim in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 30-08-04, 07:30

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •