sqlpre(long*length,int*precision,int*scale); ¸Ãº¯ÊýµÄÔÐÍÔÚsqlcpr.hÎĵµÖС£²ÎÊý˵Ã÷ÈçÏ£º
¡¤length:Ö¸Ïò´æ´¢NUMBERÖµ³¤¶ÈµÄ³¤ÕûÊý±äÁ¿µÄÖ¸Õë¡£¶ÔÓÚ±äÁ¿LÀ´Ëµ£¬³¤¶È±»´æ´¢µ½L[i]ÖУ¬¶ø¾«¶ÈºÍ±ê¶È·Ö±ð´æ´¢ÔڸñäÁ¿µÄµÍ×ֽں͸ß×Ö½ÚÖС£
¡¤precision£ºÖ¸ÏòÕûÊý±äÁ¿µÄÖ¸Õ룬NUMBERÖµµÄ¾«¶È·µ»Øµ½¸Ã±äÁ¿ÖС£ ¡¤scale: Ö¸ÏòÕûÊý±äÁ¿µÄÖ¸Õ룬NUMBERÖµµÄ±ê¶È·µ»Øµ½¸Ã±äÁ¿ÖС£
¸Ãº¯ÊýÖ»ÄÜÓÃÓÚ·ÇÏß³ÌÓ¦Ó᣶ø¼ÙÈçÒªÔÚÏß³ÌÓ¦ÓÃÖÐÍê³ÉͬÑù¹¦ÄÜ£¬ÔòÐèҪʹÓú¯Êýsqlprct()¡£ÁíÍ⣬ҲÄܹ»Ê¹ÓÃSQLLIBµÄк¯ÊýSQLNumberProV6(),¸Ãº¯Êý¼È¿ÉÓÃÓÚÏß³ÌÓ¦ÓÃÓÖ¿ÉÓÃÓÚ·ÇÏß³ÌÓ¦ÓᣠÔÚÖ´ÐÐFETCHÃüÁîǰ£¬»¹±ØÐëÅäÖÃL[i]¡£ÀýÈ磬µ±½«NUMBERֵת»»ÎªcharÀàÐÍʱ£¬Ó¦¸Ã½«L[i]ÅäÖÃΪ¾«¶È¼Ó¶þ£¨Ò²¼´Êý×ÖλÊý+·ûºÅλ+СÊýµã£©£»¶øµ±½«NUMBERֵת»»ÎªfloatÀàÐÍʱ£¬Ó¦¸Ã½«L[i]ÅäÖÃΪ¸¡µãÊýµÄ³¤¶È¡£
¶ÔÓÚ°ó¶¨ÃèÊöÇøÀ´Ëµ£¬ÔÚÖ´ÐÐOPENÃüÁîǰ±ØÐëÅäÖñäÁ¿L¡£ÀýÈ磬ÎÒÃÇÄܹ»Í¨¹ýʹÓú¯Êýstrlen()»ñµÃ°ó¶¨±äÁ¿×Ö·û´®µÄ³¤¶È£¬¶ûºó½«±äÁ¿LÅäÖÃΪ¸Ã³¤¶ÈÖµ¡£ ¡¤±äÁ¿T£º
±äÁ¿TÊÇÖ¸Ïò²éѯÁбíÖµ»ò°ó¶¨±äÁ¿ÖµµÄÊý¾ÝÀàÐÍ´úÂëÊý×éµÄÖ¸Õ룬ÕâЩÊý×éÀàÐÍ´úÂëÈ·¶¨ÁËÈçºÎ½øÐÐÊý¾ÝÀàÐÍת»»¡£
ÏÂÃæÁгöÁËOracleÄÚ²¿Êý¾ÝÀàÐÍËù¶ÔÓ¦µÄ´úÂ룺 OracleÄÚ²¿Êý¾ÝÀàÐÍ Êý¾ÝÀàÐÍ´úÂë VARCHAR2 1 NUMBER 2 LONG 8 ROWID 11 DATE 12 RAW 23 LONG ROW 24
CHARTER£¨»òVHAR£© 96 MISLABLE 106
ÏÂÃæÁгöÁËOracleÍⲿÊý¾ÝÀàÐÍËù¶ÔÓ¦µÄ´úÂëÁ¬Í¬CÊý¾ÝÀàÐÍ£º OracleÄÚ²¿Êý¾ÝÀàÐÍ Êý¾ÝÀàÐÍ´úÂë CÊý¾ÝÀàÐÍ VARCHAR2 1 char[n] NUMBER 2 char[n](n 22) INTEGER 3 int
FLOAT 4 float
STRING 5 Float char[n+1] VARNUM 6 char[n](n 22) DECIMAL 7 float LONG 8 char[n] VARCHAR 9 char[n+2] ROWID 11 char[n] DATE 12 char[n] VARRAW 15 char[n] RAW 23 unsigned Char[n] LONG RAW 24 unsigned Char[n] UNSIGNED 68 unsigned int DISPLAY 91 char[n]
LONG VARCHAR 94 char[n+4] LONG VARRAW 95 unsigned char[n+4] CHARTER£¨»òVHAR£© 96 char[n] MISLABLE 106 char[n]
¶ÔÓÚ²éѯÃèÊöÇøÀ´Ëµ£¬DESCRIBESELECT LIST ÃüÁOracleÄÚ²¿Êý¾ÝÀàÐÍËù¶ÔÓ¦µÄ´úÂë·µ»Øµ½ÁËÊý¾ÝÀàÐÍ´úÂëÊý×éÖС£ÔÚʹÓÃFETCHÃüÁî¼ìË÷Êý¾Ýʱ£¬Oracle»á×Ô¶¯ÔÚÄÚ²¿ºÍÍⲿÊý¾ÝÀàÐÍ¼ä½øÐÐת»»£¬µ«¶ÔÓÚÓÐЩÊý¾ÝÀàÐÍÔÚÖ´ÐÐFETCHÃüÁîǰ¾ÍÐèÒª½øÐÐÊý¾ÝÀàÐÍת»»¡£¶ÔÓÚ×Ö·ûÊý¾ÝÀ´Ëµ£¬±È½ÏÈÝÒ×´¦Àí£¬µ«ÊÇÓÐЩÀàÐ͵ÄÊý¾Ý´¦ÀíÆðÀ´¿ÉÄܱȽÏÀ§ÄÑ£¬´Ëʱ¾ÍÐèÒªÖØÐÂÅäÖÃTµÄÔªËØÁË¡£ÀýÈ磬½«NUMBERµÄÖµÖØÖÃΪFLOAT»òINT¡£
T[i]µÄ¸ßλ´æ´¢×ŵÚi¸ö²éѯÁбíÏîµÄNULLNOTNULL״̬ÐÅÏ¢¡£ÔÚÖ´ÐÐOPEN»òFETCHÃüÁîǰ±ØÐëÇå³ý¸Ã룬ÕâÄܹ»Í¨¹ýµ÷Óú¯Êýsqlnul()À´Íê³É¡£º¯Êýsqlnul()µÄÓï·¨ÈçÏ£º Sqlnul(unsigned short *value_type,unsigned short *type_code,int*null_status)£» ²ÎÊý˵Ã÷ÈçÏ£º
¡¤values_type:Ö¸ÏòÎÞ·ûºÅ¶ÌÕûÊý±äÁ¿µÄÖ¸Õ룬¸Ã±äÁ¿´æ´¢×ŲéѯÁбíÏîµÄÊý¾Ý´úÂëÀàÐÍ£¬¶øÊý¾ÝÀàÐÍ´æ´¢ÔÚT[i]ÖС£
¡¤type_code£ºÖ¸ÏòÎÞ·ûºÅ¶ÌÕûÊý±äÁ¿µÄÖ¸Õ룬¸Ã±äÁ¿·µ»ØÁ˲éѯÁбíÏîµÄÊý¾ÝÀàÐÍ´úÂë¡£
¡¤null_status£ºÖ¸ÏòÕûÊý±äÁ¿µÄÖ¸Õ룬¸Ã±äÁ¿·µ»ØÁ˲éѯÁбíÏîµÄNULLNOT NULL״̬¡£ÆäÖУ¬1±íʾÔÊÐí¸ÃÁÐΪ¿Õ£¬¶ø0±íʾ²»ÔÊÐí¸ÃÁÐΪ¿Õ¡£
¶ÔÓÚ°ó¶¨ÃèÊöÇøÀ´Ëµ£¬DESCRIBEBIND VARIABLESÃüÁÊý¾ÝÀàÐÍ´úÂëÊý×éÅäÖÃΪ0¡£ÔÚÖ´ÐÐOPENÃüÁîǰ±ØÐëÅäÖô洢ÔÚÿ¸öÔªËØÖеÄÊý¾ÝÀàÐÍ´úÂ룬¸Ã´úÂë±íʾÁËV[i]ËùÖ¸ÏòµÄÊý¾Ý»º³åÇøÖÐÊý¾ÝµÄÍⲿ
´æ´¢ÀàÐÍ¡£Ò»°ãÇé¿öÏ£¬°ó¶¨±äÁ¿Öµ¶¼±»´æ´¢ÔÚ×Ö·û´®ÖУ¬ËùÒÔÊý¾ÝÀàÐÍÊý×éÔªËØ¾ù±»ÅäÖÃΪ1£¨VARCHAR2µÄÊý¾ÝÀàÐÍ´úÂ룩£¬µ±È»Ò²¿ÉʹÓÃÊý¾ÝÀàÐÍ´úÂë5£¨STRING£©¡£ ¡¤±äÁ¿I:
±äÁ¿IÊÇÖ¸ÏòÊý¾Ý»º³åÇøµØÖ·Êý×éµÄÖ¸Õ룬ÔÚ¸ÃÊý¾Ý»º³åÇøÖд洢×Åָʾ±äÁ¿Öµ¡£
¶ÔÓÚ²éѯÃèÊöÇøÀ´Ëµ£¬ÔÚÖ´ÐÐFETCHÃüÁîǰ¡£µ±Ö´ÐÐEXEC SQL FETCH¡USINGDESCRIPTOR¡Óï¾äʱ£¬¼ÙÈçµÚi¸ö²éѯÁбíֵΪNULL£¬ÄÇôI[i]ËùÖ¸ÏòµÄָʾ±äÁ¿Öµ±»ÅäÖÃΪ-1£¬·ñÔò±»ÖÃΪ0£¨±íʾֵΪNOT NULL£©»òÕýÕûÊý£¨±íʾֵ±»½Ø¶Ï£©¡£
¶ÔÓÚ°ó¶¨ÃèÊöÇøÀ´Ëµ£¬ÔÚÖ´ÐÐÃüÁîǰ±ØÐëΪ±äÁ¿I·ÖÅäÄÚ´æ¡£µ±Ö´ÐÐEXECSQL OPEN¡USING DESCRIPTOR¡Óï¾äʱ£¬I[i]ËùÖ¸ÏòµÄÊý¾Ý»º³åÇøÄܹ»È·¶¨µÚi¸ö°ó¶¨±äÁ¿ÊÇ·ñÓÐNULLÖµ¡£¼ÙÈç±äÁ¿ÖµÎª-1£¬ÔòÏàÓ¦µÄ°ó¶¨±äÁ¿ÖµÎªNULL¡£ ¡¤±äÁ¿F£º
±äÁ¿FÊÇÖ´ÐÐÁËDESCRIBEÃüÁîËùÕÒµ½µÄ²éѯÁбíÏî»òռλ·ûµÄʵ¼ÊλÊý¡£¼ÙÈç±äÁ¿FµÄֵСÓÚ0£¬Ôò±íʾÕÒµ½µÄ²éѯÁбíÏî»òռλ·û¸öÊýÌ«¶à£¬³¬³öÁËÃèÊöÇø³ß´ç¡£ ¡¤±äÁ¿S£º
±äÁ¿SÊÇÖ¸ÏòÊý¾Ý»º³åÇøµØÖ·Êý×éµÄÖ¸Õ룬ÔÚ¸ÃÊý¾Ý»º³åÇøÖд洢×ŲéѯÁбíÏî»òռλ·ûµÄÃû³Æ¡£ ÔÚÖ´ÐÐÁËDESCRIBEÃüÁîºó£¬µÚi¸ö²éѯÁбíÏî»òռλ·ûµÄÃû³Æ±»±£´æµ½S[i-1]ËùÖ¸ÏòµÄÊý¾Ý»º³åÇøÖС£
¡¤±äÁ¿C£º
±äÁ¿CÊÇÖ¸ÏòÊý×éµÄÖ¸Õ룬¸ÃÊý×é±£´æ×ŲéѯÁбíÏî»òռλ·ûÃû³ÆµÄµ±Ç°³¤¶È¡£
ÔÚÖ´ÐÐÁËDESCRIBEÃüÁîºó£¬ÔªËØC[0]µ½C[N-1]±»ÅäÖÃΪÿ¸ö²éѯÁбíÏî»òռλ·ûÃû³ÆµÄʵ¼Ê×Ö·û¸öÊý¡£
ÔÚSQLDAÖиüÓÐÆäËû¼¸¸ö±äÁ¿£¬°üÀ¨±äÁ¿M¡¢±äÁ¿X¡¢±äÁ¿Y¡¢±äÁ¿Z£¬ÒòÆä×÷ÓÃÔÚ³ÌʽÖÐÏà¶Ô´ÎÒª£¬ÕâÀï²»×÷½éÉÜ¡£ [Ŀ¼]
-------------------------------------------------------------------------------- ±àÒëºÍÁ´½Ó
ÔÚÏµÍ³ÌØ¶¨µÄOracleÎĵµÄھ߱¸¹ØÓÚÈçºÎ±àÒëºÍÁ´½ÓPro*C/C++Ó¦ÓóÌʽµÄÖ¸ÁÔÚUNIXϵͳÖÐÓÐÒ»¸ömakeÎĵµ£¬ÔÚdemoĿ¼ÖгÆÎªproc.mk¡£Ö´Ðд˳Ìʽ¼´¿É·½±ãµØÍê³ÉÈçÏÂÁ½ÏÄÜ£º ¡¤½«ÄÚǶSQLºÍPL/SQLת»»Îª¶ÔOracleÔËÐпâµÄµ÷Óã¬Í¬Ê±Éú³Éת»»ºóµÄC»òC ++Ô´´úÂë¡£ ¡¤¾¹ý±àÒëºÍÁ´½ÓÉú³É¿ÉÖ´ÐгÌʽ¡£
Ö´ÐбàÒëºÍÁ´½ÓʱÔÚUNIXÃüÁîÐÐÖÐÊäÈëÃüÁ make ¨Cf proc.mk [Ô´³ÌʽÃû]
¼´¿É½«ºó׺Ϊ.pcµÄÔ´Îĵµ±àÒëΪºó׺Ϊ.exeµÄ¿ÉÖ´ÐÐÎĵµ¡£

