1 ʲôÊÇPro*C/C++
2¡¢Ê²Ã´ÊÇǶÈëʽSQL
| 1¡¢ÔÚͨÓñà³ÌÓïÑÔÖÐʹÓõÄSQL³ÆÎªÇ¶ÈëʽSQL |
| 2¡¢ÔÚSQL±ê×¼Öж¨ÒåÁ˺ܶàÖÐÓïÑÔµÄǶÈëʽSQL |
| 3¡¢¸÷¸ö³§É̶ÔǶÈëʽSQLµÄ¾ßÌåʵÏÖ²»Í¬ |
3¡¢Ê²Ã´ÊÇPro*C/C++
| 1¡¢ÔÚC/C++ÓïÑÔÖÐǶÈëSQLÓï¾ä¶ø¿ª·¢³öµÄÓ¦ÓóÌÐò¡£ |
| 2¡¢Ä¿µÄ£ºÊ¹c/c++ÕâÖÖЧÂÊÓïÑÔ³ÆÎª·ÃÎÊÊý¾Ý¿âµÄ¹¤¾ß¡£ |
4¡¢Ç¶ÈëʽSQLµÄÔØÌåÊÇËÞÖ÷ÓïÑÔ
| ËÞÖ÷ÓïÑÔ Pro³ÌÐò C/C++ Pro*C/C++ FORTRAN Pro*FORTRAN PASCAL Pro*PASCAL COBOL Pro*COBOL PL/I Pro*PL/I Ada Pro*Ada |
5¡¢·ÃÎÊÊý¾Ý¿âµÄ·½·¨
| £¨1£©ÓÃSQL * Plus,ËüÓÐSQLÃüÁîÒÔ½»»¥µÄÓ¦ÓóÌÐò·ÃÎÊÊý¾Ý¿â£» |
| £¨2£©ÓõÚËÄ´úÓïÑÔÓ¦Óÿª·¢¹¤¾ß¿ª·¢µÄÓ¦ÓóÌÐò·ÃÎÊÊý¾Ý¿â£¬ÕâЩ¹¤¾ßÓÐSQL*Froms£¬QL*Reportwriter,SQL*MenuµÈ. £¨3£©ÀûÓÃÔÚµÚÈý´úÓïÑÔǶÈëµÄSQLÓïÑÔ»òORACLE¿âº¯ÊýÀ´µ÷ÓÃÀ´·ÃÎÊ¡£·ÃÎÊoracleÊý¾Ý¿âµÄ·½·¨¡£ |
| ÆäËü£º
|
6¡¢µÚÒ»¸öpro*C³ÌÐò
A ÔÚ½øÐÐpro*c³ÌÐò¿ª·¢µÄʱºò£¬ÒªÅäÖÃ/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/adminϵÄpcscfg.cfg¡£

ÉÏÃæµÄÅäÖÃÊÇÒ»¸öÕýÈ·µÄÅäÖá£
B ´´½¨dm01_hello.pc
ÎļþÄÚÈÝÈçÏ£º
| ÒÀÀµµÄÍ·Îļþ£º /home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/publicϵÄSQLCA.H |
| dm01_hello.pcÎļþÄÚÈÝ£¨Ê¹ÓÃUE¹¤¾ß£¬±£´æºó¼´¿Éͨ¹ýFTPÉÏ´«µ½·þÎñÆ÷ÉÏ£© |
| #include #include #include "sqlca.h" //¶¨ÒåËÞÖ÷±äÁ¿ serverid EXEC SQL BEGIN DECLARE SECTION; //¸ñʽ£ºÓû§Ãû/Óû§ÃÜÂë@·þÎñÆ÷Ãû char *serverid = "scott/123456@orcl"; EXEC SQL END DECLARE SECTION; int main() { int ret = 0; printf("hello....\n"); //ÔÚCÖÐÊÇËÞÖ÷±äÁ¿ printf("serverid:%s \n", serverid); //ǶÈëʽSQLÓïÑÔ±ØÐëÒªÒÔ EXEC SQL¿ªÍ· //:serverid ¼ÓÉÏ£º±íʾʹÓÃÕâ¸ö±äÁ¿ EXEC SQL connect :serverid; if (sqlca.sqlcode != 0) { ret = sqlca.sqlcode; printf("EXEC SQL connect:err, %d\n", ret); return ret; } printf("connect ok\n"); return ret; } |
| ±àÒë²¢ÔËÐУºdm01_hello.pc£¬Ö´ÐеÄÃüÁîÊÇ£ºproc dm01_hello.pc
½Ó×ÅÉú³É.outÎļþ¡£ ×¢ÒâÒ»¸ö´íÎó1£º
³öÏÖÉÏÃæµÄ´íÎóµÄÔÒòÊÇûÓÐÒýÈë¹²Ïí¿â£¬Òª°´ÕÕÏÂÃæµÄ·½Ê½Ö´ÐУº gcc dm01_hello.c -o dm01_hello -I/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/public -L/home/oracle_11/app/oracle/product/11.2.0/db_1/lib ¨Clclntsh ÉÏÃæµÄÊÇÒýÈëclntsh.soÕâ¸ö¹²Ïí¿â ×¢Òâ´íÎó2£º [oracle@localhost day03]$ ./dm01_hello hello.... serverid:scott/123456@orcl EXEC SQL connect:err, -12541 ¿ÉÒÔͨ¹ýÏÂÃæµÄÃüÁî²é¿´´íÎóÔÒò£º oerr ora 12541 £¨Õâ¸ö´íÎóÊÇÒòΪ¼àÌýδÆô¶¯£© ÕâʱºòÒª£º sqlplus /nolog conn /as sysdba startup quit ÔÚÖ´ÐÐ: lsnrctl start £¨¿ÉÒÔͨ¹ýps ¨Cu oracleÃüÁî²é¿´oracleÏà¹ØÆô¶¯·þÎñ£© ÔÙÖ´ÐеÄʱºò¾Í²»»á³öÏÖ´íÎóÁË¡£ |
7 PreCompile±àÒëÆ÷Ô¤±àÒë³ÌÐò
| 1¡¢¸Ã¹¤¾ßÔÚʲôµØ·½ |
| ¹¦ÄÜ£ºÍê³ÉPro*cÔ´³ÌÐòµ½´¿CÔ´³ÌÐòµÄת»» |
| »ù±¾ÃüÁî¸ñʽ£º PROC INAME=filename [OptionName1=value1]¡[OptionNameN=valueN] ³£ÓñàÒëÑ¡Ï INAME=path and filename (name of the input file) ONAME=path and filename (name of the output file) INCLUDE=path (Í·ÎļþËùÔÚ·¾¶£© --INCLUDE =·¾¶Ãû»ò INCLUDE =(·¾¶Ãû1,·¾¶Ãû2) PARSE=FULL | PARTIA | NONE (default FULL for C, Others for C++) Èç¹ûÏë±àÒëc++£¬Òª¸Ä³ÉPARTIA»òNONE CODE=ANSI_C | CPP (default ansi_c) USERID=username/password |
8 proc±àÒëc++Îļþ
ĬÈÏÇé¿öÏÂprocÊDZàÒë .c ÎļþµÄ¡£ÒªÏë±àÒëc++Îļþ£¬ÐèÒªÖ´ÐÐÀàËÆÏÂÃæµÄ²Ù×÷£º
proc iname=./dm02_hello.pconame=dm02_hello.cc PARSE=NONE CODE=CPP
| #include #include #include #include "sqlca.h" using namespace std; //¶¨ÒåËÞÖ÷±äÁ¿ serverid EXEC SQL BEGIN DECLARE SECTION; char *serverid = "scott/123456@orcl"; EXEC SQL END DECLARE SECTION; int main() { int ret = 0; cout << "hello..." << endl; //ÔÚCÖÐËÞÖ÷±äÁ¿ printf("serverid:%s \n",serverid); //ǶÈëʽSQLÓïÑÔ±ØÐëÒªÒÔEXEC SQL¿ªÍ· //:serverid ÒªÒýÓÃserveridʱ£¬ÒªÊ¹Ó㺠EXEC SQL connect :serverid; if(sqlca.sqlcode != 0) { ret = sqlca.sqlcode; printf("EXEC SQL connect:err,%d\n",ret); return ret; } printf("connect ok \n"); return ret; } |
| Ö´ÐÐÃüÁ proc iname=./dm02_hello.pc oname=dm02_hello.cc PARSE=NONE CODE=CPP Ö´Ðнá¹û£º
×¢ÒâÉÏÃæºìÏß²¿·ÖºÍÖ´ÐÐCµÄ²»Ïàͬ |
| ½Ó×űàÒëccÎļþ£º g++ dm02_hello.cc -o dm02_hello -I/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/public -L/home/oracle_11/app/oracle/product/11.2.0/db_1/lib ¨Clclntsh
|
9.±àдһ¸ö×î¼òµ¥µÄMakeFile
| all:dm01_hello dm02_hello |






