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

µ£¤ß¥¼ª{ªºVFP+SQL ½sµ{(Âà¶K)

 
µ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´Á¤G ¤G¤ë 24, 2004 5:13 pm    ¤å³¹¥DÃD: µ£¤ß¥¼ª{ªºVFP+SQL ½sµ{(Âà¶K) ¤Þ¨¥¦^ÂÐ

¨Ó·½:±ö¤l µ£¤ß¥¼ª{
http://www.meizibbs.3322.org/bbs/dispbbs.asp?boardID=24&ID=6039

VFP+SQL ½sµ{(1)-°ÊºA³Ð«Ø¼Æ¾Ú·½
µªÂФp¥i¤Î¤ä«ù¦oªººô¤Íªº´£°Ý¡C

ÁÂÁ¤j®a¹ï§Úªº«H¥ô©M¤ä«ù¡A§Ú¶}©l¾Ç²ßVFP+SQL Server½sµ{¤ñ¸û±ß¡A¤j¬ù¬OVFP6©MSQL Server 7.0 ¥X¨Ó«á¤~¶}©lªº¡C±q¾Ç²ß©M¹ê½î¤¤¨ú±o¤F¤@¨Ç¸gÅç¡C¦pªG¤j®a¦³¿³½ì¡A§Ú¥i¥H§â¤@¨Ç¤ß±o¤¶²Ðµ¹¤j®a¡C
§Ú±N§¹¾ã¤¶²ÐVFP+SQL Server C/Sµ²ºc½sµ{.¤£²M·¡ªºªB¤Í¥i¦V¤p¥i¤@¼Ë´£¥X°ÝÃD¡A§Ú¦pªGÀ´ªº¸Ü¡A¥i§@¸Ñµª¡C

1¡B¼Æ¾Ú·½ªº«Ø¥ß¤è¦¡
¦]¬°«Ø¥ß¼Æ¾Ú·½¬OVFP+SQL Server½sµ{ªº²Ä¤@¨B¡A©Ò¥H­n¥ýÁ¿¡C
¤@¯ëªì¦¸±µÄ²®É¡A³£¬O¤â¤u«Ø¥ßODBC¼Æ¾Ú·½¡A¦ý³o¼Ë°µ¦³¤@¨Ç¤£¤è«K¡A¯S§O¬O¤u§@¯¸¼Æ¶q¸û¦h©Î¤u§@¯¸¸û¤À´²¡A¤â¤u¤è¦¡´N¤ñ¸û³Â·Ð¤F¡C§A­n¨ì¨C¤@¥x¤u§@¯¸¤W¥h«Ø¥ßODBC¼Æ¾Ú·½¡C

¥Îµ{§Ç¦Û°Ê«Ø¥ßODBC¼Æ¾Ú·½ªºÀuÂI¦³¥H¤U´XÂI¡G
1¡B¥i¥H¤è«K¦a¥ÎIP¦a§}³X°ÝªA°È¾¹¡A¤£½×¬O¦b§½°ìºô¤ºÁÙ¬O¦b­^¯Sºô¤W¡A¥u­nª¾¹DªA°È¾¹ªºIP¦a§}¡A´N¯à¥¿±`³X°ÝªA°È¾¹¡C(¹ê½îÃÒ©ú¡A³oºØ¤èªk¦bINTERNT¤W¥i¯à¶¶§Q³q¹L¥æ´«¾÷©M¸ô¥Ñ¾¹¡C)

2¡B¤£¥Î³Â·Ð¦a¦b¨C¥x¤u§@¯¸¥h³]©wODBC¡C

§Ú±N¦b«á­±µ¹¥X¥Îµ{§Ç½Õ¥ÎAPI¨ç¼Æ¥h«Ø¥ßODBC¼Æ¾Ú·½¡C
µn¿ýªí³æªº¬É­±


½Õ¥Î¤è¦¡¡G
§Ú¬O¦bµn¿ýªí³æªº¡u½T©w¡v«ö¶sªºClick¨Æ¥ó¤¤½Õ¥Î³o­Ó¨ç¼Æªº

* ¥h±¼±±®æ
gcDSN=ALLTRIM(thisform.dsn) && §A¿é¤JªºªA°È¾¹IP¦a§}©ÎªA°È¾¹¦W
gcUID=ALLTRIM(thisform.uid) && ¥Î¤áµn¿ý¦W ¦p¡Gsa
gcPWD=ALLTRIM(thisform.pwd) && ¥Î¤á¤f¥O
«O¦s¥Î¤áªº¿é¤JªA°È¾¹IP©M¥Î¤á¦W¦a(VFPªí¤¤)
*IF NOT USED("cfg")
* USE \tmp\cfg.dbf IN 0
*ENDIF

*
SELECT cfg
replace cfg.DSN WITH thisform.dsn
replace cfg.UID WITH thisform.uid


* ³Ð«Ø¥Î¤á¦W¼Æ¾Ú·½
CreateDSN(gcDSN,gcSQLDatabase+"¼Æ¾Ú·½",gcDSN,gcSQLDatabase)

thisform.handle = SQLSTRINGCONNECT("DSN=&gcDSN;UID=&gcUID;PWD=&gcPWD;DATABASE=&gcSQLDatabase")

thisform.Release


Åܶq»¡©ú¡G(Åܶq¥þ¬O¥þ§½Åܶq¡AÅܶq¦W²Ä1­Ó¦r¥Àªí¥Ü¥þ§½¡A²Ä2­Ó¦r¥Àªí¥ÜÅܶqÃþ«¬¡A¦pcªí¥Ü¦r²Å«¬¡Anªí¥Ü¼Æ­È«¬)
gcDSN-------¼Æ¾Ú·½¦W¡A¦pªG§A¿é¤Jªº¬OIP¡A´N¥i¯à¬O³o¼Ë¡v192.168.0.1¡u¡A¦pªG¬OªA°È¾¹¦W¥i¯à¬O³o¼Ë¡vpcsrv¡u

gcSQLDatabase----SQL Server ªº¨t²Î¼Æ¾Ú "master"©Î§A³Ð«Øªº¼Æ¾Ú®w

µn¿ýªí³æªº·½µ{§Ç¡G
http://vfp.sunyear.com.tw/download.php?id=302


¦bµn¿ýªí³ælogin.scxªºUnload¨Æ¥ó¤¤ªº¤º®e¬°¡G
* ¦pªGµn¿ý¥¢±Ñ thisform.handle<=0
RETURN thisform.handle

ª`·N¡GgnMaster¬O³s±µSQL Serverªº¨t²Î¼Æ¾Ú®wMasterªº³s±µ¥y¬`¡C

¦b¤J¤f¥Dµ{§Ç¤¤À³¿é¤J¤U¦C»y¥y¡A¥iÁקKODBC¹ï¸Ü®Øªº¥X²{¡G
SQLSETPROP(0,"DispLogin",3)


µn¿ýªí³æªºInit¨Æ¥ó¤º®e¡G

*±qVFPªícfg.dbf¤¤¨ú±o¤W¦¸¿é¤JªºIP¦a§}©M¥Î¤á¦W¡Aµ²ªG¦s¤J¥Î¤á¦Û©w¸qÄݩʤ¤
thisform.uid=cfg.uid
thisform.dsn=cfg.dsn

µn¿ýªí³æªºUnLoad¨Æ¥ó¡G

* ±Nµn¿ýµ²ªGªð¦^µ¹½Õ¥Îµn¿ýªí³æªº¥Dµ{§Ç main.prg
RETURN thisform.handle

* thisform.handle>0 µn¿ý¦¨¥\
* thisform.handle <0 µn¿ý¥¢±Ñ

*¦b¥Dµ{§Ç¤¤½Õ¥Îµn¿ýªí³æªº¤èªk

* Àˬd±b¸¹
************************************************************
Do Form gcFormsPath+"login.scx" To gnHandle &&

If gnHandle <= 0 &&¤f¥O¤£¥¿½T
Quit
Endif
************************************************************



µ{§Ç³Ð«Ø¼Æ¾Ú·½µ{§Ç­ì½X¡G
¥N½X:
*****************************************************************************
* ¨ç¼Æ¦W¡GCreateDSN
* ¥\¯à¡G¥ÎAPI¨ç¼Æ¨Ó?#93;¸mODBC¼Æ¾Ú·½
* ½Õ¥Î¤è¦¡¡G=CreateDSN(c¼Æ¾Ú·½¦W,c¼Æ¾Ú·½´y­z,cSQLªA°È¾¹¦W,cSQL¼Æ¾Ú®w¦W)
* ¨Ó·½¡G¡m½Í½ÍVFP©MSQL SERVER·f°t°µC/S¨t²Î¡n
* µù¡G³o¸Ì«Ø¥ßªº¬O¥Î¤á¼Æ¾Ú·½

*¤U­±ªº¨Ò¤l¬O¥ÎAPI¨ç¼Æ¨Ó?#93;¸m©M§R°£ODBC¼Æ¾Ú·½¡C
*¨ç¼Æ¦W¦r¬O SQLConfigDataSource¡A¨ä¤¤²Ä¤G¶µ°Ñ¼Æ¬O¼Æ¦r(1-¼W?#91; 2-­×§ï 3-§R°£)
Function CreateDSN
 Parameters c¼Æ¾Ú·½¦W,c¼Æ¾Ú·½´y­z,cSQLªA°È¾¹¦W,cSQL¼Æ¾Ú®w¦W

 Declare Integer SQLConfigDataSource In odbccp32 Integer, Integer, String, String

 lnWindowHandle=0
 lcODBCDriver='SQL Server' && DRIVERÃþ«¬
 *c¼Æ¾Ú·½¦W='ZXJ' && ¼Æ¾Ú·½¦W¦r
 *c¼Æ¾Ú·½´y­z='¤åÀɺ޲z¼Æ¾Ú·½' && ¼Æ¾Ú·½´y­z
 *cSQLªA°È¾¹¦W='ZXJ' && SQL SERVER¦W¦r
 *cSQL¼Æ¾Ú®w¦W='¤åÀɺ޲z' && ­n³s±µªº¼Æ¾Ú®w¦W¦r

 **¥ý¸Õ¹Ï­×§ï¤w¦³ªºODBC¡A¦pªG¤£¦s¦b¡Aªð¦^0¡C
 lreturn=SQLConfigDataSource(lnWindowHandle, 2, lcODBCDriver, ;
  'DSN=' + c¼Æ¾Ú·½¦W + Chr(0) ;
  + 'Description=' + c¼Æ¾Ú·½´y­z + Chr(0) ;
  + 'Server=' + cSQLªA°È¾¹¦W + Chr(0) ;
  + 'Database=' + cSQL¼Æ¾Ú®w¦W + Chr(0))
 If lreturn=0 &&¤£¦s¦b

  **²K?#91;·sªºODBC
  lreturn=SQLConfigDataSource(lnWindowHandle, 1, lcODBCDriver, ;
   'DSN=' + c¼Æ¾Ú·½¦W + Chr(0) ;
   + 'Description=' + c¼Æ¾Ú·½´y­z + Chr(0) ;
   + 'Server=' + cSQLªA°È¾¹¦W + Chr(0) ;
   + 'Database=' + cSQL¼Æ¾Ú®w¦W + Chr(0))
  If lreturn=0 &&¥¢±Ñ
   Messagebox('²K?#91;ODBC¼Æ¾Ú·½¥¢±Ñ',0+16+0,'BUFFER')
  Endif
 Endif
 Return

 *****************************************************************************
Function DelDSN
 Parameters c¼Æ¾Ú·½¦W,c¼Æ¾Ú·½´y­z,cSQLªA°È¾¹¦W,cSQL¼Æ¾Ú®w¦W

 * ¥\¯à¡G¥ÎAPI¨ç¼Æ¨Ó§R°£ODBC¼Æ¾Ú·½
 * ½Õ¥Î¤è¦¡¡G=§R°£¼Æ¾Ú·½(c¼Æ¾Ú·½¦W,c¼Æ¾Ú·½´y­z,cSQLªA°È¾¹¦W,cSQL¼Æ¾Ú®w¦W)
 * ¨Ó·½¡G¡m½Í½ÍVFP©MSQL SERVER·f°t°µC/S¨t²Î¡n
 * µù¡G³o¸Ì«Ø¥ßªº¬O¥Î¤á¼Æ¾Ú·½

 **¥Î§¹«á¡A¥i¥H¦bªí³æDESTROY¨Æ¥ó¸Ì§R°£ODBC¡C ¦pªG¤£·Q­«½Æ?#93;¸m°Ñ¼Æ¡A¥i¥H§â³o¨Ç°Ñ¼Æ?#91;¨ìªí³æ§@¬°ÄÝ©Ê¡C

 Declare Integer SQLConfigDataSource In odbccp32 Integer, Integer, String, String

 lnWindowHandle=0
 lcODBCDriver='SQL Server'
 *c¼Æ¾Ú·½¦W='SharedData'
 *c¼Æ¾Ú·½´y­z='Shared Data Source'
 *cSQLªA°È¾¹¦W='DEVSQL'
 *cSQL¼Æ¾Ú®w¦W='Shared'

 **¥ý­×§ï¡A©ÎªÌ¨ä¬O§_¦s¦b
 lreturn=SQLConfigDataSource(lnWindowHandle, ;
  2, lcODBCDriver, ;
  'DSN=' + c¼Æ¾Ú·½¦W + Chr(0) ;
  + 'Description=' + c¼Æ¾Ú·½´y­z + Chr(0) ;
  + 'Server=' + cSQLªA°È¾¹¦W + Chr(0) ;
  + 'Database=' + cSQL¼Æ¾Ú®w¦W + Chr(0))
 If lreturn=1 &&ODBC¦s¦b¡A§R°£¥¦
  lreturn=SQLConfigDataSource(lnWindowHandle, ;
   3, lcODBCDriver, ;
   'DSN=' + c¼Æ¾Ú·½¦W + Chr(0) ;
   + 'Description=' + c¼Æ¾Ú·½´y­z + Chr(0) ;
   + 'Server=' + cSQLªA°È¾¹¦W + Chr(0) ;
   + 'Database=' + cSQL¼Æ¾Ú®w¦W + Chr(0))
  If lreturn=0
   Messagebox('§R°£ODBC·½¥¢±Ñ',0+16+0,'Buffer')

  Endif'
 Endif

 **²M°£DLL
 Clear Dlls
 * End

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################


Ruey ¦b ¬P´Á¥| ¤G¤ë 26, 2004 3:10 pm §@¤F²Ä 3 ¦¸­×§ï
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Ruey



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

²Ä 2 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤G¤ë 24, 2004 5:19 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

VFP+SQL ½sµ{(2)-°ÊºA³Ð«Ø»·µ{µø¹Ï
¥ý¬Ý·½µ{§Ç
¥N½X:
LPARAMETERS cSQLDatabaseName,cConnectionName,cSQLTableName,cViewName,cKey,cCondition,cOrder
*cSQLDatabaseName «áºÝ¼Æ¾Ú®w¦W
* cConnectionName  ³s±µ¦W
* cSQLTableName        «áºÝªí¦W
* cViewName  µø¹Ï¦W
* cKey  ¥DÁä
* cCondition µø¹Ï±ø¥ó 
* cOrder ±Æ§Ç

*LOCAL nConnectHandle &&¼Æ¾Ú®w³s±µ¥y¬`

LOCAL cFieldName &&¦r¬q¦W

***********************************************************************
* ¨ç¼Æ¦W¡GCreateView
* §@¥Î¡G* ³Ð«Ø»·µ{µø¹Ï¨ç¼Æ
* °Ñ¼Æ»¡©ú¡G
*   cOrder---±Æ§Ç¤è¦¡
*   nHandle---«ü©wªº¼Æ¾Ú®wªº³s±µ¥y¬`
*  cSQLDatabaseName---SQL Server¼Æ¾Ú®w¦W
*   cConnName---³s±µ¦W
*   cSQLTableName---SQL Serverªí¦W
*   cViewName---­n³Ð«Øªº»·µ{µø¹Ï¦W
*   cKey---¥DÁä
*   cCondition---±ø¥ó
* ½Õ¥Î®æ¦¡:
* =CreateView('¼Æ¾Ú®w¦W','³s±µ¦W','«áºÝªí¦W','µø¹Ï¦W','¥DÁä¦W','±ø¥ó','±Æ§Ç')

* ²Ä¤@¨B¡B³Ð«Øµø¹Ï

* ¦pªG¬O±a±ø¥óªºµø¹Ï

IF NOT EMPTY(cCondition)   

 CREATE SQL VIEW &cViewName ;
  CONNECTION &cConnectionName SHARE ;
  AS SELECT * FROM &cSQLTableName WHERE &cCondition ;
  ORDER BY &cOrder

ELSE       && ¦pªG¬O¤£±a±ø¥óªºµø¹Ï

 CREATE SQL VIEW &cViewName ;
  CONNECTION &cConnectionName SHARE ;
  AS SELECT * FROM &cSQLTableName ;
  ORDER BY &cOrder

ENDIF



* ²Ä¤G¨B¡B³]¸mµø¹Ï¥i§ó·s
* 1).Tables ÄÝ©Ê
DBSETPROP('&cViewName','View','Tables','&cSQLTableName')


* 2).KeyField ÄÝ©Ê(±N¦r¬q"cKey"³]©w¦¨ÃöÁä¦rÄæ)
DBSETPROP('&cViewName..&cKey','Field','KeyField',.T.)

* 3.UpdateName ÄÝ©Ê
DBSETPROP('&cViewName..&cKey','Field','UpdateName','&cSQLTableName..&cKey')

* 4)Updatable ÄÝ©Ê(«ü©w¥i§ó·sªº¦r¬q)

* ¨ú±oSQL Serverªí¡ucSQLTableName¡vµ²ºc¡A¦s©ñ¦bªí¡uªíµ²ºc¡v¤¤
*nConnectHandle=SQLSTRINGCONNECT('DSN=&gcDSN;UID=&gcUID;PWD=&gcPWD;DATABASE=&cSQLDatabaseName')

* °Ñ¨£¡mVisual FoxPro 6.X ¤¤¤åª©µ{§Ç³]­p¡np.431
* 11.12 ¨ú±o«áºÝ¦r¬qªº¬ÛÃö«H®§
cCursorName='C'+SYS(3)
N=SQLCOLUMNS(gnHandle,"&cSQLTableName","FOXPRO","&cCursorName")
*  n=SQLCOLUMNS(nConnectHandle,"¤åÀÉ","FOXPRO","°òªíµ²ºc")
* n=0 SQLCOLUMNSÁÙ¦b°õ¦æ¤¤
* n=1 SQLCOLUMNS°õ¦æ¦¨¥\
* n=-1 µo¥Í³s±µ¼h¦¸¤Wªº¿ù»~
* n=-2 µo¥Í¨t²ÎÀô¹Ò¤Wªº¿ù»~


SELECT(cCursorName)
SCAN
 cFieldName=ALLTRIM(&cCursorName..Field_name)
 DBSETPROP('&cViewName..&cFieldName','Field','Updatable',.T.)   && ¥i§ó·s

 DO CASE

  CASE  Field_type='C' && ¦pªG¬OChar«¬¦r¬q,Àq»{­È¬O''
   DBSETPROP('&cViewName..&cFieldName','Field','Defaultvalue',' ') && Àq»{­È

  CASE  &cCursorName..Field_type='N' && ¦pªG¬ONumber«¬¦r¬q,Àq»{­È¬O0
   DBSETPROP('&cViewName..&cFieldName','Field','Defaultvalue','0') && Àq»{­È

  CASE  Field_type='T' && ¦pªG¬Osmalldatetime«¬¦r¬q,§ïÅܵø¹Ï¦r¬qÃþ«¬¦¨¤é´Á«¬
   IF NOT cFieldName='§ó·s®É¶¡'
    DBSETPROP('&cViewName..&cFieldName','Field','DataType','d')
   ENDIF
  CASE  Field_type='I' && ¦pªG¬Oint«¬¦r¬q,
   DBSETPROP('&cViewName..&cFieldName','Field','DataType','n(10,0)')

  CASE  Field_type='L' && ¦pªG¬Obit«¬¦r¬q,§ïÅܵø¹Ï¦r¬qÃþ«¬¬°Å޿諬
   DBSETPROP('&cViewName..&cFieldName','Field','DataType','l')
   DBSETPROP('&cViewName..&cFieldName','Field','Defaultvalue','.F.') && Àq»{­È

  CASE  Field_type='M' AND ALLTRIM(cFieldName)='TIMESTAMP'&&
 ENDCASE
ENDSCAN
USE IN (cCursorName)

* 5)¥´¶} SQL §ó·s¶}Ãö
DBSETPROP('&cViewName','View','SendUpdates',.T.)

* 6) ³]©w§ó·s½Ä¬ðªº¸Ñ¨M¤è¦¡(¥DÁä©M¤w­×§ï¦r¬q)
DBSETPROP('&cViewName','View','WhereType',2)
DBSETPROP("&cViewName","View","ShareConnection",.T.) &&±Nµø¹Ï³]¸m¦¨¦@¨É³s±µ

* 7) §ó·sÃþ«¬,¥ý§R°£,«á´¡¤J
* DBSETPROP('&cViewName','View','UpdateType',2)

* Endfunc
***********************************************************************************


½Õ¥Î¤§«eÀ³¥ý³Ð«Ø¤@­Ó¥»¦a¼Æ¾Ú®w©M³s±µ¡G

* ³Ð«Ø³s±µ
¥N½X:
****************************************************
Create Connection ¸ê®Æ³s±µ ;
 DATASOURCE '&gcDSN' ;
 USERID '&gcUID' ;
 PASSWORD '&gcPWD' ;
 DATABASE &gcSQLDatabase
****************************************************
¨ä¤¤¡GgcDSN¬O¼Æ¾Ú·½¦WºÙ
¡@¡@¡@gcUID¡@¬O¥Î¤áµn¿ý¦W
         gcPWD ¬O¥Î¤á¤f¥O
         gcSQLDatabase ¬O«áºÝSQL¼Æ¾Ú®w(§A¦Û¤v³Ð«Øªº)




¨Ò¦p¡G
* ³Ð«Øµø¹Ï "VIEW_µø¹ÏÄÝ©Ê" ¥Î¥H«O¦s©M³]¸m¨t²Î©Ò¥Îµø¹ÏªºÄÝ©Ê
createview(gcSQLDatabase,'¸ê®Æ³s±µ','µø¹ÏÄÝ©Ê','view_µø¹ÏÄÝ©Ê','ID',"",'µø¹ÏÄÝ©Ê.ID')
* «áºÝ¼Æ¾Ú®w¦W ³s±µ¦W «áºÝªí¦W µø¹Ï¦W ¥DÁä ±ø¥ó ±Æ§Ç

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Ruey



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

²Ä 3 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤G¤ë 24, 2004 5:22 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

VFP+SQL ½sµ{(3)-¥ÎVFP³Ð«ØSQL¼Æ¾Ú®w


¥N½X:
**********************************************
* Copyright (c) 2003,
* All rights reserved.
*
* ¤å¥ó¦WºÙ¡GCreateSQLDB
* ¤å¥ó¼ÐÃÑ¡G
* ºK    ­n¡G³Ð«Ø«áºÝSQL Server ¥Î¤á¼Æ¾Ú®w
*
* ·í«eª©¥»¡G1.0
* §¹¦¨¤é´Á¡G2003.03
**********************************************
SET TALK OFF
*SET STEP ON
gcDSN='PCSRV'
gcUID='sa'
gcPWD='111'
gcSQLDatabase='¸ê®ÆºÞ²z'
* ?#93;©w¤£Åã¥Ü¥XODBCµn¿ý¹ï¸Ü®Ø

=SQLSETPROP(0,"DispLogin",3)

gnMaster =SQLSTRINGCONNECT("DSN=&gcDSN;UID=&gcUID;PWD=&gcPWD;DATABASE=master")


WAIT CLEAR
WAIT WINDOWS "¥¿¦b³Ð«Ø¼Æ¾Ú®w¡u" + gcSQLDatabase + "¡v¡A½Ðµy­Ô..." NOWAIT NOCLEAR

llCreateResult=.F.  && ³Ð«Ø¼Æ¾Ú®wgcSQLDatabaseµ²ªG
llDelResult=.T.  && §R°£¼Æ¾Ú®wgcSQLDatabaseµ²ªG


* ?#125;©l¤¬°Ê¥æ©ö
=SQLSetProp(gnMaster,'Transactions',2)

* §PÂ_¥Î¤á¼Æ¾Ú®w¡ugcSQLDatabase¡v¼Æ¾Ú®w¦s¦b§_A¦pªG¦s¦b¡AgnHandle>0
gnHandle =SQLSTRINGCONNECT("DSN=&gcDSN;UID=&gcUID;PWD=&gcPWD;DATABASE=&gcSQLDatabase")

IF gnHandle> 0 &&ªí©ú"gcSQLDatabase"¼Æ¾Ú®w¤w¸g¦s¦b

 =SQLDISCONNECT(gnHandle) &&¤ÁÂ_»P¼Æ¾Ú®w¡ugcSQLDatabase¡vªºÁpô¡A§_«h¤£¯à§R°£¡C

 WAIT CLEAR

 WAIT WINDOWS "¡u" + gcSQLDatabase+"¡v¼Æ¾Ú®w¤w¸g¦s¦b¡A¥¿¦b§R°£..." NOWAIT NOCLEAR
 
 IF SQLEXEC(gnMaster,"DROP DATABASE &gcSQLDatabase") > 0 &&§R°£

  WAIT CLEAR
  WAIT WINDOWS "§R°£¡u" + gcSQLDatabase +"¡v®w¦¨¥\!" NOWAIT NOCLEAR
  llDelResult=.T.
  WAIT CLEAR
  WAIT WINDOWS "Ä~Äò³Ð«Ø¼Æ¾Ú®w¡u" + gcSQLDatabase +"¡v..." NOWAIT NOCLEAR

 ELSE
  WAIT CLEAR
  WAIT WINDOWS "§R°£¡u" + gcSQLDatabase +"¡v®w¥¢±Ñ!" NOWAIT NOCLEAR
  llDelResult=.F.
 ENDIF
ENDIF

IF llDelResult=.T.


 IF SQLEXEC(gnMaster,"CREATE DATABASE &gcSQLDatabase") > 0 && ¹Á¸Õ¹ê»Ú§ó·s,¨Ã¥B¥H«á¼g¤J¬°·Ç

  * µ²§ô¤¬°Ê¥æ©ö
  SQLCOMMIT(gnMaster)
  WAIT CLEAR
  llCreateResult=.T. && ³Ð«Ø¦¨¥\¼Ð»x
  ??CHR(7)
  MESSAGEBOX("³Ð«Ø¡u"+ gcSQLDatabase + "¡v®w¦¨¥\¡I«ö¥ô·NÁä°h¥X",0,"³Ð«Ø¼Æ¾Ú®w") 
 ELSE
  * ¿ù»~³B²z
  AERROR(la¿ù»~)

  * ¦V«á«ì´_
  SQLROLLBACK(gnMaster)
  WAIT CLEAR
  ??CHR(7)
  MESSAGEBOX("³Ð«Ø¡u"+ gcSQLDatabase + "¡v®w¥¢±Ñ¡I«ö¥ô·NÁä°h¥X",0,"³Ð«Ø¼Æ¾Ú®w")   
  llCreateResult=.F. && ³Ð«Ø¦¨¥\¼Ð»x
 ENDIF
 WAIT CLEAR
ENDIF

RETURN llCreateResult




»¡©ú¡G
1¡B¥ý­n»Pmaster¼Æ¾Ú®w«Ø¥ß³s±µ
gnMaster =SQLSTRINGCONNECT("DSN=&gcDSN;UID=&gcUID;PWD=&gcPWD;DATABASE=master")

2¡BµM«á³Ð«Ø¼Æ¾Ú®w
SQLEXEC(gnMaster,"CREATE DATABASE &gcSQLDatabase")

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################


Ruey ¦b ¬P´Á¤G ¤G¤ë 24, 2004 5:25 pm §@¤F²Ä 1 ¦¸­×§ï
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Ruey



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

²Ä 4 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤G¤ë 24, 2004 5:24 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

VFP+SQL ½sµ{(4)-¥ÎVFP³Ð«ØSQLªí

¥N½X:
**********************************************
* Copyright (c) 2003,¦¨³£¾å¶i³n¥ó¤u§@«Ç
* All rights reserved.
*
* ¤å¥ó¦WºÙ¡GCreateSQLTable
* ¤å¥ó¼ÐÃÑ¡G
* ºK    ­n¡G³Ð«Ø«áºÝSQL Server ¥Î¤á¼Æ¾Úªí
*
* ·í«eª©¥»¡G1.0
* §¹¦¨¤é´Á¡G2003.03
**********************************************


gcDSN='192.168.0.80'
gcUID='sa'
gcPWD=''
gcSQLDatabase='¸ê®ÆºÞ²z'

=SQLSETPROP(0,"DispLogin",3)


gnHandle =SQLSTRINGCONNECT("DSN=&gcDSN;UID=&gcUID;PWD=&gcPWD;DATABASE=&gcSQLDatabase")

IF NOT USED("cfg")
 USE c:\¸ê®ÆºÞ²z\tmp\cfg.dbf
ENDIF
SELECT cfg

IF cfg.codetable=.t. && ¥N½Xªí

 SQLEXEC(gnHandle,"CREATE TABLE ¥N½Xªí (ID int not null IDENTITY (1,1) PRIMARY KEY)")
 SQLEXEC(gnHandle,"ALTER TABLE ¥N½Xªí ADD Ãþ«¬ char (10)  null")
 SQLEXEC(gnHandle,"ALTER TABLE ¥N½Xªí ADD ¥N½X char (20) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¥N½Xªí ADD ¦WºÙ char (40) null")

ENDIF

IF cfg.colldata=.T. && ¸ê®Æ¦¬¶°

 SQLEXEC(gnHandle,"CREATE TABLE ¸ê®Æ¦¬¶° (ID int not null IDENTITY (1,1) PRIMARY KEY)")

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ±µ¦¬¤é´Á datetime null") && Àq»{­È¡G¨t²Î¤é´Á
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD §Ç¸¹ Int null")   && ¦Û°Ê
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ±µ¦¬¤H char (8) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD °e¥æ¤H char (8)  null")

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤å¥ó¸¹ char (30) null") && ­ì¬°¡u¤å¥ó½s¸¹¡v

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¼Ð·Ç¥N¸¹ char (30) null")     && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¼Ð·Ç¦WºÙ varchar (200) null") && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD Ķ¦W varchar (200) null")     && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¹ê¬I¤é´Á smalldate null")     && ·s¼W ¼Ð·Çªº¡u¹ê¬I¤é´Á¡v
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ½s»s³æ¦ì varchar (60) null")  && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤å¥ó½s»s varchar (100) null")      && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤åºØ char (10) null")        && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¾÷ºc¥N¸¹ varchar (30) null")  && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¼Ð·Ç¦~¥÷ int null")     && ·s¼W

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤º³¡½s¸¹ char (30) null") && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤å¥ó½s½X char (30) null")   && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤å¥ó¦W char (200) null")    && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤å¥óª¬ºA char (6) null")   && ·s¼W
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¸üÅé char (6) null")    && ·s¼W

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤uµ{¥N¸¹ char (30) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤uµ{¦WºÙ varchar (80) null") &&
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ­ì¤å¸¹ text null")  &&
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD Á`±b¸¹ Int null")

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ³]­p¶¥¬q char (20) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ª©¦¸ char (2) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ÃD¥Ø varchar (200) null") &&
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ÃöÁäµü char (30) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ±K¯Å char (4) null")

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ÂkÀÉ¥÷¼Æ Int null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ­¶¼Æ Int null") && ­ì¬°¨C¥U­¶¼Æ
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ©³¹Ï±i¼Æ Int null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD «OºÞ´Á­­ char (4) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ³d¥ôªÌ varchar (80) null")

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD §Î¦¨®É¶¡ char (22) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤J®w®É¶¡ smalldatetime null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤â½Z Int null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD Àò¼úµ¥¯Å char (4) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ³Æµù text null")  &&­ì¬° char(60)

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¸ê®Æ®w§O char (10) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¹q¤l¤å¥ó¦W char (20) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¥þ®§ÂsÄý¯Å§O char (8) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ®Õ¹ï char (20) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¼f¬d char (14) null")

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¼f©w char (14) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ÂkÀɳæ¦ì varchar (100) null") &&
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ­×§ï char (1) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ­É¾\¼ÐÃÑ char (20) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤å¥ó³Ñ¾l¥÷¼Æ Smallint (2) null")


 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ÂkÀɼлx int null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ÂkÀɥӽФH char (8) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ÂkÀɥӽЮɶ¡ smalldatetime null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ÂkÀɱµ¦¬¤H char (8) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ÂkÀɱµ¦¬®É¶¡ smalldatetime null")

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤J®w¼Ð»x char (1) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤J®w¥Ó½Ð¤H char (8) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤J®w¥Ó½Ð®É¶¡ smalldatetime null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤J®w±µ¦¬¤H char (8) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤J®w±µ¦¬®É¶¡ smalldatetime null")

 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ±M·~¨t²Î char (44) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ©³¹Ï±i¼Æ Int null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¤À¥U¼Æ Int null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD §å­ã¤H char (8) null")

 * ¼W¥[ªº¦r¬q
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ¸ê®ÆÃþ«¬ char (20) null")
 SQLEXEC(gnHandle,"ALTER TABLE ¸ê®Æ¦¬¶° ADD ®É¶¡ÂW timestamp)")
 
ENDIF



»¡©ú¡G
1¡B¬°¤°»ò­n¥Î¦h±ø«Ø¥ß¤@­Óªí©O¡H
³o¬O¦]¬°³Ð«Ø«áºÝSQLªºªíªº©R¥O¬O¥]§t¦bSQLEXEC()¨ç¼Æ¤¤ªº¡A¦pªG§A­n«Ø¥ßªºªíªº¦r¬q¼Æ¦h¡A§Aªº©R¥Oªø«×«Ü®e©ö¶W¹L255­Ó¦r²Åªº­­¨î¡A¥t¥~¡Aµ{§Ç¥iŪ¤]«Ü®t¡C

2¡B¬°¤°»ò­n«Ø¥ßID¦r¬q©O¡H
³o¬O¦]¬°ID¦r¬q¬O¤@­Ó¯S®í¾ã«¬¦r¬q¡A¥¦§@¬°ÃöÁä¦r¡A¥Î¨Ó¸Ñ¨M§ó·s½Ä¬ðªº¡C¥¦ªº­È¦Û°Ê¼W1¡A«K¤£·|­«½Æ¡A¨Ò¦p¡A¬Y¦æªºID¡×100¡A¦pªG§R°£³o¦æ¡A«K¥Ã»·¤£·|¥X²{ID¡×100ªº­È¤F¡C

3¡B¬°¤°»ò­n«Ø¥ß¡u®É¶¡ÂW¡v¡@Ãþ«¬¬O timestampªº¦r¬q¡A¦P¼Ë¤]¬O¥Î¨Ó¸Ñ¨M¼Æ¾Ú§ó·sªº¡A·í¤@­Óªíªº¦r¬q¸û¦h®É¡A¦pªG¼W¥[³o­Ó¦r¬q¡A§ó·s³t«×¸û§Ö¡A¦]¬°SQL Server ¥u¬Ý³o­Ó¦r¬qªº¤º®eÅܨS¦³¡A¦pªGÅܤF¡A»¡©ú§A§ó§ï¤F¼Æ¾Ú¡C¤Ï¤§¨S¦³§ó§ï¡C

³o­Ó¨â­Ó¦r¬q³£¤£»Ý­n§A¨ÓºÞ²z©MºûÅ@¡C§A¥uºÞ¦bªí¤¤¥[¤J³o¨â­Ó¦r¬q´N¦æ¤F¡C

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Ruey



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

²Ä 5 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤G¤ë 24, 2004 5:27 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

VFP+SQL ½sµ{(5)-¥ÎSPTºÞ²z±b¸¹
1¡B²K¥[¤@­Ó±b¸¹

gcDSN='PCSRV' && pcsrv¬O§Úªº¥D¾÷¦W
gcUID='sa'
gcPWD='111'
gcSQLDatabase='¸ê®ÆºÞ²z'

*¡@³]©w¤£Åã¥ÜODBCµn¿ý¹ï¸Ü®Ø
=SQLSETPROP(0,"DispLogin",3)
* «Ø¥ß»P¼Æ¾Ú®wmasterªº³s±µ
gnMaster =SQLSTRINGCONNECT("DSN=&gcDSN;UID=&gcUID;PWD=&gcPWD;DATABASE=master")

cNewLoginID='zxj'
²K¥[¤@­Óµn¿ý¦W(¦bSQL Server¤W)'zxj'
n1=SQLEXEC(gnMaster,"sp_addlogin '&cNewLoginID'")

2¡B¦b§Aªº¼Æ¾Ú®w¤¤²K¥[¤@­Ó¥Î¤ázxj
«Ø¥ß»P§Aªº¼Æ¾Ú®wªº³s±µ

«Ø¥ß»P§Aªº¼Æ¾Ú®wªº³s±µ
ghandle = SQLSTRINGCONNECT("DSN=&gcDSN;UID=&gcUID;PWD=&gcPWD;DATABASE=&gcSQLDatabase")

²K¥[¤@­Ózxj¥Î¤á(¦b§Aªº¼Æ¾Ú®w¤¤)
n2=SQLEXEC(gnHandle ,"sp_grantdbaccess '&cNewLoginID','&cNewLoginID'")




¦pªGn1>0 ©În2>0 ªí¥Ü«Ø¥ß¦¨¥\¡C¤Ï¤§¥¢±Ñ

3¡B§R°£¤@­Ó¼Æ¾Ú®w¥Î¤á
n1=SQLEXEC(gnHandle ,"sp_revokedbaccess '&cLoginID'")

ª`·N¡G§A¾Þ§@ªº¬O«á¥xªº­þ­Ó¼Æ¾Ú®w¡A­n¬Ý³s±µ¥y¬`¬O«ü¦V­þ­Ó¼Æ¾Ú®wªº¡C³o¸Ìªº³s±µ¥y¬`¬O«ü¦V§Úªº¼Æ¾Ú®w¡u¸ê®ÆºÞ²z¡v
Åܶq·N¸q¦P1¼Ó¡C


4¡B§R°£¤@­Óµn¿ý±b¸¹

n2=SQLEXEC(gnMaster ,"sp_droplogin '&cLoginID'")
µù¡GgnMaster ¬O«ü¦VMaster¼Æ¾Ú®wªº¡C


±N·s¼W¥[ªº¥Î¤á¥[¤J¨ìsecurityadmin¨¤¦â¤¤
n=SQLEXEC(gnMaster,"sp_addsrvrolemember '&cNewLoginID',securityadmin")

»¡©ú¡G¦pªG§A¤£§â·s¼Wªº¥Î¤á¥[¤J¨ìsecurityadmin¨¤¦â¤¤¡A·í§A¥Î·s¥Î¤áµn¿ý®É¡AµLÅv§ïÅܦۤvªº¤f¥O¡C

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Ruey



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

²Ä 6 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤G¤ë 24, 2004 5:29 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

VFP+SQL ½sµ{(6)-°O¿ýºûÅ@
°²³]§Aªº¥i§ó·sªº»·µ{µø¹Ï¬O¡uVIEW_¾Ç¥Í°ò¥»±¡ªp¡v
­º¥ý°µ¤@­Óªí³æ¡Aªí³æ¤W¦³¥|­Ó«ö¶s¡G¡v²K¥[/«O¦s¡u¡B¡u­×§ï/­«°µ¡v¡B¡u§R°£¡v¡B¡u°h¥X¡v¦p¹Ï1©Ò¥Ü(°h¥X«ö¶s¬Ù¤F)


¦¹¥DÃD¬ÛÃö¹Ï¤ù¦p¤U¡G

¦p¹Ï1

¦bformªºLoad¨Æ¥ó¤¤¥´¶}§Aªº¥i§ó·sªº»·µ{µø¹Ï

* §PÂ_¥H«e¬O§_¥´¶}¹L
if not used(¡y¾Ç¥Í°ò¥»±¡ªp¡z)
use view_¾Ç¥Í°ò¥»±¡ªp alias ¾Ç¥Í°ò¥»±¡ªp in 0
endif

select ¾Ç¥Í°ò¥»±¡ªp

* ³]¸m¦¨ªí½w½Ä
CURSORSETPROP("Buffering",5)


²K¥[/«O¦s¤@­Ó°O¿ý
"²K¥[«ö¶s"ªºClick¨Æ¥ó
IF THISFORM.mode=0 ¦pªG·í«e¬O¬d¸ß°O¿ýªºª¬ºA

* thisform.mode ¬O¤@­Ó¦Û©w¸qÄÝ©Ê,¥Î¨Ó§PÂ_·í«eªºª¬ºA¬O0¡Ð¬d¸ß¡B1¡Ð²K¥[¡B2¡Ð­×§ï°O¿ýªºª¬ºA¥Î

THISFORM.mode=1 && ªí¥Ü¶i¤J²K¥[°O¿ýªºª¬ºA
THISFORM.Recno = RECNO() && «O¦s·í«e°O¿ý¸¹¨ì¦Û©w¸qÄÝ©Êthisform.recno

APPEND BLANK

* §ó§ï«ö¶sªº¹Ï¤ù¡A¡u²K¥[«ö¶s¡vªº¹Ï¤ù¥Ñ²K¥[Åܦ¨¡u«O¦s¡v¡A­×§ï«ö¶sªº¹Ï¤ùÅܦ¨¡u­«°µ¡v¡A¦p¹Ï2©Ò¥Ü

¦¹¥DÃD¬ÛÃö¹Ï¤ù¦p¤U¡G

¹Ï2
THISFORM.cmdNew.PICTURE=gcPicsPath+"wzsave.bmp"
THISFORM.cmdEdit.PICTURE=gcPicsPath+"wzundo.bmp"

ELSE && «O¦s°O¿ý

SELECT ¾Ç¥Í°ò¥»±¡ªp
TABLEUPDATE(1,.T.) && «O¦s
THISFORM.mode=0 && §ï¦^¬d¸ßª¬ºA
* §ó§ï«ö¶s¹Ï¤ù
THISFORM.cmdNew.PICTURE=gcPicsPath + 'wznew.bmp'
THISFORM.cmdEdit.PICTURE=gcPicsPath + 'wzedit.bmp'

ENDIF
* ¨ê·sªí³æ
THISFORM.REFRESH


»¡©ú¡G
gcPicsPath ¬O«ö¶s¹Ï¤ù¦s©ñ¸ô®|

thisform.mode ¬O¤@­Ó¦Û©w¸qÄÝ©Ê,¥Î¨Ó§PÂ_·í«eªºª¬ºA¬O0¡Ð¬d¸ß¡B1¡Ð²K¥[¡B2¡Ð­×§ï°O¿ýªºª¬ºA¥Î




"­×§ï/­«°µ"«ö¶sªºClick¨Æ¥ó

SELECT ¾Ç¥Í°ò¥»±¡ªp

* ­×§ï°O¿ý
IF THISFORM.mode=0 && ¦pªG¬O¬d¸ßª¬ºA

* ¦pªGµL°O¿ý¡A¤£¯à­×§ï
IF RECCOUNT("¾Ç¥Í°ò¥»±¡ªp")=0
return
ENDIF
THISFORM.mode=2 && ªí¥Ü¶i¤J­×§ïª¬ºA

* §ó´«¬ÛÃöªº«ö¶s¹Ï¼Ð
THISFORM.cmdNew.PICTURE=gcPicsPath+"wzsave.bmp"
THISFORM.cmdEdit.PICTURE=gcPicsPath+"wzundo.bmp"


ELSE && «ì´_°O¿ý

SELECT ¾Ç¥Í°ò¥»±¡ªp

IF THISFORM.mode=2 && ­×§ïª¬ºA
IF MESSAGEBOX('½T©w­n©ñ±ó­×§ï¶Ü¡H',4+32+256,'©ñ±ó½T»{')=6
TABLEREVERT(.T.)
ENDIF
ELSE && ¦pªG¬O²K¥[°O¿ý®É©ñ±ó²K¥[°O¿ý
TABLEREVERT(.T.) && ¨ú®ø©Ò°µªº­×§ï
ENDIF

* «ì´_¬ÛÃö«ö¶s¹Ï¼Ð
THISFORM.cmdNew.PICTURE=gcPicsPath+'wznew.bmp'
THISFORM.cmdEdit.PICTURE=gcPicsPath+'wzedit.bmp'


IF THISFORM.mode=1 &&¦pªG¬O²K¥[ª¬ºA
* «ì´_Àô¹Ò
IF THISFORM.RecNo>0 AND RECCOUNT()>=THISFORM.RecNo
GOTO THISFORM.Recno
ENDIF
ENDIF
THISFORM.mode=0 && ªí¥Ü¤w¦^¨ì¬d¸ßª¬ºA
ENDIF
THISFORM.REFRESH



³o¸Ì»¡©ú¬°¤°»ò­n¥Îªí³æ¦Û©w¸qÄÝ©Êthisform.mode©O¡H

¦pªG§A¦bªí³æªº¨C­Ó¼Æ¾Ú½s¿è±±¥ó¦pTextBOX,EditBoxµ¥ªºRefresh()¤¤¿é¤J¤U¦C¥N½X¡G
IF thisform.mode = 0
this.ReadOnly = .T.
this.DisabledBackColor = gnBackColor
ELSE
this.ReadOnly = .F.
this.BackColor =16777215
ENDIF

¨º»ò¡A³o¨Ç±±¥ó¦b¬d¸ßª¬ºA´N¬O¥uŪªº¡A¤£¯à­×§ï¼Æ¾Ú¡A§Ythis.ReadOnly = .T.¦Ó¦b²K¥[©Î­×§ïª¬ºA®É¡A¥¦­Ì·|¦Û°ÊÅܬ°¥i½s¿è¼Æ¾Úª¬ºA¡A§Ythis.ReadOnly = .F.

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Ruey



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

²Ä 7 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤G¤ë 24, 2004 5:32 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

VFP+SQL ½sµ{(6)-¥Dµ{§Ç½sµ{
³o¬Oµ¹ªì¾ÇªÌ±ÀÂˤ@ºØ®æ¦¡¡A¤£¤@©w³Ì¦n¡A¦ý¥¦«o¹ê¯à¥¿±`¹B¦æ


* µ{§Ç¦W¡Gmain.prg
* §@¥Î¡G¾ã­Ó¨t²Îªº¤J¤f
* ¸ô®|¡G\§Aªºµ{§Ç¥Ø¿ý\prgs
¥N½X:


Set Talk off
Set Escap off

* ¶}©l¡Aµ{§Ç¿ù»~³B²z
 ON ERROR DO Err.PRG  With Error(),  Message(),  Message(1),  Program(),  Lineno(1)
* ²Ä¤@¨B¡A²M²zÀô¹Ò*****************************

Close All     && Ãö³¬©Ò¦³¤u§@°Ï¤¤¥´¶}ªº¼Æ¾Ú®w¡Bªí©M¯Á¤Þ¡A¨Ã¿ï¾Ü¤u§@°Ï 1¡C

Clear Menus  &&  ±q¤º¦s¤¤ÄÀ©ñ©Ò¦³ªº¤º¦sÅܶq©M¼Æ²Õ¥H¤Î©Ò¦³¥Î¤á¦Û©w¸qµæ³æÄæ¡B
                   && µæ³æ©Mµ¡¤fªº©w¸q¡C ÁÙ±q¤º¦s¤¤§R°£©Ò¦³¥Î DECLARE-ALL µù¥U
                   && ªº¥~³¡ Windows 32 ¦ì°ÊºAÃì±µ®w (.DLLS)¡C
* Ãö³¬¨t²Îµæ³æ

* ¦pªG¦bµo¥X SET SYSMENU SAVE ©R¥O¤§«á­×§ï¤Fµæ³æ¨t²Î¡A¥i¥H³q¹Lµo¥X
* SET  SYSMENU TO DEFAULT ©R¥O¨Ó«ì´_«e­±ªº³]¸m¡C
Set Sysmenu Save

* ¦bµ{§Ç°õ¦æ´Á¶¡¼o¤î Visual FoxPro ¥Dµæ³æÄæ¡C
Set Sysmenu Off

Set Sysmenu To
 

* ²Ä¤G¨B¡A³]¸mÀô¹Ò

* °h¥XRead®É«O¦s¼Æ¾Ú½w½Ä°Ï¤º®e
Set Autosave On 

* ¨Ï¥Î INSERT¡BAPPEND ©M BROWSE ©R¥O³Ð«Ø·s°O¿ý®É¡A¤£±N·í«e°O¿ý¼Æ¾Ú½Æ»s¨ì·s°O¿ý¤¤¡C
Set Carry Off

* «ü©w¬O§_¥i¥H¥Î¦b¤å¥»®Ø¤¤Áä¤J³Ì«á¤@­Ó¦r²Åªº¤èªk°h¥X¤å¥»®Ø¡C
Set Confirm Off

*  ¤é´Á¤£Åã¥Ü¥@¬ö³¡¤À
Set Century Off 

* ³]¸m¤é´Á®æ¦¡¬°"YY.MM.DD" ®æ¦¡
Set Date Ansi

* ¤£Åã¥Ü¤w¸g§R°£ªº°O¿ý
Set Delete On

* ¨M©w¯à§_¨Ï¥Î LOCK ( )©Î RLOCK ( ) Âê©w¦h­Ó°O¿ý¡C
Set Multilocks On && ºôµ¸½sµ{±M¥Î

* ½T©w ATLTER TABLE¡BCREATE TABLE ©M INSERT - SQL ©R¥O¦p¦ó³B²z null ­È¡C
Set Null On         
                 
* «ü©w·í¦r¬q¬OªÅ­È(NUll)Åã¥Üªº¤å¥»¬°
Set NullDisplay To ''

* §ï¼g¤w¦³¤å¥ó¤§«e¤£Åã¥Ü¹ï¸Ü®Ø
Set Safety Off

* ²¾¥h¹Ï§Îª¬ºAÄæ¡C
Set Status Bar Off


* ²Ä¤T¨B¡A³]¸m§Aªºµ{§Ç¸ô®|

* ³]¸mµ{§Ç¥D¥Ø¿ý
Public gcMainPath
gcMainPath = Sys(5)+Sys(2003)+"\"
Set Default To &gcMainPath

* ¼Æ¾Ú¥Ø¿ý(¥»¦a¼Æ¾Ú®w©Mªí)
Public gcDataPath
gcDataPath =gcMainPath+"Data\"

* µ{§Ç¥Ø¿ý
Public gcPrgsPath
gcPrgsPath =gcMainPath+"Prgs\"


* ¹Ï¤ù¥Ø¿ý
Public gcPicsPath
gcPicsPath=gcMainPath + "pics\"

* ªí³æ¥Ø¿ý
Public gcFormsPath
gcFormsPath = gcMainPath+"forms\"

* µæ³æ¥Ø¿ý
Public gcMenusPath
gcMenusPath = gcMainPath+"menus\"

* ¼ÐÅҥؿý
Public gcLabelsPath
gcLabelsPath = gcMainPath+"labels\

* ³øªí¥Ø¿ý
Public gcReportsPath
gcReportsPath =gcMainPath+"Reports\"


* ²Ä¥|¨B ªì©l¤ÆÁä½L
Capslock(.F.)

IMEStatus(0)

Insmode(.T.)

Numlock(.T.)


* ²Ä¤­¨B ¥´¶}¦Û©w¸qÃþ®w¡B¹Lµ{¤å¥ó
Set Classlib To gcMainPath+"vcx\MyVCX.vcx"

Set Procedure To gcPrgsPath +"Myproc.prg"

* ³]¸m¤£Åã¥ÜODBCµn¿ý¹ï¸Ü®Ø
SQLSETPROP(0,"DispLogin",3)  && ºôµ¸±M¥Î

* ²Ä¤»¨B Án©ú¨ä¥L¥þ§½Åܶq
* ¼Æ¾Ú·½¦WºÙ
Public gcDSN
gcDSN  = ¡y¡z

* ¥Î¤áµn¿ý¦W
Public gcUID
gcUID = ¡y¡z

* ¥Î¤áµn¿ý¤f¥O
Public gcPWD
gcPWD=¡y¡z

* ·í«eµn¿ý¥Î¤á©m¦W(¤¤¤å)
PUBLIC gcName
gcName=''

* «e«áºÝ¼Æ¾Ú®w¦W
Public gcSQLDatabase,gcFoxDatabase
gcSQLDatabase = ¡y¸ê®ÆºÞ²z¡z && «áºÝ SQL ¼Æ¾Ú®w
gcFoxDatabase = ¡y¸ê®ÆºÞ²z¡z && «eºÝ VFP¼Æ¾Ú®w

* ³s±µ¥y¬`
Public gnHandleMaster &&»P«áºÝ master ¨t²Î¼Æ¾Ú®wªº³s±µ¥y¬`
gnHandleMaster = 0   

Public gnHandleUser && »P«áºÝ¥Î¤á¼Æ¾Ú®w¡ugcSQLDatabase ¡vªº³s±µ¥y¬`
gnHandleUser = 0


* ²Ä¤C¨B¡AÀˬdµn¿ý±b¸¹

* ½Õ¥Îµn¿ýªí³æ"login.scx"
Do Form gcFormsPath+"login.scx" To gnHandleUser 

µ²ªG¦p¤U¹Ï©Ò¥Ü


* ¦pªGµn¿ý¦¨¥\ gnHandleUser > 0 ªí¥Üµn¿ý¦¨¥\¡A¤Ï¤§¡A¥¢±Ñ

If  gnHandleUser <= 0 && µn¿ý¥¢±Ñ
    Quit && °h¥X
Endif

* «ü©w·í¸Õ¹Ï°h¥XVFP®É­n°õ¦æªºµ{§Ç
ON SHUTDOWN DO gcPrgsPath +"FileExit.prg" && ¥N½X¦p¤U¼Ó©Ò¥Ü¡C


* ²Ä¤K¨B¡A½Õ¥Îµ{§Ç¥Dµæ³æ
Do gcMenusPath+"mainmenu.mpr"

* ²Ä¤E¨B¡AÅã¥Üµ{§Ç«Ê­±¡A®à­±
Do Form gcFormsPath+"title.scx" && «Ê­±

Do Form gcFormsPath+"Desktop.scx" && ®à­±¡A¤]´N¬O§Aªºµ{§Ç­I´º(¹Ï¤ù²¤)



* ²Ä¤Q¨B ¥´¶}©Î³Ð«Ø¥»¦a¼Æ¾Ú®w
cFoxDb=gcDataPath+ gcFoxDatabase + ".dbc"

If Not Files(cFoxDb) && ¦pªG«ü©wªº¼Æ¾Ú®w¤£¦s¦b

    Create Database &cFoxDb && ³Ð«Ø¥¦

Endif


* ±Ò°Ê¨Æ¥ó³B²z
Read Events

* ±NÄÀ©ñ·í«eªº ON SHUTDOWN ©R¥O
ON SHUTDOWN

----------- ¥þ------------------------------------
¸Óµ{§ÇÁÙ±N¤£Â_§¹µ½¡C


* µ{§Ç¡GFileExit
* §@¥Î¡G¸Ñ¨Mµ{§Ç¹B¦æ«á¡AÂIÀ»¥Dµ¡¤fÃö³¬«ö¶s[X]¤£¯à°h¥XVFPªº°ÝÃD

¥N½X:
If Messagebox('±z¯u­n°h¥X¥»¨t²Î¶Ü¡H',4+32+256,'°h¥X½T»{')<>6 AND gnHandleUser > 0
 Return
Endif

*Do While Txnlevel()>0
* Rollback
*Enddo
Clear Events
ON SHUTDOWN

* «ì´_Àô¹Ò
Set Sysmenu To Default


With _Screen
 .WindowState=2 &&³Ì¤j¤Æ
 .BackColor=Rgb(255,255,255)
 .Caption="Microsoft Visual FoxPro"
 .Icon =''
Endwith


* Ãö³¬¼Æ¾Ú®w¤Îªí
If Used("cfg")
 Use In cfg
Endif

If Used("dsn")
 Use In dsn
Endif

If Used("uid")
 Use In uid
Endif


Close Database All    &&Ãö³¬©Ò¦³¼Æ¾Ú®w
Close All      &&Ãö³¬¦UºØÃþ«¬ªº¤å¥ó¡A¦ý¤£Ãö³¬©R¥Oµ¡¤f¡B½Õ¸Õµ¡¤f¡BÀ°§U¡B¸òÂܵ¡¤f¡C
Clear Menus     &&ÄÀ©ñ¤º¦s¤¤©Ò¦³ªºµæ³æ©w¸q¡C
Clear Popups     &&ÄÀ©ñ¤º¦s¤¤©Ò¦³¥ÎDEFINE POPUP©R¥O³Ð«Øªºµæ³æ©w¸q¡C
Clear Windows    &&ÄÀ©ñ¤º¦s¤¤©Ò¦³¥Î¤á¦Û©w¸qµ¡¤fªº©w¸q¡A¨Ã±qVFP¥Dµ¡¤f©Î¬¡°Êªº¥Î¤á¦Û©w¸qµ¡¤f¤¤²M°£µ¡¤f¡C
Clear      &&²M«Ì
Set Safe On
_Screen.Picture=""


=SQLDISCONNECT(0)

Quit




* µ{§Ç¡G¿ù»~³B²z¡A¥Ñ±ö¤l´£¨Ñ¡A¥¼ÅçÃÒ¡C
¥N½X:
*****************
err.prg
*****************
PARAMETER NERROR , CMESSAGE , CMESSAGE1 , CPROGRAM , NLINENO
 SET TEXTMERGE DELIMITERS  to
 SET TEXTMERGE ON
 SET TEXTMERGE TO ErrorLog.txt ADDITIVE NOSHOW
 \---------------------------------------------------------------------
 \<<DATE( )>> <<TIME( )>> ¿ù»~°O¿ý
 \µ{§Ç¼ÐÃD: <<_Screen.Caption>>
 \µ{§Ç¶}µoª©¥»: <<VERSION(1)>>
 DO CASE
 CASE _SCREEN.WINDOWSTATE = 0
    \µ¡¤fª¬ºA: ´¶³q
 CASE _SCREEN.WINDOWSTATE = 1
    \µ¡¤fª¬ºA: ³Ì¤p¤Æ
 CASE _SCREEN.WINDOWSTATE = 2
    \µ¡¤fª¬ºA: ³Ì¤j¤Æ
 ENDCASE
 \µ¡¤f¥iµø: <<IIF(_Screen.Visible= .T.  , "¥i¨£" , "¤£¥i¨£")>>
 \µ¡¤f¶°¦X¼Æ: <<_Screen.FormCount>>
 \ºôµ¸¾÷¾¹«H®§: <<SYS(0)>>
  \°õ¦æµ{§Ç: <<JUSTFNAME(SYS(16,1))>>
 \°õ¦æµ{§Ç©Ò¦b¥Ø¿ý: <<JUSTPATH(SYS(16,1))>>
 \°õ¦æµ{§Ç©Ò¦b¥Ø¿ýºÏ½LªÅ¶¡: <<DISKSPACE(JUSTDRIVE(SYS(16,1)))>>
  \Àq»{¥Ø¿ý: <<SYS(5)>><<SYS(2003)>>
 \Àq»{¥Ø¿ýºÏ½LªÅ¶¡: <<DISKSPACE(SYS(5))>>
 \¤å¥ó·j´M¸ô®|: <<SET("PATH")>>
  \¨t²ÎÁ{®É¥Ø¿ý: <<SYS(2023)>>
 \µêÀÀ¤º¦s¦À¤j¤p: <<SYS(1001)>>
  \¥¿¦b¨Ï¥Îªº¤u§@°Ï: <<Alias()>>
 \¬¡°Ê¦r¬q: <<VARREAD()>>
  IF TYPE('_Screen.ActiveForm.Name') = 'C'
    \¬¡°Êªí³æ: <<_Screen.ActiveForm.Name>>
    \ªí³æ¼ÐÃD: <<_Screen.ActiveForm.Caption>>
    \ªí³æ°òÃþ: <<_Screen.ActiveForm.BaseClass>>
    \ªí³æ¬£¥Í: <<_Screen.ActiveForm.Class>>
    \ªí³æ¬£¥Í®w: <<_Screen.ActiveForm.ClassLibrary>>
    \ªí³æ¦ì¸m: <<SYS(1271, _Screen.ActiveForm)>>
 ELSE
    \µL¬¡°Êªí³æ   
 ENDIF
 IF TYPE('_Screen.ActiveForm.ActiveControl') = 'O'
    \¬¡°Ê±±¨î: <<_Screen.ActiveForm.ActiveControl.Name>>
    IF TYPE('_Screen.ActiveForm.ActiveControl.Caption') = 'C'
       \±±¨î¼ÐÃD: <<_Screen.ActiveForm.ActiveControl.Caption>>
    ENDIF
    \±±¥ó°òÃþ: <<_Screen.ActiveForm.ActiveControl.BaseClass>>
    \±±¥ó¬£¥Í: <<_Screen.ActiveForm.ActiveControl.Class>>
    \±±¥ó¬£¥Í®w: <<_Screen.ActiveForm.ActiveControl.ClassLibrary>>
    \±±¥ó¦ì¸m: <<SYS(1271, _Screen.ActiveForm.ActiveControl)>>
 ELSE
    \µL¬¡°Ê±±¨î   
 ENDIF
  \¿ù»~¥N¸¹: <<nError>>
 \¿ù»~«H®§: <<cMessage>>
 \²£¥Í¿ù»~ªº¦ì¸m: <<cProgram>>
 \©Ò¦b¦æ¸¹: <<nLineno>>
 \²£¥Í¿ù»~ªº¥N½X: <<cMessage1>>
  \¿é¥X¤º¦s¨Ï¥Î±¡ªp -> MemoryLog.txt
 \¿é¥X¤u§@Àô¹Ò¨ì -> StatusLog.txt
 SET SAFETY OFF
 DISPLAY MEMORY TO File MemoryLog.txt NOCONSOLE
 DISPLAY STATUS TO File StatusLog.txt NOCONSOLE
  \---------------------------------------------------------------------
 SET TEXTMERGE TO
 Nvalue =  ;
      MESSAGEBOX('µ{§Çµo¥Í¿ù»~¡I¸Ô²Ó«H®§¦p¤U¡G' + CHR(13) + CHR(13) + '¿ù»~¥N¸¹: ' +  ;
LTRIM(STR(NERROR)) +  ;
CHR(13) +  ;
'¿ù»~¦æ¸¹: ' +  ;
LTRIM(STR(NLINENO)) +  ;
CHR(13) +  ;
'¿ù»~«H®§: ' +  ;
CMESSAGE +  ;
CHR(13) +  ;
'¿ù»~¥N½X: ' +  ;
CMESSAGE1 +  ;
CHR(13) +  ;
'¿ù»~¦ì¸m: ' +  ;
CPROGRAM +  ;
CHR(13) +  ;
CHR(13) +  ;
'¸Ó¿ù»~¤w¸g°O¿ý¨ì¤å¥ó:Errorlog.txt,Memorylog.txt,Statuslog.txt¡C',50,'«H®§')
 DO CASE
 CASE Nvalue = 3
    QUIT
 CASE Nvalue = 4
    RETRY 
 CASE Nvalue = 5
    RETURN
 ENDCASE

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
µ£¤ß¥¼ª{



µù¥U®É¶¡: 2003-10-04
¤å³¹: 3


²Ä 8 ¼Ó

µoªíµoªí©ó: ¬P´Á¤­ ¤Q¤G¤ë 10, 2004 11:56 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¤µ¤Ñ无·N¤¤¥Îgoogle·j¯Á¡A发现¦¹¤å¦b该处转贴¡C
_________________
http://www.vfp80.com
http://www.vfp80.net
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
bin1x



µù¥U®É¶¡: 2004-08-27
¤å³¹: 462


²Ä 9 ¼Ó

µoªíµoªí©ó: ¬P´Á¤» ¤Q¤G¤ë 11, 2004 8:26 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

«z¶ë,¦nÅå¤Hªº¨ÑÄm
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸ MSN Messenger
rv2231



µù¥U®É¶¡: 2003-12-15
¤å³¹: 1


²Ä 10 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤Q¤G¤ë 14, 2004 3:05 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

·½½X¯Ê myvcx.vcx
¥i§_»¡©ú¦¹Ãþ§Oµ{¦¡¤§¬ÛÃö¤º®e
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
ERIC



µù¥U®É¶¡: 2006-11-27
¤å³¹: 45


²Ä 11 ¼Ó

µoªíµoªí©ó: ¬P´Á¤­ ¤T¤ë 09, 2007 9:36 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

­n¼g¦¨

¥N½X:
* ½Õ¥Îµn¿ýªí³æ"login.scx"
Do Form gcFormsPath+"login.scx" To gnHandleUser 

µ²ªG¦p¤U¹Ï©Ò¥Ü


* ¦pªGµn¿ý¦¨¥\ gnHandleUser > 0 ªí¥Üµn¿ý¦¨¥\¡A¤Ï¤§¡A¥¢±Ñ

If  gnHandleUser <= 0 && µn¿ý¥¢±Ñ
    Quit && °h¥X
Endif


¤£¯à¼g¦¨
¥N½X:
* ½Õ¥Îµn¿ýªí³æ"login.scx"

Do Form gcFormsPath+"login.scx" To gnHandleUser 

µ²ªG¦p¤U¹Ï©Ò¥Ü


* ¦pªGµn¿ý¦¨¥\ gnHandleUser > 0 ªí¥Üµn¿ý¦¨¥\¡A¤Ï¤§¡A¥¢±Ñ

If  gnHandleUser > 0 && µn¿ý¥¢±Ñ
   do Login.scx

Endif


§_«h µ{¦¡ ·|¸õ¤£¥X

_________________
¾ÇµL¤î¹Ò¡I¤¬¬Û«jÀy§a¡ã

¦³»Ý­n¾Ç²ßVFPªº·s¤â.¥i¥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§@