VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

SPT«ü¥O¶°

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
Ruey



µù¥U®É¶¡: 2003-03-12
¤å³¹: 1698
¨Ó¦Û: tunglo

²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤» ¥|¤ë 12, 2003 2:13 pm    ¤å³¹¥DÃD: SPT«ü¥O¶° ¤Þ¨¥¦^ÂÐ

¤@«ü¥O¤¶²Ð
1.SQLCONNECT([DataSourceName,cUserID,cPassword|cConnectionName])
«D¦P¨B«Ø¥ß»P¸ê®Æ·½ªº³s±µ¡C

2.SQLSTRINGCONNECT
([cConnectString])
«D¦P¨B³q¹L³s±µ¦r¦ê«Ø¥ß»P¸ê®Æ·½ªº³s±µ¡C

3.SQLDISCONNECT(nConnectHandle)
«D¦P¨BÂ_¶}¸ê®Æ·½³s±µ¡C

4.SQLGETPROP(nConnectionHandle,cSetting)
«D¦P¨Bªð¦^¬¡°Ê³s±µªº·í«e³]¸m©Î¯Ê¬Ù³]¸m°Ñ¼Æ­È¡C

5.SQLSETPROP(nConnectionHandle,cSetting[,eExpression])
«D¦P¨B³]¸m¬¡°Ê³s±µªºÄݩʰѼƭȡC

6.SQLPREPARE(nConnectionHandle,cSQLCommand[,CursorName])
«D¦P¨B·Ç³Æ

7.SQLEXEC()
»·ºÝ°õ¦æªºSQL»y¥y¡C

8.SQLEXEC(nConnectionHandle[,cSQLCommand[,CursorName]])
¦P¨B,«D¦P¨B±NSQL»y¥yµo°e¨ì¸ê®Æ·½¶i¦æ³B²z¡C

9.SQLCANCEL(nConnectionHandle)
«D¦P¨B½Ð¨D¨ú®ø¥¿¦b°õ¦æªºSQL»y¥y¡C

10.SQLMORERESULTS(nConnectHandle)
¦P¨B,«D¦P¨B¦pªG¦³¦h­Óµ²ªG¶°¡A±N¥t¤@­Óµ²ªG¶°½Æ»s¨ì´å¼Ð¤¤¡C

11.SQLCOLUMNS(nConnectionHandl,Tablename[,"FOXPRO"|"NATIVE"]
[,CursorName])
¦P¨B,«D¦P¨B±N¸ê®Æ·½«ü©wªíªº¦C¸ê°T¦s©ñ¨ìVisual FoxPro´å¼Ð¤¤¡C

12.SQLTABLES(nConnectionHandle[,cTableTypes][,cCursorName])
¦P¨B,«D¦P¨B±N¸ê®Æ·½¤¤ªíªº¸ê°T¦s©ñ¨ìVisual FoxPro´å¼Ð¤¤¡C

13.SQLCOMMIT(nConnectionHandle)
«D¦P¨B´£¥æ¤@¶µ¨Æ°È¡C

14.SQLROLLBACK(nConnectionHandle)
«D¦P¨B¨ú®ø·í«e¨Æ°È³B²z¹Lµ{¤¤©Ò°µ¥þ³¡³B²z¡C

15.SQLCONNECT([DataSourceName,cUserID,cPassword|cConnectionName])DataSourceName«ü©wODBC.iniÀɤ¤©w¸qªº¸ê®Æ·½ªº¦WºÙ;
cUserIDµù¥U¨ì¼Æ¾Ú·½ªº¥Î¤á¦WºÙ;
cPassword¸ê®Æ·½¥Î¤á¤f¥O;
cConnectionName¥ÑCREATE CONNECTION³Ð«Øªº©R¦W³s±µ.
¼Æ­È«¬¥¿¾ã¼Æ°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

16.SQLSTRINGCONNECT([cConnectString])
cConnectStringODBCÅX°Ê¾¹©Ò­n¨Dªº¸ê®Æ·½³s±µ¦ê¡A
Visual FoxPro±N³s±µ¦ê¶Ç»¼µ¹ODBCÅX°Ê¾¹.
¼Æ­È«¬ ¥¿¾ã¼Æ°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

17.SQLDISCONNECT(nConnectHandle)
nConnectionHandle³s±µ±±¨î½X.
¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

18.SQLGETPROP(nConnectionHandle,cSetting)
nConnectionHandle³s±µ±±¨î½X;
cSetting³s±µÄݩʦWºÙ. ¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

19.SQLSETPROP(nConnectionHandle,cSetting[,eExpression])
nConnectionHandle³s±µ±±¨î½X¡FcSetting³s±µÄݩʦWºÙ;
eExpression³s±µÄݩʰѼƭÈ.
¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

20.SQLPREPARE(nConnectionHandle,cSQLCommand[,CursorName])
nConnectionHandle³s±µ±±¨î½X;
cSQLCommand¶Ç»¼¨ì¸ê®Æ·½ªºSQL»y¥y;
CursorName¦s©ñµ²ªG¶°ªº´å¼Ð¦WºÙ,¯Ê¬Ù´å¼Ð¦WSQLRESULT.
¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

21.SQLEXEC(nConnectionHandle[,cSQLCommand[,CursorName]])
nConnectionHandle³s±µ±±¨î½X;
cSQLCommand¶Ç»¼¨ì¸ê®Æ·½ªºSQL»y¥y;
CursorName¦s©ñµ²ªG¶°ªº´å¼Ð¦WºÙ,¯Ê¬Ù´å¼Ð¦WSQLRESULT.
¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

22.SQLCANCEL(nConnectionHandle)
nConnectionHandle³s±µ±±¨î½X.
¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

23.SQLMORERESULTS(nConnectionHandle)
nConnectionHandle³s±µ±±¨î½X.
¼Æ­È«¬ 2¤w¸g¨S¦³¸ê®Æ;
1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

24.SQLCOLUMNS(nConnectionHandl,Tablename[,"FOXPRO"|"NATIVE"]
[,CursorName])
nConnectionHandle³s±µ±±¨î½X;
TableNameªð¦^¨ä¦C¦Wªºªíªº¦WºÙ;
FOXPRO|NATIVE¦C¸ê°Tªº®æ¦¡;
CursorName¦s©ñµ²ªG¶°ªº´å¼Ð¦WºÙ,
¯Ê¬Ù´å¼Ð¦WSQLRESULT.
¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

25.SQLTABLES(nConnectionHandle[,cTableTypes][,cCursorName])
nConnectionHandle³s±µ±±¨î½X;
cTableTypes«ü©w¤@­Ó©Î´X­ÓªíÃþ«¬,
Ãþ«¬¦³'TABLE'¡A'VIEW'¡A'SYS TEM TABLE'©ÎªÌ¸ê®Æ·½¯S©wªº¦XªkªºªíÃþ«¬ÃѧO¦r,¥²¶·¤j¼g,
­Y¦h­ÓÃþ«¬¡A¦UÃþ«¬¶¡¥H³r¸¹¤À¹j;
CursorName¦s©ñµ²ªG¶°ªº´å¼Ð¦WºÙ,
¯Ê¬Ù´å¼Ð¦WSQLRESULT.
¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

26.SQLCOMMIT(nConnectionHandle)
nConnectionHandle³s±µ±±¨î½X.
¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.

27.SQLROLLBACK(nConnectionHandle)
nConnectionHandle³s±µ±±¨î½X.
¼Æ­È«¬ 1°õ¦æ¦¨¥\;
-1¥X²{³s±µ¼h¿ù»~;
-2¥X²{Àô¹Ò¼h¿ù»~.


¤U­±Åý§Ú­Ì¨Ó»{ÃѤ@¤U³s±µÄݩʤγs±µÄݩʰѼƭȡG

ÄݩʦWºÙ ¼Æ­ÈÃþ«¬ ¯Ê¬Ù­È ª`ÄÀ
Asynchronous Å޿諬
¥iŪ¼g .F. .F.¦P¨Bªð¦^µ²ªG¶°;
.T.¦P¨Bªð¦^µ²ªG¶°.
BatchMode Å޿諬
¥iŪ¼g .T. .F.¥ÑSQLMORERESULTS()³v­Óªð¦^µ²ªG¶°;
.T.¥ÑSQLEXEC()¤@¦¸ªð¦^©Ò¦³µ²ªG¶°.
ConnectBusy Å޿諬
°ßŪ ¤£©w .F.¦@¥Î³s±µ¤£¦£;
.T.¦@¥Î³s±µÁc¦£.
ConnectString ¦r¤¸«¬
°ßŪ ¤£©w µù¥U³s±µ¦ê.
ConnectTimeOut ¼Æ­È«¬
¥iŪ¼g 15 ³]¸mªð¦^³s±µ¶W®É¿ù»~¤§«eµ¥«Ýªº®É¶¡¡]¬í¡^;
0µL­­´Áµ¥«Ý,¨Ã¥B¤£ªð¦^³s±µ¶W®É¿ù»~;
¥i¥H¬O0¡ã600.
DataSource ¦r¤¸«¬
¥iŪ¼g ¤£©w ODBC.INIÀɤ¤©w¸qªº¸ê®Æ·½¦WºÙ.
DispLogin ¼Æ­È«¬
¥iŪ¼g 1 1©ÎDB_PROMPTCOMPLETE¡]·½©óFOXPRO.H¡^,¶È·í¯Ê¤Ö¥²­n¸ê°T®É¤~Åã¥ÜODBCµù¥U¹ï¸Ü¤è¶ô;
2©ÎDB_PROMPTALWAYS¡]·½©óFOXPRO.H¡^,Á`Åã¥ÜODBCµù¥U¹ï¸Ü¤è¶ô,¤¹³\¦b³s±µ«e§ó§ï³]¸m;
3©ÎDB_PROMPTNEVER¡]·½©óFOXPRO.H¡^,±q¤£Åã¥ÜODBCµù¥U¹ï¸Ü¤è¶ô,¦pªG¯Ê¤Ö¥²­n¸ê°T,·|²£¥Í¿ù»~.
DispWarnings Å޿諬
¥iŪ¼g .F. .F.¤£Åã¥Ü¿ù»~¸ê°T;
.T.Åã¥Ü¿ù»~¸ê°T.
IdleTimeOut ¼Æ­È«¬
¥iŪ¼g 0 ªÅ¶¢¶W®É¶¡¹j¡]¬í¡^,®É¶¡°Ý¹j¹L«á,¼o¤î¬¡°Ê³s±µ;0µL­­´Áµ¥«Ý.
ODBChdbc ¼Æ­È«¬
°ßŪ ¤£©w ¥~³¡®wÀÉ¡]FLLÀÉ¡^½Õ¥ÎODBC¥i¨Ï¥Îªº¤º³¡ODBC³s±µ±±¨î½X.
ODBChstmt ¼Æ­È«¬
°ßŪ ¤£©w ¥~³¡®wÀÉ¡]FLLÀÉ¡^½Õ¥ÎODBC¥i¨Ï¥Îªº¤º³¡ODBC»y¥y±±¨î½X.
PacketSize ¼Æ­È«¬
¥iŪ¼g 4096 ³s±µ©Ò¨Ï¥Îªººô¸ô¥]¤j¤p,½Õ¾ã¸Ó­È¥i¥H§ïµ½©Ê¯à.
PassWord ¦r¤¸«¬
°ßŪ ¤£©w ³s±µ¤f¥O.
QueryTimeOut ¼Æ­È«¬
¥iŪ¼g 0 ªð¦^¤@¯ë¶W®É¿ù»~¤§«eªºµ¥«Ý®É¶¡¡]¬í¡^;
0µL­­´Áµ¥«Ý,¤£ªð¦^¶W®É¿ù»~;
¥i¥H¬O0¡ã600.
Transactions ¼Æ­È«¬
¥iŪ¼g 1 1©ÎDB_TRANSAUTO¡]·½©óFOXPRO.H¡^,¦Û°Ê¶i¦æ»·ºÝªí¨Æ°È³B²z;
2©ÎªÌDB_TRANSMANUAL¡]·½©óFOXPRO.H¡^,¨Æ°È³B²z³q¹LSQLCOMMIT()©MSQLROLLBACK()¨ç¼Æ¤H¤u¶i¦æ.
UserId ¼Æ­È«¬
°ßŪ ¤£©w ¥Î¤á¼ÐÃÑ.
WaitTime ¼Æ­È«¬
¥iŪ¼g 100 ÀˬdSQL©R¥O°õ¦æ±¡ªp¤§«e¸g¹Lªº®É¶¡¡]²@¬í¡^.

¤T¡D²Ó»¡³s±µ¦r¦ê(©ÎConnectionString)¡G

¡@¡@¦bSQLSTRINGCONNECT([cConnectString])¨ç¼Æ¤¤ÅܼÆcConnectString»PADO±±¨î¶µª«¥óªºConnectionStringÄݩʨ㦳¬Û¦P¤@­Pªº¤º®e¡A¬°¥iŪ¼gStringÃþ«¬¡A´£¨Ñ¸ê®Æ´£¨ÑªÌ©ÎªA°È´£¨ÑªÌ¥´¶}¨ì¸ê®Æ·½³s±µ©Ò»Ý­nªº¯S©w¸ê°T¡A´NMicrosoft OLE DB Provider for ODBC

¡@¡@´£¨ÑªÌ¨ÓÁ¿¥]¬AProvider¡Bdriver¡BServer¡Bdatabase¡BDSN¡BUID¡BPWDµ¥¡A¦b¥H«eµoªíªº¤å³¹¤¤¤w¸g½Í¹L¡A³oùئAÂØ­z¤@¤U¡C

¡@¡@1¡DProvider¡G¦r¦ê¹Bºâ¦¡¡A«ü©wOLE DB¸ê®Æ©ÎªA°È´£¨ÑªÌªº¦WºÙ¡C
¡@¡@¤TºØ´£¨ÑªÌ¡G¸ê®Æ´£¨ÑªÌ¡BªA°È´£¨ÑªÌ©MªA°È¤¸¥ó,¤À¬°¨âÃþ¡A´£¨Ñ¸ê®Æªº´£¨ÑªÌ©M´£¨ÑªA°Èªº´£¨ÑªÌ¡C¸ê®Æ´£¨ÑªÌ¾Ö¦³¨ä¦Û¤vªº¸ê®Æ¨Ã±N¸ê®Æ¥Hªíªº®æ¦¡ÅãÅSµ¹À³¥Îµ{¦¡¡CªA°È´£¨ÑªÌ³q¹L²£¥Í©M®ø¶O¸ê®Æ±NªA°È«Ê¸Ë¡A¨ÏADOÀ³¥Îµ{¦¡¤¤ªº¥\¯à±o¥HÂX¤j¡CªA°È´£¨ÑªÌ¤]¥i¥H¶i¤@¨B©w¸q¬°ªA°È¤¸¥ó¡AªA°È¤¸¥ó¥²¶·³s¦P¨ä¥LªA°È´£¨ÑªÌ©Î¤¸¥ó¤@°_¤u§@¡C
¡@¡@①¡D¸ê®Æ´£¨ÑªÌ¡G
¡@¡@¥Ñ©ó¨C­Ó´£¨ÑªÌ³£¬O°ß¤@ªº¡A©Ò¥HÀ³¥Îµ{¦¡»PADO¥æ¤¬§@¥Îªº¤è¦¡¦b¤£¦Pªº´£¨ÑªÌ¤§¶¡²¤¦³®t§O¡AÀ³¥Î®É»Ý­nª`·N¥¦­Ì¤§¶¡ªº®t§O¡C¤£¦P¸ê®Æ´£¨ÑªÌ¡]Provider¡^¨ä­ÈÂkµ²©ó¥H¤U¡G
¤º®e ¥DÃD ¦r¦ê­È
ODBC¸ê®Æ®w Microsoft OLE DB Provider for ODBC MSDASQL
Microsoft? Index Server Microsoft OLE DB Provider for Microsoft Index Server MSIDXS
Microsoft? Active Directory Service Microsoft OLE DB Provider for Microsoft Active Directory Service ADSDSOObject
Microsoft? Jet¸ê®Æ®w OLE DB Provider for Microsoft Jet Microsoft.Jet.OLEDB.4.0
Microsoft? SQL Server Microsoft OLE DB Provider for SQL Server SQLOLEDB
Oracle¸ê®Æ®w Microsoft OLE DB Provider for Oracle MSDAORA

¡@¡@②¡DªA°È´£¨ÑªÌ¡G

¡@¡@­n¨Ï¥ÎªA°È´£¨ÑªÌ¡A¥²¶·´£¨ÑÃöÁä¦r¡C¦P®É¡A¤]À³·íª¾¹D»P¨C­ÓªA°È´£¨ÑªÌ¬ÛÃöÁpªº¡B¯S©w´£¨ÑªÌªº°ÊºAÄÝ©Ê¡C·í«e¥i±qMicrosoftÀò±oªº¨C­ÓªA°È´£¨ÑªÌªº¯S©w´£¨ÑªÌ¡]Provider¡^¨ä­È¸ê®Æ¦p¤U¡G
¥DÃD ¦r¦ê­È
Microsoft Data Shaping Service for OLE DB MSDataShape
MicrosoftOLE DB Persistence Provider MSPersist
Microsoft OLE DB Remoting Provider MS Remote

¡@¡@¢±¡DDRIVER¡G¦r¦ê¹Bºâ¦¡¡Aªí¥ÜODBCÅX°Êµ{¦¡ªº¦WºÙ¡C¥¦¨Ã¤£¬OODBCÅX°Êµ{¦¡°ÊºA³s±µ®w¡]DLL¡^ÀɮצW¡C¹ï©ó¨ä¤¤ªº©w¸q¥²¶·¥Î{}¬A°_¨Ó¡A¦WºÙªº¿ï¾Ü¥i¥H³q¹L¥H¤U³~®|¡G
¡@¡@¹ï©óWindows 9x©MWindows NT:
¡@¡@"¶}©l"¡÷"³]¸m" ¡÷"±±¨î­±ªO" ¡÷"¸ê®Æ·½(ODBC)" ¡÷"ODBC¸ê®Æ·½ºÞ²z¾¹" ¡÷"ÅX°Êµ{¦¡"¤¤
¹ï©óWindows 2000:
¡@¡@"¶}©l"¡÷"³]¸m" ¡÷"±±¨î­±ªO"¡÷"ºÞ²z¤u¨ã" ¡÷"¸ê®Æ·½(ODBC)" ¡÷"ODBC¸ê®Æ·½ºÞ²z¾¹" ¡÷"ÅX°Êµ{¦¡"¤¤
¡@¡@¥i¥H¬Ý¨ì¤U¦CÅX°Êµ{¦¡¦WºÙ¡G
Driver da Microsoft para arquivos texto (*.txt;*.csv)
Driver do Microsoft Access (*.mdb)
Driver do Microsoft dBase (*.dbf)
Driver do Microsoft Excel (*.xls)
Driver do Microsoft Paradox (*.db )
Driver para o Microsoft Visual FoxPro
Microsoft Access Driver (*.mdb)
Microsoft Access-Treiber (*.mdb)
Microsoft dBase Driver (*.dbf)
Microsoft dBase VFP Driver (*.dbf)
Microsoft dBase-Treiber (*.dbf)
Microsoft Excel Driver (*.xls)
Microsoft Excel-Treiber (*.xls)
Microsoft FoxPro Driver (*.dbf)
Microsoft FoxPro VFP Driver (*.dbf)
Microsoft ODBC for Oracle
Microsoft Paradox Driver (*.db )
Microsoft Paradox-Treiber (*.db )
Microsoft Text Driver (*.txt;*.csv)
Microsoft Text-Treiber (*.txt;*.csv)
Microsoft Visual FoxPro Driver
Microsoft Visual FoxPro-Treiber
SQL Server
Sybase System 11

¡@¡@±q¨ä¤¤¿ï¾Ü¦Û¤v©Ò»Ý­nªºÅX°Êµ{¦¡¦WºÙ¡A­È±o«ü¥Xªº¬O¦³¨ÇÅX°Êµ{¦¡¬O·L³n¤½¥qªº²£«~¦b¦w¸Ë§@·~¨t²Î®É´N¦w¸Ë¤F¡A¦Ó¦³¨Ç¸ê®Æ®w²£«~ªºÅX°Êµ{¦¡¥Ñ¶}µo¸ê®Æ®w²£«~ªº³nÅ餽¥qÀH¸ê®Æ®w²£«~¤@°_´£¨Ñ¡A»Ý¦b¦w¸Ë¸ê®Æ®w®É¿ï¾Ü¦w¸Ë¤W¡A¤~¥i¥H¨Ï¥Î¡C§_«h¦b¦¹§ä¤£¨ìÅX°Êµ{¦¡¡C¨Ò¦p¡GSybase¸ê®Æ®wÅX°Êµ{¦¡¡C
¡@¡@3¡DSERVER(SRVR)¡G¦r¦ê¹Bºâ¦¡¡A¤@¨Ç¸ê®Æ¤¶²Ð¬°¦øªA¾¹¦WºÙ¡A¸gµ§ªÌ¹ê½î»{¬°½T¤Á¦aÀ³¬°¸ê®Æ®wªA°È¦WºÙ¡A¥Ñ©ó¶HSQL Server¡BSybaseµ¥¸ê®Æ®w¦b¦w¸Ë®É¦Û°Ê§â¦øªA¾¹¦WºÙ¯Ê¬Ù³]¸m¬°¸ê®Æ®wªA°È¦WºÙ¡A¦ý¦pªG¥u¦b¡§§Úªº¹q¸£¡¨ ¡÷¡§ÄÝ©Ê¡¨ ¡÷¡§ºô¸ô¼ÐÃÑ¡¨ ¡÷¡§ÄÝ©Ê¡¨¤¤§ó§ï¹q¸£¦W¡A¦Ó¤£§ïÅܸê®Æ®wªA°È¦WºÙ¡A¨Ï¤§¤£¬Û¦P¡A¦bµ{¦¡¤¤À³¥H¸ê®Æ®wªA°È¦WºÙ¬°­ã¡C
¡@¡@4¡DDATABASE(DB)¡G¦r¦ê¹Bºâ¦¡¡A«ü©w­n»P¨ä«Ø¥ß³s±µªº¸ê®Æ®w¦WºÙ¡C»Ý­n¯S§O«ü¥Xªº¬O§Y¨ÏDSN©w¸q¤w¸g«ü©w¤F¸ê®Æ®w¡A¤]¥i¥H¦bDSN¤§¥~«ü©wDATABASE°Ñ¼Æ¥H«K³s±µ¨ì¤£¦Pªº¸ê®Æ®w¡C³o¦P®É§ó§ï¤FDSN©w¸q¥H¥]¬A«ü©wªº¸ê®Æ®w¡C¨Ï¥ÎDSN®É©l²×¥]¬ADATABASE°Ñ¼Æ¬O¤@ºØ¦n¿ìªk¡C³o¼Ë±N«OÃÒ¯à³s±µ¨ì¥¿½Tªº¸ê®Æ®w¡A¦]¬°¨ä¥L¥Î¤á¥i¯à·|¦b¤W¤@¦¸ÀˬdDSN©w¸q«á§ó§ïÀq»{ªº¸ê®Æ®w°Ñ¼Æ¡C
¡@¡@5¡DDSN(Data Source)¡G¦r¦ê¹Bºâ¦¡¡A¦b¦¹¬°ªÅ¡AµL¶·«ü©w³s±µªºODBC¸ê®Æ·½ªº¦WºÙ
¡@¡@6¡DUID(User ID)¡G¦r¦ê¹Bºâ¦¡¡A¬°ODBC¸ê®Æ·½«ü©w¥Î¤á¼ÐÃÑ(¥Î¤á±b¸¹¦W)¡A«ü©w¥Î¤á¥²¶·¦³¨¬°÷ªº³\¥iÅv¡C
¡@¡@7¡DPWD(Password)¡G¦r¦ê¹Bºâ¦¡¡A¬°ODBC¸ê®Æ·½«ü©w¥Î¤á¤f¥O¡A¥²¶·¦³¨¬°÷ªº³\¥iÅv¡C

¥|¡D«DDSN³s±µ¦r¦êªº²Õ¦¨¡G

¡@¡@°£¤FADO©Ò©w¸qªº°Ñ¼Æ¥~¡A´£¨ÑªÌ¤£¤ä´©¥ô¦ó¯S©w³s±µ°Ñ¼Æ¡C¦ý¬O¡A´£¨ÑªÌ±N§â¥ô¦ó«DADO³s±µ°Ñ¼Æ¶Ç»¼µ¹ODBCÅX°Êµ{¦¡ºÞ²z¾¹¡C

¡@¡@¥Ñ©ó¥i¥H¬Ù²¤Provider°Ñ¼Æ¡A¦]¦¹¨Ï¥Î»P¼¶¼gODBC³s±µ¦r¦ê®É¥Îªº¬Û¦P°Ñ¼Æ¦W¡]DRIVER=¡BDATABASE=¡BDSN= µ¥µ¥¡^¡B­È©M»yªk¡A¥i¥H¼¶¼g»P¦P¤@¸ê®Æ·½ªºODBC³s±µ¦r¦ê¬Û¦PªºADO³s±µ¦r¦ê¡C

¡@¡@1.¹ï©óSQL Server¸ê®Æ®w¡G
[Provider=MSDASQL;]
DRIVER={Driver Name};
SERVER=server;
DATABASE=database;
UID=user;
PWD=password"
¨Ò¦p¡G
cnna.ConnectionString = "Provider=MSDASQL;"_
+ "driver={SQL Server};"_
+ "server=servera; "_
+ "database=pubs; "_
+ "uid=sa; "_
+ "pwd=yyuui"

¡@¡@2. ¹ï©óSybase¸ê®Æ®w¡G
[PROVIDER=MSDASQL;]
DRIVER={Driver Name};
SRVR=server; ª`¡G¥²¶·¬OSRVR¡A¦Ó¤£¯à¬OSERVER¡C
DB=database; ª`¡G¥i¥H¬ODB¡A¤]¥i¥HDATABASE¡C
DSN=; ª`¡G¸Ó¶µ¥i¥H¬Ù²¤¡C
UID=user;
PWD=passwod
¨Ò¦p¡G
cnnb.ConnectionString = "Provider=MSDASQL;"_
+ "DRIVER={Sybase System 11};"_
+ "SRVR=serveru; "_
+ "DSN=;"_
+ "DB=dataa; "_
+ "UID=sa; "_
+ "PWD=dqwe"_

¡@¡@3. ¹ï©óOracle¸ê®Æ®w¡G

[PROVIDER=MSDASQL;]
DRIVER={Driver Name};
SERVER=server;
databasename=database;
databasefile=path;
DSN=;
UID=user;
PWD=password;
¨Ò¦p¡G
cnnc.ConnectionString = "Provider=MSDASQL;"_
+ "DRIVER={Microsoft ODBC for Oracle};"_
+ "SERVER=Webserver; "_
+ "DSN=;"_
+ "databasename=dataall; "_
+ "databasefile=d:\data\;"_
+ "UID=dba; "_
+ "PWD=zxcv"

¡@¡@4. ¹ï©óInformix¸ê®Æ®w¡G
[Provider=MSDASQL;]
Driver={Driver Name};
Host=IP Adress;
Database=database;
UID=user;
PWD=password;
FetchBufferSize=integer;
NoLoginBox=Yes;
Options=;
Protocol=TCP/IP;
ReadOnly=No;
ServerOptions=;
ServerType=Informix Version
¨Ò¦p¡G
cnnd.ConnectionString = "Provider=MSDASQL;" _
+ "Driver={OpenLink Generic 32 Bit Driver};" _
+ "Host=11.66.17.151;" _
+ "Database=pubs;" _
+ "UID=sa;" _
+ "PWD=asdf;" _
+ "FetchBufferSize=30;" _
+ "NoLoginBox=Yes;" _
+ "Options=;" _
+ "Protocol=TCP/IP;" _
+ "ReadOnly=No;" _
+ "ServerOptions=;" _
+ "ServerType=Informix 7.2"

¡@¡@ª`¡G[]¤¤ªº¤º®e¥i¥H¬Ù²¤¡C

¤­¡D¹ê¨Ò¤@¿h¡G

¡@¡@¦øªA¾¹¦w¸Ëwindows 2000 Server§@·~¨t²Î¡A¥HSybase 11.9.2¸ê®Æ®w§@¬°¦øªA¾¹ºÝ¸ê®Æ®wºÞ²z¸ê®Æ¡F¥Î¤áºÝ¦w¸ËWindows 98¡ASybase¥Î¤áºÝµ{¦¡Open Client¡A¥HVisual FoxPro 6.0¸ê®Æ®w§@¬°¥Î¤áºÝ¶}µo¤u¨ã¡C´­ªøÁ×µu¡A¬Û±o¯q¹ü¡A¥R¤Àµo´§Sybase¸ê®Æ®w¦w¥þ©Ê¡B¥i¾a©Ê°ª¡AºÞ²z¸ê®Æ¶q¤j¡FVisual FoxPrp 6.0¸ê®Æ®w¶}µo¤H­û¼ô±x¡A¶}µo³t«×§Ö¡Aµ{¦¡Åé¿n¤p¡A¹B¦æ³t«×§Ö¡A¦û¥Î¸ê·½¤Öªº¯SÂI¡C

¡@¡@¥HSybase 11.9.2¬°¨Ò¡A½s¨î¤@­Ó¹ê¥Îªº¾ÇÄyºÞ²zµ{¦¡¡A¥H´Á¹F¨ì抛¿j¤Þ¥Éªº®ÄªG¡F¸ê®Æ®w¦WºÙ¬°Studentdb¡A¥u¥]¬A¤@­Óªí¡]Student¡^¡A¨äµ²ºc¦p¤U¡G
Äæ¦ì¦WºÙ ¼e«× ª`ÄÀ
code nchar (22) ¥N¸¹
name char (Cool ©m¦W
birthday nchar (Cool ¥Í¤é
grade int ¦~¯Å
class int ¯Z
tuition numeric (7,2) ¾Ç¶O
maths numeric (5,2) ¼Æ¾Ç
chinese numeric (5,2) »y¤å
physicsnumeric (5,2) ª«²z
chemistrynumeric (5,2) ¤Æ¾Ç
history numeric (5,2) ¾ú¥v
geobiology numeric (5,2) ¦a²z
biology numeric (5,2) ¥Íª«
gym numeric (5,2) Åé¨|
¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@
¡@¡@½Õ¸Õµ{¦¡®É»Ý­nª`·N¥H¤U°ÝÃD¡G
¡@¡@①¡D¦øªA¾¹ºÝSybase¸ê®Æ®wªA°È¥²¶·³B©ó±Ò°Êª¬ºA¡F
¡@¡@②¡D¥Î¤áºÝ¦w¸Ë¥²¶·¿ï¤¤¡§¡Ô¡¨ODBC Driver¤¸¥ó¡F
¡@¡@③¡D¥Î¤áºÝ³q¹LOpen Clientµ{¦¡²Õ¤¤ªºDsedit¤¸¥ó°t¸m³s±µ¡A¨ãÅé³s±µ¾Þ§@¹Lµ{¦p¤U¡G¡§Dsedit¡¨¡÷¡§Add Server Object¡¨¡÷¿é¤JªA°È¦WºÙ¡]Server Name¡^¡÷¡§OK¡¨ ¡÷¡§³æÀ»¡¨¿ï¾Ü©Ò¿é¤JªA°È¦WºÙ¡÷¡§³æÀ»¡¨¡§Server Address¡¨ ¡÷¡§¥kÁ䡨¡÷¡§Modify Attributes¡¨¡÷¡§Add¡¨¡÷¿ï¾Ü¡§TCP¡¨¨óij¡÷¡§Network Address¡¨¦b¦¹¿é¤JIP¦ì§}©M°ð¸¹¡A¨Ò¡G10.23.12.120,5000¡÷¡§Ping Server¡¨´ú¸Õ¬O§_³s³q¡A§_«hÀˬd¾÷¾¹³s±µ©Î­«½Æ¤W­z¹Lµ{¡C
¡@¡@④¡Dª`·N¨âºØ¸ê®Æ®w¸ê®ÆÃþ«¬ªº¹ïÀ³Ãö«Y¦p¤Uªí¡G

Visual FoxPro 6.0¸ê®Æ®w¸ê®ÆÃþ«¬ Sybase¸ê®Æ®w¸ê®ÆÃþ«¬
¦r¤¸«¬(C) Char
nchar
nvarchar
varchar
³f¹ô«¬(Y) money
smallmoney
¼Æ­È«¬(N) decimal
numeric
¯B°Ê«¬(F) µL
¤é´Á«¬(D) µL
¤é´Á®É¶¡«¬(T) datetime
Smalldatetime
Âùºë«×«¬(B) float
Real
¾ã«¬(I) Int
smallint
tinyint
Å޿諬(L) Bit
³Æµù«¬(M) Text
³q¥Î«¬(G) image
¦r¤¸«¬(¤G¶i¦ì)(C) µL
³Æµù«¬(¤G¶i¦ì)(M) binary
varbinary

¡@¡@ÃöÁäµ{¦¡¬q¡G

¡@¡@*³s±µ»·ºÝ¸ê®Æ·½
PROCEDURE Activate
wait window at 12,20 nowait "½Ðµy«á!¥¿¦b³s±µ»·ºÝ¸ê®Æ·½ ......"
VarDriver=THISFORM.Text1.Value
VarServer=THISFORM.Text2.Value
VarDatabase=THISFORM.Text3.Value
VarUser=THISFORM.Text4.Value
VarPassword=THISFORM.Text5.Value
Store sqlstringconnect("Provider=MSDASQL;DRIVER={"+alltrim(VarDriver)+"};
DSN=;SRVR="+alltrim(VarServer)+";DB="+alltrim(VarDatabase)+";UID="+alltrim(VarUser)+";
PWD="+alltrim(VarPassword)) to ConnHandle &&ConnHandle¬°³s±µ±±¨î½X
if ConnHandle<0
=messagebox(space(4)+" ³s±µ»·ºÝ¸ê®Æ·½¥¢±Ñ¡I­ì¦]¦p¤U¡G"+chr(10);
+"¢°.¡§SYBASE¸ê°T¡¨°Ñ¼Æ°t¸m¤£¥¿½T¡F"+chr(10);
+"¢±.SYBASEªA°È¡]"+alltrim(upper(VarServer))+"¡^¥¼±Ò°Ê¡C",16,"¿ù»~´£¥Ü:")
wait clear
close all
return
else
wait clear
¡K¡K
=sqldisconnect(ConnHandle)
endif
ENDPROC
¡K¡K
PROCEDURE Release
=sqldisconnect(ConnHandle)
close all
ENDPROC

¡@¡@*¬d¸ß
&&µ²ªG¦s¤J¦Û©w¸q´å¼ÐMathsCursor
=sqlsetprop(ConnHandle,'batchmode',.T.) &&³]¸m¤@¦¸ªð¦^©Ò¦³µ²ªG¶°
=sqlprepare(ConnHandle,"select code,name,grade,class,maths from student where grade='"+Vargrade+"' and class='"+Varclass+"'","mathscursor")
=sqlexec(ConnHandle)
¡K¡K
*ªí³æ¤¤¥[¤J­¶®Ø±±¨î¶µ,ªí®æ±±¨î¶µ
THISFORM.Pageframe1.Page1.Grid1.RecordSource="mathscursor"
THISFORM.Pageframe1.Page1.Grid1.RecordSourceType=1 &&§O¦W
THISFORM.Pageframe1.Page1.Grid1.Column1.ControlSource="mathscursor.code"
THISFORM.Pageframe1.Page1.Grid1.Column2.ControlSource="mathscursor.name"
THISFORM.Pageframe1.Page1.Grid1.Column3.ControlSource="mathscursor.grade"
THISFORM.Pageframe1.Page1.Grid1.Column4.ControlSource="mathscursor.class"
THISFORM.Pageframe1.Page1.Grid1.Column5.ControlSource="mathscursor.maths"
¡K¡K

¡@¡@*­×§ï
=sqlsetprop(ConnHandle,'transactions',2) &&³]¸m¤H¤u¨Æ°È³B²z
=sqlprepare(ConnHandle, "update student set grade=grade+1") &&·s¦~¤É¯Å³B²z
=sqlexec(ConnHandle)
if messagebox("½T©w­×§ï©Ò¿é¤J¸ê®Æ¸ê°T¶Ü?",4+32,"¹B¦æ´£¥Ü:")=6
=sqlcommit(ConnHandle)
else
=sqlrollback(ConnHandle)
THISFORM.text1.setfocus
endif
¡K¡K

¡@¡@*§R°£


Vargrade=THISFORM.Text1.Value
=sqlsetprop(ConnHandle,'transactions',2) &&³]¸m¤H¤u¨Æ°È³B²z
=sqlprepare(ConnHandle,"delete from student where grade='"+Vargrade+"'")
=sqlexec(ConnHandle)
if messagebox("½T©w§R°£©Ò¿é¤J¸ê®Æ¸ê°T¶Ü?",4+32,"¹B¦æ´£¥Ü:")=6
=sqlcommit(ConnHandle)
else
=sqlrollback(ConnHandle)
THISFORM.text1.setfocus
endif
¡K¡K

¡@¡@*¼W¥[
Varcode=THISFORM.Text1.Value
Varname=THISFORM.Text1.Value
¡K¡K
=sqlsetprop(ConnHandle,'transactions',2) &&³]¸m¤H¤u¨Æ°È³B²z
=sqlprepare(ConnHandle,"INSERT INTO student(code,name,birthday,grade,class,tuition,maths,chinese,physics,
chemistry,history,geobiology,biology,gym);
VALUES('"+Varcode+"','"+Varname+"','"+Varbirthday+"',"+Vargrade+","+Varclass+",
"+Vartuition+","+Varmaths+","+Varchinese+","+Varphysics+","+Varchemistry+",
"+Varhistory+","+Vargeobiology+","+Varbiology+","+Vargym+")")
=sqlexec(ConnHandle)
if messagebox("½T©w¼W¥[©Ò¿é¤J¸ê®Æ¸ê°T¶Ü?",4+32,"¹B¦æ´£¥Ü:")=6
=sqlcommit(ConnHandle)
else
=sqlrollback(ConnHandle)
THISFORM.text1.setfocus
endif
¡K¡K




»¡¦b«e­±
¼ô±x Fox ªºªB¤Í³£ª¾¹D¡A¦b VFP ùاڭ̥i¥H¨Ï¥Î»·ºÝµø¹Ï (Remote View) ©M SPT(SQL Pass Through) §Þ³N±±¨î»·ºÝ²§ºc¸ê®Æ®w¡C³o¨Ç§Þ³N¨ä¹ê¬O VFP ¹ï ODBC ªº API ªº«Ê¸Ë¡A©Ò¥H¹ï©ó¥Î¤á¨Ó»¡³X°Ý»·ºÝ¸ê®Æ®w´N¹³¾Þ§@¶Ç²ÎªºDBF¤@¼Ë²³æ¡CÃö©ó³o¨âºØ§Þ³Nªº¨Ï¥Î¡A§¹¥þ¥i¥H¬v¬vÅxÅx¦a¼g¤U¤@¥»®Ñ¡Aų©ó¥»¤å¥DÃD¤Î½g´T¡A³oùضȪTÁ| SPT §Þ³N³X°Ý»·ºÝ¸ê®ÆªºÀ³¥Î¡C
SPT»P»·µ{µø¹Ï
«Ü¦h¤H·d¤£À´¦³¤F»·ºÝµø¹Ï³o¼Ëª½Æ[¡B²³æªº¤u¨ã¡A¬°¤°»òÁٻݭn SPT ©O¡H½T¹ê SPT ¸û»·ºÝµø¹ÏÃø¥H´x´¤¡A¦ý²Ó²ÓÅé·|§A·|µo²{¡G»·ºÝµø¹Ï¨ä¹ê¬O¹ï SPT ªºµøı¤Æ¤u¨ã¡ISPT ¸û»·ºÝµø¹Ï§ó¨ã«Â¤O¡A»·ºÝµø¹Ï´£¨Ñªº¥\¯à¥u¬O SPT ªº¤@­Ó¤l¶°¡C¥J²Ó±´¯Á¨âªÌÀu¦H¡A§Ú­Ìµo²{¡G
SPT ªºÀu¶Õ¡G
1. ¤@¦¸±o¨ì¦h­ÓCursor
2. °õ¦æ°£ Select ¥H¥~ªº¨ä¥L SQL »y¥y¡A¦p Insert¡BUpdate¡BDeleteµ¥
3. °õ¦æ»·ºÝ¸ê®Æ®wªº¦sÀx¹Lµ{
4. °õ¦æ»·ºÝ¸ê®Æ®wªº¯S®í¨ç¼Æ¡B©R¥O
5. ¨Æ°ÈºÞ²z
SPT ªº¦H¶Õ¡G
1. ¨S¦³¹Ï§Î¥Î¤á¤¶­±
2. ¥²¶·¤H¤uºûÅ@³s±µ
3. ±o¨ìªºCursorÀq»{¬O"¥iŪ¼g"Cursor¡A­n¨Ï¥¦¦¨¬°"¥i§ó·s"Cursor¥²¶·¸g¹L³]©w
¤U­±´N¶¶µÛ§Ú­Ì¹ï SPT ªº»{ÃÑ¡A¨Ó¬yÄý¤@¤U³oºØ°¶¤jªº¤u¨ã§a¡I¡]ª`·N¡G¥»¤å©Ò¦³±`¦¡§¡¨Ï¥Î SQL ServerªºNorthWind ¸ê®Æ®wºt¥Ü¡^
¡@
ºÞ²z³s±µ¡G
«Ø¥ß³s±µ¡G
¡]ª`·N¡G¥»¤å©Ò¦³¥Ü¨Ò¥N½X­Y¥Î¨ì³s±µªº¡AÀq»{±Ä¥Î"«Ø¥ß³s±µ"¥N½X¤¤²£¥Íªº³s±µ±±¨î½X"con"¡^
WAIT ' ³s±µ¨ì SQL Server ¤W¥h ' NOWAIT NOCLEAR WINDOW
SQLSETPROP(0,"DispLogin" ,3) && ³]¸mÀô¹Ò¬°¡G"±q¤£Åã¥Ü ODBC µn³°¹ï¸Ü¤è¶ô"
con=SQLSTRINGCONNECT("driver=SQL Server;Server=BOE;Uid=sa;pwd=;database=northwind")
*°²©w SQL Server ¦øªA¾¹¦W¬° BOE, ¥Î¤á ID ¬Osa, ¤f¥O¬OªÅ¦ê
*¦pªG§Aªº SQL Server ªº¦øªA¾¹¦W, ¥Î¤á ID, ¤f¥O»P¤W¤£¦P¡A½Ð­×§ï¥H¤W¥N½X¤¤ªº¬ÛÃö³¡¤À¥H²Å¦X§A¨t²Î¤¤ªº³]¸m
WAIT clear
IF con<=0
MESSAGEBOX(' ³s±µ¥¢±Ñ ',64,' ³s±µ¨ì SQL Server ¤W¥h ')
ELSE
MESSAGEBOX(' ³s±µ¦¨¥\ ',64,' ³s±µ¨ì SQL Server ¤W¥h ')
ENDIF
Â_¶}³s±µ¡G
SQLDISCONNECT(con)
¤@¦¸±o¨ì¦h­ÓCursor
§Ú­Ì¥i¥H¥Î¤@¦¸ SPT ¶Ç¦^¦h­ÓCursor¡A¦p¤U¡G
cSQL="SELECT * FROM EMPLOYEES"+CHR(10)+"SELECT * FROM CUSTOMERS"+CHR(10)+"SELECT * FROM PRODUCTS"
?SQLEXEC(con,cSQL,"TEMP")
SQLEXEC( ) ªºªð¦^­Èªí¥ÜCursorªº¼Æ¶q¡A³oùتð¦^ 3 ¡C³o¤T­ÓCursor¤À§O¥H¡G TEMP,TEMP1,TEMP2 ©R¦W¡C
°õ¦æ°£ SQL-Select ¥H¥~ªº SQL »y¥y
cSQL="IF EXISTS(SELECT * FROM CUSTOMERS WHERE CUSTOMERID='TEST')"
cSQL=cSQL+" DELETE FROM CUSTOMERS WHERE CUSTOMERID='TEST'"
cSQL=cSQL+" ELSE INSERT CUSTOMERS(CUSTOMERID,COMPANYNAME) VALUES('TEST',' ³o¬O¤@­Ó´ú¸Õ¡I ')"
IF SQLEXEC(CON,cSQL)<=0
MESSAGEBOX(' °õ¦æ¥¢±Ñ ',64,' µo°e»y¥y¨ì SQL Server ¤W¥h ')
ELSE
MESSAGEBOX(' °õ¦æ¦¨¥\ ',64,' µo°e»y¥y¨ì SQL Server ¤W¥h ')
ENDIF
¦æ¤å¦Ü¦¹¡A¤]³\¦³ªB¤Í·|°Ý¡G¦pªG SQL »y¥y¤¤ CUSTOMERID ¬O¤@­ÓÅܼƫç»ò¿ì©O¡H¦³¨â­Ó±`¥Îªº¸Ñ¨M¤è®×¡G
«÷±µ¦r¦ê
CUSTID='TEST'
cSQL="IF EXISTS(SELECT * FROM CUSTOMERS WHERE CUSTOMERID='"+CUSTID+"')"
cSQL=cSQL+" DELETE FROM CUSTOMERS WHERE CUSTOMERID='"+CUSTID+"'"
cSQL=cSQL+" ELSE INSERT CUSTOMERS(CUSTOMERID,COMPANYNAME) VALUES('"+CUSTID+"',' ³o¬O¤@­Ó´ú¸Õ¡I ')"
?SQLEXEC(CON,cSQL)
SPT ¼Ð·ÇÅܼƶǻ¼ªk
CUSTID='TEST'
cSQL="IF EXISTS(SELECT * FROM CUSTOMERS WHERE CUSTOMERID=?CUSTID)"
cSQL=cSQL+" DELETE FROM CUSTOMERS WHERE CUSTOMERID=?CUSTID"
cSQL=cSQL+" ELSE INSERT CUSTOMERS(CUSTOMERID,COMPANYNAME) VALUES(?CUSTID,' ³o¬O¤@­Ó´ú¸Õ¡I ')"
?SQLEXEC(CON,cSQL)
°õ¦æ»·ºÝ¸ê®Æ®wªº¦sÀx¹Lµ{
¦sÀx¹Lµ{ªº¦n³B¦Û¬O¤£¥²¦h¨¥¡A¤U­±´NÅý§Ú­Ì¬Ý¬Ý«ç¼Ë¥Î SPT ½Õ¥Î»·ºÝ¸ê®Æ®wªº¦sÀx¹Lµ{¡C¤U­±§Ú­Ìºt¥Üªº¬O NorthWind ¸ê®Æ®w¤¤ªº¦sÀx¹Lµ{" CustOrderHist "¡A¥¦ªº§@¥Î¬Oªð¦^«ü©w«È¤áÃö©ó²£«~ªº®ø¶O¼Æ¶q¦X­p¡C¾Ú§Ú©Òª¾¡A³oùئ³¨âºØ®Ñ¼g®æ¦¡¨Ñ¤j®a¿ï¾Ü¡G
¨Ï¥Î T-SQL ªº¼gªk¡G
CUSTID='VINET'
?SQLEXEC(CON,'EXEC CustOrderHist ?CUSTID','TEMP1')
¨Ï¥Î ODBC ªº¼gªk¡G
CUSTID='VINET'
?SQLEXEC(CON,'{CALL CustOrderHist(?CUSTID)}','TEMP2')
¦sÀx¹Lµ{±`±`·|»Ý­nªð¦^¤@¨ÇÅܼơA³q¥Îªº¤èªk´N¬O¨Ï¥Î¿é¥X°Ñ¼Æ¡C¦bºt¥Ü¤§«e¡A§Ú­Ì¥ý¥Î SPT ¦b SQL Server «Ø¥ß¤@­Ó¥]§t¿é¤J¡B¿é¥X°Ñ¼Æªº¦sÀx¹Lµ{¡C
cSQL="IF EXISTS(select * from sysobjects where id=object_id('MY_PROC') and OBJECTPROPERTY(id,'IsProcedure')=1)"
cSQL=cSQL+" drop procedure MY_PROC " &&¦pªG¦sÀx¹Lµ{My_proc¤w¸g¦s¦b¡A´N§R°£¥¦
?SQLEXEC(con,cSQL)
cSQL="CREATE PROCEDURE MY_PROC @EmployeeID int,@Desc varchar(100) output as /* ¥u¤ä´©´M§äª½±µ¤UÄÝ */"+chr(10)
cSQL=cSQL+" DECLARE @ROW INT"+chr(10)
cSQL=cSQL+" SELECT * FROM EMPLOYEES WHERE REPORTSTO=@EMPLOYEEID"+chr(10)
cSQL=cSQL+" SELECT @ROW=@@ROWCOUNT"+chr(10)
cSQL=cSQL+" IF @ROW>0"+chr(10)
cSQL=cSQL+" SELECT @Desc=' §ä¨ì¤F '+CAST(@ROW AS VARCHAR(4)) +' ¦ì¤UÄÝ '"+chr(10)
cSQL=cSQL+" ELSE SELECT @Desc=' ³o¬O¤@¦ì´¶³q­û¤u '"
?SQLEXEC(con,cSQL)
¨Ï¥Î T-SQL ªº¼gªk¡G
EMPID=2
DESCRIPTION=""
?SQLEXEC(CON,'EXEC MY_PROC ?EMPID,?@DESCRIPTION','TEMP1')
?DESCRIPTION
¨Ï¥Î ODBC ªº¼gªk¡G
EMPID=2
DESCRIPTION=""
?SQLEXEC(CON,'{CALL MY_PROC(?EMPID,?@DESCRIPTION)}','TEMP2')
?DESCRIPTION
°õ¦æ»·ºÝ¸ê®Æ®wªº¯S®í¨ç¼Æ¡B©R¥O
¦pªG¦b SQL Server ¤¤§A¦³¨¬°÷ªº³\¥iÅv¡A³q¹L SPT §A¥i¥H§¹¥þ±±¨î SQL Server ¡A³oùاڭ̺t¥Ü"«ç¼Ë¨ú±o¸ê®Æ®w¦øªA¾¹ªº®É¶¡"¡G
?SQLEXEC(con,"select getdate() as serverdatetime","temp1")
?temp1.serverdatetime
USE IN ("temp1")
¨Æ°ÈºÞ²z
¦b¤@¨Ç½ÆÂøªºÀ³¥Î¤¤¡A©¹©¹·|¦³¤@¶µ¾Þ§@¼vÅT¦n´X­Óªíªº±¡ªp¡C´N¥Î¤áºÝ¨Ó»¡¡Aµo°e¨ì»·ºÝ¸ê®Æ®wªº¸ê®ÆÅÜ°Ê¥i¯à¨Ó·½«Ü¦h¡Gªí½w½Äªº¦h¦æ°O¿ýªºÅÜ°Ê¡A¦æ½w½Äªº³æ¦æ°O¿ýÅܤơA¥H¤Î«e¤å§Ú­Ìºt¥Üªºª½±µ¥Î SQL »y¥y¶Ç»¼ªº¸ê®ÆºûÅ@¡AªLªLÁ`Á`¡K¡K«ç¼Ë§â³o¨Ç§ó·s¦æ¬°±±¨î¦b¤@­Ó¨Æ°È¤¤­n»ò--¤@°_¦¨¥\¡A­n»ò¤@°_¦^ºu¡C
cSQL="DELETE FROM CUSTOMERS WHERE CUSTOMERID='BLAUS'"+CHR(10)
cSQL=cSQL+"INSERT CUSTOMERS(CUSTOMERID,COMPANYNAME) VALUES('TEST1',' ³o¬O¤@­Ó´ú¸Õ¡I ')"
SQLSETPROP(CON,"Transactions" ,2)&& ¶}©l¤@­Ó¨Æ°È
IRETURN=SQLEXEC(CON,cSQL)
IF IRETURN=1
SQLCOMMIT(CON)&& ¨Æ°È¥æ¥I
ELSE
SQLROLLBACK(CON)&& ¨Æ°È¦^ºu
ENDIF
SQLSETPROP(CON,"Transactions" ,1)&& ­«·s¦^¨ì¦Û°Ê¨Æ°È³B²zª¬ºA
&&´N¥»¨Ò¦Ó¨¥¡A"DELETE FROM CUSTOMERS WHERE CUSTOMERID='BLAUS'"Á`¬O¤£¯à°õ¦æªº¡ASQL Server·|ªð¦^¿ù»~¡G
&&DELETE statement conflicted with COLUMN REFERENCE constraint 'FK_Orders_Customers'.
&&The conflict occurred in database 'Northwind', table 'Orders', column 'CustomerID'.
&&©Ò¥H³oµ§¨Æ°ÈÁ`¬O³Q¦^ºuªº¡I¡I
±q±`¦¡¤¤§Ú­Ì¬Ý¨ì¡A§Ú­Ì¶}±Òªº¨Æ°È¨ä¹ê¬O°w¹ï"³s±µ"ªº¡A¤]´N¬O»¡³q¹L¸Ó"³s±µ"ªº©Ò¦³¸ê®Æ§ó·s³£¥]§t©ó¨Æ°È¤¤¡Aª½¨ì¨Æ°È³Q¦^ºu©Î¥æ¥I¡C
SQLSETPROP(CON,"Transactions" ,2 ¡^¡A ¨ä¹ê¬O¶}±Ò¤F¤H¤u¨Æ°È³B²z¡A¤]´N¬O»¡¥²¶·¥Ñ¥Î¤á©ú½Tªºµ¹¥X¥æ¥I©ÎªÌ¦^ºu«ü¥O¡A¨Æ°È¤~·|µ²§ô¡C©Ò¥Hµ§ªÌ¥H¬°¡G§¹¦¨¤@µ§¨Æ°È¥H«á¡AÀ³°õ¦æ SQLSETPROP(CON,"Transactions" ,1 ¡^ ±N"³s±µ"ªº¨Æ°È¼Ò¦¡³]¬°Àq»{ªº"¦Û°Ê"¡A³o¼Ë¥i¥H¨¾¤î¥Î¤á³´¤J¥¼ª¾ªº¨Æ°È¤¤¥h¡C
³]¬°¥i§ó·s
¨ì¥Ø«e¬°¤î¡A§Ú­Ì¤w¸gºt¥Ü¤F 6 ­Ó SPT ±MÃD¤F¡A°£¤F²Ä¤@­Ó"³s±µºÞ²z"¦b»·ºÝµø¹Ï¤¤¯à°÷¹ê²{¤§¥~¡A¨ä¾lªº»·ºÝµø¹Ï³£µLªk¹ê²{¡C¤U­±§Ú­Ì­n°Q½×¤@¤U«ç¼Ë§â SPT ¶Ç¦^ªºµ²ªG¶°¦X³]¬°"¥i§ó·s"¡AÁ`ªº¨Ó»¡»·ºÝµø¹Ï´£¨Ñªº´N¬O³o­Ó¥\¯à¡C
¦bÀq»{ª¬ªp¤U¡A SPT ±q»·ºÝ¸ê®Æ®w±o¨ìªºCursor¬O"¥iŪ¼g"ªº¡A§Y¡G¥i¥H¹ï¥¦¶i¦æ" Select ¡B Update ¡B Insert ¡B Delete "ªº¾Þ§@¡A¦ý¸ê®ÆªºÅܤƤ£·|¤Ï¬M¨ì¸ê®Æ·½¡C"¥i§ó·s"Cursorªº¯S¦â´N¬O¥i¥Hª½±µ±N¥Î¤áºÝªº¸ê®ÆÅÜ°Ê¡A¦Û°Ê¥Í¦¨¤@¨t¦C SQL ´y­z§ó·s»·ºÝ¸ê®Æ®w¡C
¹ê²{"¥iŪ¼g"Cursor¨ì"¥i§ó·s"Cursor¥²¶·¸g¾ú¥H¤U¤­¨Bªº³]¸m¡G
1. CURSORSETPROP("TABLES", ¸ê®Æ·½ªí¦W , ¥i§ó·sCursor¦W )
¦¹¨BÆJ³]©wªº¬O¸ê®Æ·½ùØ(SQL Server)«Ý§ó·sªºªí¦W¡A¦pªG¯A¤Î¦h­Óªí´N³o¼Ë¼g¡G CURSORSETPROP("TABLES","T1,T2","MyCursor") ¡C
2. CURSORSETPROP("KEYFIELDLIST", ÃöÁä¦r¬q , ¥i§ó·sCursor¦W )
¦¹¨BÆJ¬O³]©wÃöÁä¦r¬qªº¡A³o­ÓÃöÁä¦r¬q¬O¥i§ó·sCursorªºÄæ¦ì¡A¦Ó¤£¬O¸ê®Æ·½ùتºÄæ¦ì¡C
3. CURSORSETPROP("UPDATABLEFIELDLIST", ¥i§ó·sÄæ¦ì¦Cªí , ¥i§ó·sCursor¦W )
¦¹¨BÆJ³]©wªº¬O¦b¥i§ó·sCursorùØ­þ¨ÇÄæ¦ìªºÅÜ°Ê­n³Q¤Ï¬M¨ì¸ê®Æ·½¡A§Y­þ¨ÇÄæ¦ì®É¥i§ó·sªº¡C
4. CURSORSETPROP("UPDATENAMELIST", «e«á¬qÄæ¦ì¹ïÀ³Ãö¨t¦Cªí , ¥i§ó·sCursor¦W )
¦¹¨BÆJ³]©w¸ê®Æ·½Äæ¦ì»P¥i§ó·sCursorÄæ¦ìªº¹ïÀ³Ãö«Y¡C
5. CURSORSETPROP("SENDUPDATES",.T., ¥i§ó·sCursor¦W )
³o­Ó¨BÆJ¬O¥´¶} SQL µo°e¶}Ãö¡A³ÌÃöÁ䪺¤@¨B¡C
¬°«K©ó¤j®a²z¸Ñ¡A²{±N¥H¤W¤­¨B¹ê¨Ò¤Æ¡G
¨Ò¤@¡G
SQLEXEC(con,"select categoryid as id ,categoryname,description from categories","mycursor")
SELECT mycursor
CURSORSETPROP("Tables","categories","mycursor")
CURSORSETPROP("KeyFieldList","id","mycursor")
CURSORSETPROP("UpdatableFieldList" ,"id,categoryname,description","mycursor")
CURSORSETPROP("UpdateNameList","id categories.categoryid,categoryname categories.categoryname,"+;
"description categories.description","mycursor")
CURSORSETPROP("SendUpdates" ,.t.,"mycursor")
¨Ò¤G¡G
SQLEXEC(con,"select a.productid,a.productname,a.unitprice,b.categoryid,b.categoryname,c.supplierid,"+;
"c.companyname as suppliername,c.contactname"+;
" from (products a inner join categories b on a.categoryid=b.categoryid)"+;
" inner join suppliers c on a.supplierid=c.supplierid","mycursor")
SELECT mycursor
CURSORSETPROP("Tables","products,categories,suppliers","mycursor")
CURSORSETPROP("KeyFieldList","productid,categoryid,supplierid","mycursor")
CURSORSETPROP("UpdatableFieldList",+;
"productid,productname,unitprice,categoryid,categoryname,supplierid,suppliername,contactname","mycursor")
CURSORSETPROP("UpdateNameList","productid products.productid,productname "+;
"products.productname,unitprice products.unitprice,"+;
"categoryid categories.categoryid,categoryname categories.categoryname,"+;
"supplierid suppliers.supplierid,suppliername suppliers.companyname,contactname suppliers.contactname","mycursor")
CURSORSETPROP("SendUpdates" ,.t.,"mycursor")
¦æµ§¥^¥^¡A²×©ó§â§Ú»{ÃѪº SPT °ò¥»¾Þ§@¼g§¹¤F¡A´x´¤³o¨Ç¡A¤w¯à½s¼g¤£¿ùªº C/S µ{¦¡¡CÁöµM¡A¥»¤å¬O¥Î SQL Server §@¬°»·ºÝ¸ê®Æ®w¡A¦ý¬O¦pªG§A¨Ï¥Î DB2 ¡B Oracle ¡A¦b VFP ¤¤¤]¬O¤@¼Ë³B²z¡C








§â¸ê®Æ¶°³]¬°¥i§ó·s
Visual FoxProªº´å¼ÐÃþ«¬
´å¼Ðªº­^¤åºÙ©I¬OCursor¡A¦bVisual FoxPro¤¤²ßºDªº´£ªk¬OÁ{®Éªí¡]Temp Table¡^¡A¤£¹L§Ú·QÀ³¸Ó®Ú¾ÚºD¨Ò¥s¥¦´å¼Ð¡C¦]¬°Visual FoxProªº´å¼Ðµ´¹ï±j«l¡A¦pªGºÙ©ITemp Table®£³y¦¨»~·|¡A¦n¹³Visual FoxPro¤£¤ä«ù´å¼Ð¤@¼Ë¡C
Visual FoxProªº´å¼Ð¦³¤TºØ¡G°ßŪ´å¼Ð¡B¥iŪ¼g´å¼Ð¡B¥i§ó·s´å¼Ð¡C
°ßŪ´å¼Ð¬O¨ººØ¤£¯à³Q­×§ïªº´å¼Ð¡A¦bVisual FoxPro¤¤¨Ï¥ÎSQL-Select»y¥y²£¥Íªº´å¼Ð´N¬O¨å«¬ªº°ßŪ´å¼Ð¡G
SELECT * FROM ORDERS INTO CURSOR MYCURSOR
¹ï©óµ²ªG¶°¦XMyCursor¨Ó»¡§Ú­Ì¤£¯à¹ï¥¦°õ¦æ¥ô¦ó¼g¾Þ§@¡A¦p¡GReplace¡BDelete¡BUpdateµ¥¡C
¥iŪ¼g´å¼Ð¬O¨ººØ¥i¥H¶i¦æŪ¼g¾Þ§@¡A¦ý´å¼Ð¤Wªº¸ê®ÆÅܧ󤣳Q¤Ï¬M¨ì¸ê®Æ·½ªº´å¼Ð:
¨å«¬ªº¥iŪ¼g´å¼Ð¦³¤TÃþ¡A¨ä¤@´N¬O¥ÎSQLEXEC()±o¨ìªº´å¼Ð¡A§Ú­Ì¥i¥H¹ï¥¦¶i¦æ¦UºØ¾Þ§@¡]±q¤FZap¡BPack³o¼ËªºªíÀ£ÁY©R¥O¡^¡A¦ý¬O¥ô¦ó¸ê®ÆªºÅܰʳ£¤£·|¤Ï¬M¨ì¸ê®Æ·½¡C
²Ä¤GÃþ¥iŪ¼g´å¼Ð¬OVisual FoxPro 7 ªº·s¯S©Ê¡A§Ú­Ì¦bSQL-Select»y¥y¤W¥[¤JÃöÁä¦rreadwrite´N¥i¥H±o¨ì³oºØ´å¼Ð¡C³o¬O¤@­Ó«D±`´Îªº¯S©Ê¡A¦³¤F¥¦¦bVisual FoxPro¤¤¾Þ§@¤¤¶¡µ²ªG´N§ó¦Û¥Ñ¤F¡G
SELECT * FROM ORDERS INTO CURSOR MYCURSOR READWRITE
²Ä¤TÃþ¥iŪ¼g´å¼Ð¬O¡§¨S¦³³]¸mµo°e§ó·s¡¨ªº¥»¦aµø¹Ï©M»·ºÝµø¹Ï¡C
°O±o§Ú¦b¡§»·µ{µø¹Ï¡¨¤@³¹ùؤϴ_±j½Õ¡G­n·Qµø¹Ï¬O¥i§ó·sªº´N¥²¶·³]©w¥¦ªºSendUpdateÄݩʬ°.t.¡A¦pªG¨S¦³³]¡A¸Õ¹Ï´N¬O¥iŪ¼g´å¼Ð¤F¡A¥ô¦ó¹ïµø¹Ï¸ê®Æªº¾Þ§@³£¤£¯à¤Ï¬M¨ì¸ê®Æ·½ùؤF¡C
¥i§ó·s´å¼Ð¬O¨ººØ¥i¥H¶i¦æŪ¼g¾Þ§@¡A¨Ã¥B¥ô¦ó¸ê®ÆÅܰʳ£·|¤Ï¬M¨ì¸ê®Æ·½ªº´å¼Ð¡G
¨å«¬ªº¥i§ó·s´å¼Ð´N¬O¥i§ó·sµø¹Ï¡A¹ï¥¦ªº¦n³B§Ú´N¤£¦h¥[ij½×¤F¡A¦]¬°¸Ô²Óªº¤º®e¦b¡§»·ºÝµø¹Ï¡¨¤@³¹ùؤw¸g°Q½×¹L¤F¡C
§âSQLEXEC()±o¨ìªºµ²ªG¶°³]©w¬°¥i§ó·s´å¼Ðªº¤­¤j¨BÆJ
¦b¡§»·µ{µø¹Ï¡¨¤@³¹ùاڴN¤Ï´_±j½Õ¡AVisual FoxPro¬O«ç»ò²£¥Í»y¥ySQL´y­z¡Aµo°e¨ìSQL Server¤¤¥hªº¡C¤j®a¥i¥H·Q¹³°t¸m¤@±øSQL-Update©Î¬OSQL-Insert©Î¬OSQL-Delete»Ý­nªº­n¯À¡A«ç¼Ë§â¥Î¤áºÝÅÜ°ÊÂà¤Æ¬°SQL»y¥y»Ý­nªºªF¦è¡A´N¬O§Ú­Ì­n³]©wªºªF¦è¡G
A.CURSORSETPROP("TABLES",¸ê®Æ·½ªí¦W,¥i§ó·s´å¼Ð¦W)
¦¹¨BÆJ³]©wªº¬O¸ê®Æ·½ùØ¡]SQL Server)«Ý§ó·sªºªí¦W¡A¦pªG¯A¤Î¦h­Óªí´N³o¼Ë¼g¡GCURSORSETPROP("TABLES","T1,T2","MyCursor")¡C
B.CURSORSETPROP("KEYFIELDLIST",ÃöÁä¦r¬q,¥i§ó·s´å¼Ð¦W)
¦¹¨BÆJ¬O³]©wÃöÁä¦r¬qªº¡A³o­ÓÃöÁä¦r¬q¬O³o¥i§ó·s´å¼ÐªºÄæ¦ì¡A¦Ó¤£¬O¸ê®Æ·½ùØÄæ¦ì¡C
C.CURSORSETPROP("UPDATABLEFIELDLIST",¥i§ó·sÄæ¦ì¦Cªí,¥i§ó·s´å¼Ð¦W)
¦¹¨BÆJ³]©wªº¬O¦b¥i§ó·s´å¼ÐùØ­þ¨ÇÄæ¦ìªºÅÜ°Ê­n³Q¤Ï¬M¨ì¸ê®Æ·½¡A§Y­þ¨ÇÄæ¦ì®É¥i§ó·sªº¡C
D.CURSORSETPROP("UPDATENAMELIST",«e«á¬qÄæ¦ì¹ïÀ³Ãö¨t¦Cªí,¥i§ó·s´å¼Ð¦W)
¦¹¨BÆJ³]©w«e«áºÝÄæ¦ìªº¹ïÀ³Ãö«Y¡C
E.CURSORSETPROP("SENDUPDATES",.T.,¥i§ó·s´å¼Ð¦W)
³o­Ó¨BÆJ´N¤£À³¦h»¡¤F¡A³ÌÃöÁ䪺¤@¨B¡A¤£°µªº¸Ü«e­±ªº§V¤O³£¥Õ·f¡C
¤U­±§Ú¥Î¤T­Ó¹ê¨Ò¨Ó»¡©ú°ÝÃD¡G
¨Ò¤@¡G
cnn=SQLCONNECT("northwind")
SQLEXEC(cnn,"select categoryid as id ,categoryname,description from categories","mycursor")
SELECT mycursor
CURSORSETPROP("Tables","categories","mycursor")
CURSORSETPROP("KeyFieldList","id","mycursor")
CURSORSETPROP("UpdatableFieldList" ,"id,categoryname,description","mycursor")
CURSORSETPROP("UpdateNameList","id categories.categoryid,categoryname categories.categoryname,"+;
"description categories.description","mycursor")
CURSORSETPROP("SendUpdates" ,.t.,"mycursor")
1. ¸ê®Æ·½ªí¬O NorthWind ¸ê®Æ®wªºCategories ªí¡A¥i§ó·s¥úªí¬Omycursor
2. CURSORSETPROP("Tables","categories","mycursor")¡ATABLESÄݩʳ]©wªº¬O¡G³Q§ó·sªº¸ê®Æ·½ªíGategories
3. CURSORSETPROP("KeyFieldList","id","mycursor")¡AÃöÁä¦r¥Î¥i§ó·s´å¼ÐªºÄæ¦ì¦W¡GID¡A¦Ó¤£¬O¸ê®Æ·½ªíªºÄæ¦ì¦W¡Gcategoryid
4. CURSORSETPROP("UpdatableFieldList" ,"id,categoryname,description","mycursor")¡A¥i§ó·sÄæ¦ì¦Cªí³£¥Î¥i§ó·s´å¼ÐªºÄæ¦ì¦Wªí¥Ü¡A¦Ó¤£¬O¸ê®Æ·½ªíªºÄæ¦ì¦W¡C
5. CURSORSETPROP("UpdateNameList","id categories.categoryid,categoryname categories.categoryname,description categories.description","mycursor")¡A½Ðª`·N³oùتº¼gªk¡G¨C¤@²Õ¹ïÀ³Ãö«Y¥Î³r¸¹¤À¶}¡A«e­±¼g¥i§ó·s´å¼ÐªºÄæ¦ì¦W¡A¦A©ñ¸m¤@­ÓªÅ®æ¡A±µµÛ¼g¸ê®Æ·½ªíªºÄæ¦ì¦W¡]ª`·N¤@©w­n¥[¤W¸ê®Æ·½ªí¦WºÙ¡^
¨Ò¤G
cnn=SQLCONNECT("northwind")
SQLEXEC(cnn,"select a.productid,a.productname,a.unitprice,b.categoryid,b.categoryname,c.supplierid,"+;
"c.companyname as suppliername,c.contactname"+;
" from (products a inner join categories b on a.categoryid=b.categoryid)"+;
" inner join suppliers c on a.supplierid=c.supplierid","mycursor")
SELECT mycursor
CURSORSETPROP("Tables","products,categories,suppliers","mycursor")
CURSORSETPROP("KeyFieldList","productid,categoryid,supplierid","mycursor")
CURSORSETPROP("UpdatableFieldList",+; "productid,productname,unitprice,categoryid,categoryname,supplierid,suppliername,contactname","mycursor")
CURSORSETPROP("UpdateNameList","productid products.productid,productname ,"+;
"products.productname,unitprice products.unitprice,"+;
"categoryid categories.categoryid,categoryname categories.categoryname,"+;
"supplierid suppliers.supplierid,suppliername suppliers.companyname,contactname suppliers.contactname","mycursor")
CURSORSETPROP("SendUpdates" ,.t.,"mycursor")
1. ³o¬O¤@­Ó¤T­Óªí(Categories,Products,Suppliers)ªº³s±µµ²ªG¶°¦X¡Aºâ¬O½ÆÂø¤F¡A§Ú­Ìªº¥Ø¼Ð´N¬O¨Ï©Ò¦³ªºÄæ¦ì³£¯à§ó·s¨ì¬ÛÀ³ªºªí¤¤¡C
2. ª`·N¡§Tables¡¨Äݩʪº¼gªk¡A¯A¤Î¤T­Óªí´Nù¦C¤T­Óªí¡I
3. ª`·N¡§KeyFieldList¡¨Äݩʪº¼gªk¡A¤T­ÓªíªºÃöÁä¦r³£­n¦C¤W¡C¦pªG§A¨S¦³§âsupplierid¤F¦pªº¸Ü¡A¨º»ò¨Ó¦Û©ósuppliersªíªºÄæ¦ì´NµLªk§ó·s¨ìsuppliersªí¤¤¤F¡C
¨Ò¤T
cnn=SQLCONNECT("northwind")
SQLEXEC(cnn,"select orderid,productid,unitprice,quantity,discount from [order details]","mycursor")
SELECT mycursor
CURSORSETPROP("Tables","[order details]","mycursor")
CURSORSETPROP("KeyFieldList","orderid,productid","mycursor")
CURSORSETPROP("UpdatableFieldList" ,"orderid,unitprice,quantity,discount","mycursor")
CURSORSETPROP("UpdateNameList","orderid [order details].orderid,unitprice [order details].unitprice,quantity [order details].quantity,discount [order details].discount","mycursor")
CURSORSETPROP("SendUpdates" ,.t.,"mycursor")
1. ³o­Óµ²ªG¶°¨Ó¦Û©ó¤@­Óªí¡GOrder Details¡C
2. ª`·N¡§Tables¡¨Äݩʪº¼gªk¡A¦bSQL Server¤¤³oºØ±aªÅ®æªºªí¦W½Ð¥Î¤è¤f¸¹¤À¹j¡ATablesÄÝ©Ê«ü©wªº¬O¸ê®Æ·½ªí¡A©Ò¥H¥²¶·¥Î¡G[order details]¶ñ¤J¡C
3. ª`·N¡§KeyFieldList¡¨Äݩʪº¼gªk¡A³o­Óorder detailsªíªº¥DÃöÁä¦r¬O¤@­Ó½Æ¦XÃöÁä¦r¡A¦³orderid»PproductidÁp¦X²Õ¦¨¡A©Ò¥H³oùØ´N­n±N¥L­Ì¤@°_¶ñ¤J¡C
¤@­Ó«Ü­«­nªºÄÝ©Ê¡X¡XWhereType
·í§Ú­Ì³]©wµ²ªG¶°¬°¥i§ó·s´å¼Ð«á¡AÁÙ¦³¤@­Ó­«­nªºÄݩʨS¦³³]©w¡A´N¬OWhereType¡C§Y¡AWhere¦r¥y²£¥Íªº¨Ì¾Ú¡A¦³¥|ºØ±¡ªp¡G
CURSORSETPROP("WhereType" ,1) &&®Ú¾ÚÃöÁä¦r
CURSORSETPROP("WhereType" ,2) &&®Ú¾ÚÃöÁä¦r¡Ï¥i§ó·sÄæ¦ì
CURSORSETPROP("WhereType" ,3) &&®Ú¾ÚÃöÁä¦r+¤w§ó·sÄæ¦ì
CURSORSETPROP("WhereType" ,4) &&®Ú¾ÚÃöÁä¦r¡Ï®É¶¡ÂW
§ó¸Ô²Óªº¤º®e¤j®a¥i¥H°Ñ¬Ý¡§»·ºÝµø¹Ï¡¨³¹¸`¡A¦b¨ºùØ­±§Ú¤w¸gÁ¿±o«Ü¦h¤F¡C
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
yls



µù¥U®É¶¡: 2006-11-10
¤å³¹: 3
¨Ó¦Û: taiwan tainan

²Ä 2 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤T¤ë 26, 2008 10:16 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¦A¦¸·PÁ¤À¨É..........!!
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
syntech



µù¥U®É¶¡: 2003-05-16
¤å³¹: 4211
¨Ó¦Û: Taipei,Taiwan

²Ä 3 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤T¤ë 26, 2008 10:20 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

Ã@«Í¤å........

©ú©ú help ¤]»¡ªº«Ü²M·¡,
¤]¦³¤¤¤åª© (vfp6 ¤Î vfp9 ),
°ò¥»¤W¤í¯Êªº¬O¸gÅç½Í.

¤£¹L§Ú·Q§ó¦h¤Hªº²z¥Ñ¬OÃiªº§ä¸ê®Æ.

_________________
¦pªG¤½¥q¦³¤U¦C§xÂZ:
1. §ä¤£¨ì«K©y,§Ö³t,²©öªº ¥Í²£±Æµ{³nÅé
2. ¤£ª¾¹D¦p¦ó§Ö³t±Æ©w ±ÄÁÊ­p¹º
3. ¦¨¥»§ì¤£·Ç,¦Û¤vºâ¤ñ³nÅéºâ¦³¥Î
4. ·Q¾Ç²ß¨t²Î³W¹º,·Q§ä¨t²Î¬[ºcªºÅU°Ý

½ÐÁpµ¸§Ú­Ì,¤]³\§Ú­ÌÀ°±o¤W¦£
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó AIM Address
impotence



µù¥U®É¶¡: 2005-02-21
¤å³¹: 135
¨Ó¦Û: Hong Kong

²Ä 4 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤T¤ë 26, 2008 11:46 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

syntech ¼g¨ì:
Ã@«Í¤å........

©ú©ú help ¤]»¡ªº«Ü²M·¡,
¤]¦³¤¤¤åª© (vfp6 ¤Î vfp9 ),
°ò¥»¤W¤í¯Êªº¬O¸gÅç½Í.

¤£¹L§Ú·Q§ó¦h¤Hªº²z¥Ñ¬OÃiªº§ä¸ê®Æ.


¤°»ò¬O "Ã@«Í¤å" ?

_________________
¤@­Ó±`±`§Ñ°O Command ªº¤H !
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
syntech



µù¥U®É¶¡: 2003-05-16
¤å³¹: 4211
¨Ó¦Û: Taipei,Taiwan

²Ä 5 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤T¤ë 26, 2008 11:55 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

³o½g¬O 2003/4/12 µoªº,
¦³¤H¦b 2008/3/26 ±q¼X¹Ó¤¤«õ¥X¨Ó"·PÁ¤À¨É",
³oºØ¦æ¬°´N©M ±q·O´ò§â¦Ñ½±©Ô¥X¨Ó­×²z¤@µf(©Î§â¯³À̱q¹Ó¤¤«õ¥X¨Ó­×²z),"Ã@«Í" ¤@¼Ë,
¬Gºô¸ô²ßºD¤WºÙ¬° "Ã@«Í¤å"

_________________
¦pªG¤½¥q¦³¤U¦C§xÂZ:
1. §ä¤£¨ì«K©y,§Ö³t,²©öªº ¥Í²£±Æµ{³nÅé
2. ¤£ª¾¹D¦p¦ó§Ö³t±Æ©w ±ÄÁÊ­p¹º
3. ¦¨¥»§ì¤£·Ç,¦Û¤vºâ¤ñ³nÅéºâ¦³¥Î
4. ·Q¾Ç²ß¨t²Î³W¹º,·Q§ä¨t²Î¬[ºcªºÅU°Ý

½ÐÁpµ¸§Ú­Ì,¤]³\§Ú­ÌÀ°±o¤W¦£
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó AIM Address
sken



µù¥U®É¶¡: 2004-02-17
¤å³¹: 67


²Ä 6 ¼Ó

µoªíµoªí©ó: ¬P´Á¤­ ¤T¤ë 28, 2008 9:44 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¤p§Ì¤]¨Ó©â¤@¤U~µh¶Ü?
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@