Âý¡¢·±Ëö¡£ÎÒÒÔΪ£¬¡°Ô¶³ÌÊÓͼ¡±ÊÇ×é¼þ»¯µÄSPT£¬ÊÇ΢Èí¹«Ë¾¶ÔSPT²¿·Ö¹¦ÄܵÄͼÏñ»¯·â×°£¬ËùÒÔËüÏԵøüÓÐÉú²úЧÂÊ£¬Í¬Ê±ÓÉÓÚϵͳ×÷µÃ¶àÁË£¬¹¦ÄÜÒ²¾ÍÈõÁË£¬¡°Ô¶³ÌÊÓͼ¡±ÄÜ×öµÃ¾ÍÊÇÄÇЩÊÂÇ顪¡ª´ÓÊý¾ÝÔ´¶Áȡһ¸ö½á¹û¼¯£¬ÔÚ¿Í»§¶Ë¶ÔËüά»¤£¬²¢×Ô¶¯½«±ä¶¯½á¹û¸üе½Êý¾ÝÔ´¡£È»¶ø×÷Ϊϵͳ¿ª·¢£¬ÎÒÃÇ»áÔÚʵ¼ùÖÐÓöµ½ÁÖÁÖ×Ü×Ü¡¢ÆæÆæ¹Ö¹ÖµÄÐèÇó£¬Ö»ÓС°Ô¶³ÌÊÓͼ¡±¶ÀÁ¢µ£µ±ÏÔÈ»ÊDz»Ðеģ¬ËùÒÔSPTµÄ³öÏÖÓÐËüµÄ±ØÈ»ÐÔ¡£ÔÚÆäËûµÄÔ¶³ÌÊý¾Ý´¦Àí×é¼þÖÐÒ²ÓÐÀàËÆµÄ¸ÅÄÀýÈçADOÖеÄRecordSetÏ൱ÓÚVisual FoxProµÄÔ¶³ÌÊÓͼ£¬CommandÏ൱ÓÚVisual FoxProµÄSPT¡£
13¸öSPTº¯Êý
Visual FoxPro ÖÐÄÚÖÃÁË13¸öÒÔSQL¿ªÍ·µÄº¯Êý£¬ÎÒÃǰÑËüÃdzÆÎªSPTº¯Êý¡£¾ÍÊÇÕâ13¸öº¯ÊýÍê³ÉÁËVisual FoxProµÄËùÓеÄSQL Pass Though¹¦ÄÜ¡£´Ó¹¦ÄÜÉÏ¿´£¬ÎÒÃÇ¿ÉÒÔ°ÑËüÃÇ·Ö³ÉÎå¸ö²¿·Ö£º
Á¬½Óº¯Êý
Á¬½Ó½¨Á¢º¯Êý£ºSqlConnect(),SqlStringConnect()
Á¬½ÓµÄ¶Ï¿ªº¯Êý£ºSqlDisconnect()
ºËÐĵÄÖ´Ðк¯Êý
SQLÓï¾ä´«Êä¼°Ö´Ðк¯Êý£ºSqlExec(),SqlPrapare()
Åú´Îģʽϸü¶àÊý¾Ý¼¯µÄÈ¡µÃº¯Êý£ºSqlMoreResults()
Ò첽ģʽϳ·ÏúÕýÔÚÖ´ÐеÄSPTµÄº¯Êý£ºSqlCancel()
ÊÂÎñ´¦Àíº¯Êý
SqlCommit(),SqlRollBack()
Á¬½ÓͨµÀÊôÐÔº¯Êý
SqlGetProp(),SqlSetProp()
Êý¾ÝÔ´µÄÐÅÏ¢½ØÈ¡º¯Êý
SqlTables(),SqlColumns()
Á¬½Óµ½SQL Server
Á¬½Ó
SqlConnect()µÄÁ½ÖÖÓ÷¨
Ò»°ãÀ´ËµSqlConnectÓÐÁ½ÖÖÓ÷¨£ºÖ±½Óµ÷ÓòÙ×÷ϵͳÀïµÄÓû§ÐÍ»òϵͳÐÍDNS£»Ê¹Óõ±Ç°Êý¾Ý¿âDBCµÄÁ¬½Ó¶ÔÏó¡£
Èç¹ûÒѾÔÚ²Ù×÷ϵͳÖÐÖÆ×÷ÁËÒ»¸öÃûΪLocalServerµÄϵͳÐÍDNS£¬ÔÚÃüÁî´°¿ÚÖÐÎÒÃǾͿÉÒÔÖ±½Ó¼üÈ룺
SQLCONNECT(\£¬\
Èç¹ûµ±Ç°Êý¾Ý¿âÖдæÔÚÁ¬½Ó¶ÔÏó£¬ÎÒÃǾͿÉÒÔÕâÑùµ÷ÓÃËü£º
SQLCONNECT(\
SqlStringConnect()º¯ÊýµÄÓ÷¨
ÔÚÓÃÁËSqlConnectÒԺ󣬴ó¼ÒÒ²Ðí»á·¢ÏÖ²»Ì«×ÔÓÉ£¬Äܲ»Äܼ°Ê±¶¯Ì¬½¨Á¢Á¬½ÓÄØ£¿¿ÉÒԵģ¬ÓÃSqlStringConnect()¾Í¿ÉÒÔÁË£º
SQLSTRINGCONNECT(\
Server;Server=See-you;Uid=sa;pwd=;database=northwind\
ÎÒÃǽâÊÍһϲÎÊý×Ö·û´®µÄÒâÒ壬driverÖ¸Ã÷ÁËʹÓÃÄÄÒ»¸öODBCÇý¶¯³ÌÐò£¬ÕâÀïÊÇSQL Server£»ServerÊÇÖ¸SQL ServerµÄ·þÎñÆ÷Ãû³Æ£¬ÎҵķþÎñÆ÷½Ð£ºSee-You£»UIDÊÇÔÚSQL ServerµÄÓû§Ãû³Æ£¬ÕâÀïʹÓÃSA£»PWDÊÇÓû§¿ÚÁÕâÀïΪ¿ÕÖµ£»×îºóÎÒÃÇÖ¸¶¨ÁËÒªÁ¬½ÓµÄÊý¾Ý¿âµÄÃû×Ö£¬Õâ´ÎÎÒÃÇÈÔȻʹÓÃNorthWindÊý¾Ý¿â¡£ËùÓÐÕâЩÌõ¼þ×é³ÉÁËÒ»¸ö×Ö·û´®£¬¸÷Ìõ¼þÓ÷ֺŷָÎÒµÄʵÑé±íÃ÷¶ÔÕâ´óСдµÄÒªÇ󲻸ߣ¬µ±È»²»°üÀ¨Óû§¿ÚÁîºÍÓû§Ãû¡£
¹ØÓÚÁ¬½ÓµÄÁ½´óÎÊÌâ
Á¬½Ó½¨Á¢ÆðÀ´ºÜ¼òµ¥£¬µ«ÉÐÓÐÎÊÌâÒª½â¾ö£ºÔõôÅжÏÁ¬½ÓÊÇ·ñ³É¹¦£¿ÔõôÆÁ±ÎSQL ServerµÄµÇ½¶Ô»°¿ò£¿
µÚÒ»¸öÎÊÌâºÜºÃ½â¾ö£¬Ö»ÒªSqlConnect()»òÊÇSqlStringConnect()·µ»ØÕýÕûÊý£¨>0µÄÊý£©¾Í±íʾÁ¬½Ó³É¹¦£¬µÃµ½µÄÕýÕûÊýºÜÖØÒª¡ª¡ª¾ÍÊÇÁ¬½Ó¾ä±ú£¡
STORE SQLCONNECT('LocalServer', 'sa','´íÎóÃÜÂë') TO gnConnHandle IF gnConnHandle <= 0
= MESSAGEBOX('Á¬½Ó´íÎó', 16, 'Á¬½Óµ½SQL Server') ELSE
= MESSAGEBOX('Á¬½Ó³É¹¦', 48, 'Á¬½Óµ½SQL Server')
ENDIF
ÔÚÓÐЩʱºò£¬Á¬½Ó·¢Éú´íÎó»áµ¯³öÒÔÏÂÁ½¸öÌáʾ¿ò£¨ÓÐʱ³öÏÖǰһ¸ö¡¢ÓÐʱ³öÏÖºóÒ»¸ö£¬ÓÐ
ʱÁ¬Ðø³öÏÖ£©£º
Á¬½Ó´íÎóÌáʾ
SQL ServerµÄµÇ¼Ìáʾ
ÕâÊÇÒ»¸öÈÃÈËÃÔ»óµÄµÄÎÊÌ⣬ÎÒÒÔΪ£ºµÚÒ»¸ö¡°Á¬½Ó´íÎóÌáʾ¡±ÊÇÏÞÓÚVisual FoxPro»òODBCµÄ²ã´Î£¬Ò²¾ÍÊÇ˵ÓëSQL ServerÎ޹أ¬ÕâÖÖ´íÎóµÄ³öÏÖÍùÍùÊÇÕÒ²»µ½SQL Server·þÎñÆ÷Ö®ÀàµÄÎÊÌ⣬ÈçÒÔϵÄÓï¾ä£º
SQLSTRINGCONNECT(\
Server;Server=See-y1ou;Uid=sa;pwd=;database=northwind\
ÕâÊÇΪÁËÈÃÓû§¸üÕýÁ¬½ÓÐÅÏ¢µÄ£¬µ«ÊÇÔÚʵ¼Ê¿ª·¢ÖÐûÓÐÄĸö³ÌÐòԱϣÍû´Ë¶Ô»°¿ò±©Â¶ÔÚÓû§ÃæÇ°¡£Èç¹ûÎÒÃÇʹÓõÄÁ¬½ÓÊÇDBCµÄÁ¬½Ó¶ÔÏó£¬ÎÊÌâ¾Í±È½ÏºÃ½â¾ö£¬ÒòΪÔÚ½¨Á¢Á¬½ÓʱÎÒÃÇ¿ÉÒÔÉ趨Á¬½Ó¶Ô»°¿òµÄ³öÏÖ¹æÂÉ£º
ͬÑùµÄÎÒÃÇ¿ÉÒÔͨ¹ýÃüÁîÀ´¿ØÖÆ¡°ÏÔʾ ODBC µÇ¼Ìáʾ¡±£º
DBSETPROP(\·¢ÉúÁ¬½Ó´íÎóʱµ¯³ö DBSETPROP(\ÈκÎʱºò×ÜÊÇÎóʱµ¯³ö DBSETPROP(\·¢ÈκÎʱºò¶¼²»µ¯³ö
µ«Êǵ±ÎÒÃÇʹÓÃÁ¬½Ó×Ö·û´®¡¢Ö±½ÓʹÓòÙ×÷ϵͳµÄDNSʱ£¬ËüÃǶ¼²»ÊÇVisual FoxProµÄDBCÖеÄÁ¬½Ó¶ÔÏ󣬾Ͳ»ÄÜÓÃÒÔÉϵķ½·¨¿ØÖÆ£¬ÎÒÃÇ¿ÉÒÔÉ趨Visual FoxProµÄ»·¾³£º
SQLSETPROP(0,\
×¢ÒâÎÒ¶ÔµÚÒ»¸ö²ÎÊý¸³ÖµÎª0£¬±íÃ÷É趨µÄÊǶÔVisual FoxProµÄϵͳ»·¾³½øÐÐÉ趨¡£ÖµµÃ×¢ÒâµÄÊÇ£¬ÏµÍ³»·¾³É趨ֻÊÇÓëÕâÖÖ¼´Ê±²úÉúÁ¬½ÓÓÐЧ£¬¶Ô´æ·ÅÔÚDBCÖеÄÁ¬½Ó¶ÔÏó²¢²»Æð×÷Ó㬸ù¾ÝÁ¬½Ó¶ÔÏó½¨Á¢µÄÁ¬½ÓµÄÓйØÊôÐÔ»¹ÊÇҪͨ¹ýDBSETPROP()À´É趨¡£
¶Ï¿ªÁ¬½Ó
½¨Á¢µÄÁ¬½Ó¾ÍÓ¦¸ÃÔÙ²»ÓÃʱ¼°Ê±¶Ï¿ª£¬¶Ï¿ªÁ¬½ÓÇëʹÓÃSqlDisConnect()º¯Êý¡£
Local hConn
hconn=SQLCONNECT(\ ?SQLDISCONNECT(hconn) //·µ»Ø1±íʾÁ¬½Ó¶Ï¿ª³É¹¦
ÕâÀïÓÐÈý¸öÎÊÌâÌáÇë´ó¼Ò×¢Òâ¡£µÚÒ»£¬Èç¹ûhconnÊÇÒ»¸öÓÐЧµÄÁ¬½Ó¾ä±ú£¬¶ÔËüÖ´ÐÐSqlDisConn()º¯Êý»áÓÐÕâÑùµÄ½á¹û£¬³É¹¦·µ»Ø1£¬ÆäËû±íʾ¶Ï¿ª²Ù×÷ʧ°Ü£»µÚ¶þ£ºÈç¹ûhconn²»ÊÇÒ»¸öÓÐЧµÄÁ¬½Ó¾ä±ú£¬Visual FoxPro½«´¥·¢Ò»¸ö´íÎ󣬴íÎó´úºÅΪ1466£¬ÔõÑùÅжÏij¸öÁ¬½Ó¾ä±úÊDz»ÊÇÓÐЧµÄ·½·¨£¬ÎÒÃÇÔÚºóÎĽéÉÜ£»µÚÈý£¬Èç¹ûÏëÒ»ÏÂ×Ó¶Ï¿ªËùÓеÄÁ¬½Ó£¬Äú¿ÉÒÔʹÓÃÕâÑùµÄ·½·¨£º
SQLDISCONNECT(0)
´Óºó¶ËµÃµ½Êý¾Ý¼¯
µÃµ½Ò»¸öÊý¾Ý¼¯
SQLEXEC(nConnectionHandle, [cSQLCommand, [cCursorName]])
ÏÈÀ´½âÊÍÒ»ÏÂSQLEXEC()º¯Êý£º²ÎÊýnConnectionHandle±íʾÁ¬½Ó¾ä±ú£»²ÎÊýcSQLCommand±íʾҪ´«Ë͵ÄÓï¾ä£¬×¢Òâ´ËÓï¾äÒ»¶¨ÊÇÊý¾ÝÔ´ÈϵõÄÓï¾ä£¬¶ø²»ÊÇVisual FoxProµÄÓï¾ä¡£ÕâÒ»µã´ÓSQL Pass ThoughÕâ¸öÃû×ÖÉϾÍÄÜ¿´µÃ³öÁË£¬¹ËÃû˼Ò壺Visual FoxProÖ»²»¹ýÊÇÊǽ«±ðÈ˵ÄÓïÑÔ´«Ë͸ø±ðÈË£¬ÕâÒ»µãÔÚSQLEXEC()º¯ÊýÌåÏÖµÄÌØ±ðÍ»³ö£»²ÎÊýcCursorName±íʾµÃµ½µÄ½á¹û¼¯µÄÃû×Ö£¬Èç¹ûÊ¡ÂÔ£¬·µ»ØµÄ½á¹û¼¯½«ÒÔSqlresultÃüÃû¡£
Èç¹û·µ»Ø1±íʾ£¬Ö´Ðгɹ¦£»Èç¹û·µ»Ø0±íʾÕýÔÚÖ´ÐУ»Èç¹û·µ»Ø¸ºÊý±íʾִÐÐʧ°Ü¡£
Èç¹ûÎÒÃÇÏ£ÍûµÃµ½NorthWindÊý¾Ý¿âÖеÄEmployees±íµÄÊý¾Ý£¬¾Í¿ÉÒÔÖ´ÐÐÒÔÏÂÃüÁ
SQLEXEC(hconn,\Browse
ÅжÏÁ¬½ÓÓÐЧÐÔ
ÕâÊÇÒ»¸ö·Ç³£Êµ¼ÊµÄÎÊÌ⣬ÎÒÃǽ¨Á¢ÁËÒ»ÌõÁ¬½ÓÒÔºó£¬ÔõÑùÖªµÀVisual FoxProÓëSQL ServerµÄͨÐÅÊÇÕý³£µÄ£¬»úÁ¬½ÓÊÇȷʵÓÐЧµÄ£¬Ö»ÓÐÒ»ÖÖ·½·¨¡ª¡ªÓ¦ÓÃÕâÌõÁ¬½Ó£¬¿ÉÒÔÕâÑù£º
?SQLEXEC(hconn,\
&&Ò»¸ö¿ÕµÄÃüÁî·¢ËÍ£¬·µ»Ø1µÄ»°Ö¤Ã÷Á¬½Ó¿ÉÓã¡
´óÐÍÓï¾äµÄ´«µÝ¼¼ÇÉ
Èç¹ûÏëµÃµ½Ò»¸ö¸üΪ¸´ÔӵĽá¹û¼¯ºÏ£¬ÎÒÃÇ¿ÉÒÔ´«ËÍÒÀ¾Ý´óÐ͵ÄSQL-SelectÃèÊö¡£ÕâÀïÓÐһЩ¾ÑéË͸ø´ó¼Ò£º
Èç¹û´«Ë͵ÄÓï¾äÌ«´ó£¨´óÔ¼Êdz¬¹ý256¸ö×Ö·û£¬ÆäʵûÓбØÒªÈ¥¼ÆÊýÖ»ÒªÄã¾õµÃÓï¾äºÜ´óʱ¾ÍÓ¦¸Ã¿¼ÂÇÎҵĽ¨Ò飬²»È»Äú¾ÍûÓа취´«ËÍ´óÐ͵ÄÓï¾ä£©£¬ÄúÖ±½Ó°ÑÒª´«Ë͵ÄÓï¾ä·ÅÈëSQLEXEC()ÖУ¬Visual FoxPro¾Í»á±¨´í£¬ËµÎÞ·¨ÈϵôËÓï¾ä£¬ÓÚÊÇ´ó¼Ò¾ÍÓÖ¶àÁ˷̰ùVisual