发信人: zeng_zhe() 
整理人: hunter__fox(2002-03-16 23:36:01), 站内信件
 | 
 
 
经研究,请参考:
 
 *!***************************
 PROC ODBCREG
 PARA P_ODBCNAME,P_ODBCTYPE
 
 IF EMPTY(P_ODBCNAME)
    P_ODBCNAME="MYSYS2"
    P_ODBCTYPE="SQL Server"
 ENDIF   
 
 DECLARE INTEGER RegOpenKey IN Win32API INTEGER nHKey,STRING cSubKey,IN TEGER @nHandle
 DECLARE INTEGER RegCreateKey IN Win32API INTEGER nHKey,STRING cSubKey, INTEGER @nHandle
 DECLARE INTEGER RegSetValueEx IN Win32API INTEGER nHKey, STRING lpszEn try, INTEGER dwReserved,INTEGER fdwType,STRING lpbData,INTEGER cbData
  
 #DEFINE HKEY_CLASSES_ROOT -2147483648
 #DEFINE HKEY_CURRENT_USER -2147483647
 #DEFINE HKEY_LOCAL_MACHINE -2147483646
 #DEFINE HKEY_USERS -2147483645
 #DEFINE ERROR_SUCCESS 0
 #DEFINE ERROR_SUCCESS 0
 
 && 在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources中新建 字符串值
 && 名称:Mysys1  数据:SQL Server
 =WRITREGS(HKEY_LOCAL_MACHINE,"SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources ",P_ODBCNAME,P_ODBCTYPE)
 
 && 在HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI中新建一个子键Mysys1
 =crearegk(HKEY_LOCAL_MACHINE,"SOFTWARE\ODBC\ODBC.INI\"+P_ODBCNAME)
 
 && 再在Mysys1下创建一些键值。
 =WRITREGS(HKEY_LOCAL_MACHINE,"SOFTWARE\ODBC\ODBC.INI\"+P_ODBCNAME,"Dat abase","pubs")
 =WRITREGS(HKEY_LOCAL_MACHINE,"SOFTWARE\ODBC\ODBC.INI\"+P_ODBCNAME,"Des cription","pubs-memo")
 =WRITREGS(HKEY_LOCAL_MACHINE,"SOFTWARE\ODBC\ODBC.INI\"+P_ODBCNAME,"Dri ver"," C:\WINNT\System32\sqlsrv32.dll")
 =WRITREGS(HKEY_LOCAL_MACHINE,"SOFTWARE\ODBC\ODBC.INI\"+P_ODBCNAME,"Las tUser","ZZ")
 =WRITREGS(HKEY_LOCAL_MACHINE,"SOFTWARE\ODBC\ODBC.INI\"+P_ODBCNAME,"Ser ver","HP-SERVER-O")
 =WRITREGS(HKEY_LOCAL_MACHINE,"SOFTWARE\ODBC\ODBC.INI\"+P_ODBCNAME,"Tru sted_Connection","Yes")
 
 *!********************************
 FUNCTION CREAREGK
 LPARAMETERS HKey,SUBKEY
 && 新建项
 
 LOCAL nRsult,nHandle
 nHandle=0
 nResult=RegCreateKey(HKey,SubKey,@nHandle)
 IF nResult # ERROR_SUCCESS
    RETURN .NULL.
 ENDIF
 RETURN .T.
 
 *!********************************
 FUNCTION WRITREGS
 LPARAMETERS HKey,SubKey,Entry,Value
 && 修改项值
 LOCAL nHandle,nResult,nSize,cDataBuffer,nType
 nHandle=0
 nResult=RegOpenKey(HKey,SubKey,@nHandle)
 IF nResult # ERROR_SUCCESS
    RETURN .NULL.
 ENDIF
 
 nSize=len(value)
 nResult=RegSetValueEx(nHandle,Entry,0,1,Value,nSize)
 =RegCloseKey(nHandle)
 IF nResult # ERROR_SUCCESS
    RETURN .NULL.
 ENDIF
 RETURN .T.
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.190.124]
  | 
 
 
 |