Why not just let the RPG team extract the SQL statements and
pass the SQL statement to functions written by the SQL Team? 


Please tell me if I'm reading too much into your question, but based on some of your earlier comments I gather that you're somewhat repulsed by the compiler generating traditional program calls to perform functions like "fetch", which might be called thousands of times when reading a cursor, where procedure calls would be more efficient.

For comparison purposes, you could look at the procedures exported by QRNXIO, when you code "F" specs and RLA op codes. The compiler evidently generates code to call the following:

_QRNX_OPEN     
_QRNX_CLOSE    
_QRNX_FEOD     
_QRNX_POST     
_QRNX_PRT_WRITE
_QRNX_WS_ACQ   
_QRNX_WS_CHAIN 
_QRNX_WS_EXFMT 
_QRNX_WS_READ  
_QRNX_WS_READC 
_QRNX_WS_REL   
_QRNX_WS_UPDATE
_QRNX_WS_WRITE 
_QRNX_COMMIT   
_QRNX_ROLBK    
_QRNX_DB_CHAIN 
_QRNX_DB_DELETE  
_QRNX_DB_READ    
_QRNX_DB_READE   
_QRNX_DB_READP   
_QRNX_DB_SETLL   
_QRNX_DB_UNLOCK  
_QRNX_DB_UPDATE  
_QRNX_DB_WRITE   
_QRNX_RAF_READ   
_QRNI_IO_EH      
_QRNI_PRT_PUT_EH 
_QRNI_COMMIT_EH  
_QRNI_ROLBK_EH   
_QRNI_DB_GET_EH  
_QRNI_DB_READE_EH
_QRNI_DB_SETLL_EH
_QRNI_DB_CHAIN_EH 
_QRNI_DB_DELETE_EH
_QRNI_DB_UPDATE_EH
_QRNI_DB_WRITE_EH 
_QRNI_ACQ_REL_EH  
_QRNI_WS_CHAIN_EH 
_QRNI_WS_EXFMT_EH 
_QRNI_WS_READC_EH 
_QRNI_WS_WRITE_EH 
_QRNI_WS_UPDATE_EH
_QRNI_CLOSE_EH    
_QRNI_OPEN_EH     
_QRNI_RAF_EH      
_QRNI_WS_READ_EH  
_QRNI_FEOD_EH     

What if the compiler generated code that called SQLCLI functions?

SQLAllocConnect 
SQLAllocEnv     
SQLAllocHandle  
SQLAllocStmt    
SQLBindCol      
SQLBindParam    
SQLCancel       
SQLCloseCursor  
SQLColAttributes
SQLColumns      
SQLConnect    
SQLCopyDesc   
SQLDescribeCol
SQLDisconnect 
SQLEndTran    
SQLError      
SQLExecDirect 
SQLExecute    
SQLFetch      
SQLFetchScroll
SQLFreeConnect     
SQLFreeEnv         
SQLFreeHandle      
SQLFreeStmt        
SQLGetCol          
SQLGetConnectOption
SQLGetCursorName   
SQLGetConnectAttr  
SQLGetData         
SQLGetDescField    
SQLGetDescRec   
SQLGetDiagField 
SQLGetDiagRec   
SQLGetEnvAttr   
SQLGetFunctions 
SQLGetInfo      
SQLGetStmtAttr  
SQLGetStmtOption
SQLLanguages    
SQLNumResultCols
SQLSetEnvAttr    
SQLSetParam      
SQLSetStmtAttr   
SQLSetStmtOption 
SQLSpecialColumns
SQLStatistics    
SQLTables        
SQLTransact      
SQLExtendedFetch 
SQLBindParameter 
SQLDataSources     
SQLDescribeParam   
SQLForeignKeys     
SQLGetTypeInfo     
SQLMoreResults     
SQLNativeSql       
SQLNumParams       
SQLPrimaryKeys     
SQLProcedureColumns
SQLProcedures      
SQLDriverConnect   
SQLGetLength       
SQLGetPosition     
SQLGetSubString    
SQLBindFileToCol   
SQLBindFileToParam 
SQLParamOptions    
SQLNextResult      
SQLStartTran       
SQLColumnPrivileges
SQLTablePrivileges

Or perhaps someone would be interested in writing an OAR interface that wrapped SQLCLI? That would really streamline the SQL interface!

-Nathan


This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].