zhangxinlin 发表于 2007-3-11 00:24

可以用代码进行配置ODBC,怎么配置啊

可以用代码进行配置ODBC,怎么配置啊快告诉我啊,高手

notbig 发表于 2007-3-11 21:36

ODBC的配置实际上就是注册表中设置,你创建一个ODBC,然后在注册中查找,记下键值。然后就可以自己写程序去生成这些键值

竹海思语 发表于 2007-7-28 12:53

<P>Ulong ul_num;<br>Int li_sysdir,li_dir1,li_dir2,li_dir3,li_dir4,li_dir5,li_app;<br>String ls_driver,ls_start,ls_location,ls_apppath,ls_dbpath,ls_odbcstr;<br>//获取操作系统的system目录,并保存到ls_location变量<br>li_sysdir = RegistryGet(″KYEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup″,″SysDir″,RegString!ls_location);<br>IF li_sysdir = -1 THEN<br>Messagebox(′错误′,′应用程序无法获取Windows的系统目录,系统将终止运行d,Stopsign!);<br>RETURN;<br>END IF<br>//判断Sybase SQL Anywhere6.0的驱动程序是否正确安装<br>ls_driver = ls_location+′\WOD60T.DLL′<br>ls_start = ls_location+′\dbeng60.EXE′<br>IF NOT (FileExists(ls_driver) AND FileExists(ls_start)) THEN<br>Messagebox(′错误′,′系统中没有安装SQL Anywhere 6.0的驱动程序,系统将终止运行d,StopSign!);<br>RETURN;<br>END IF<br>//设置ODBC\ODBCINST.INI\ODBC DRIVERS<br>li_sysdir=RegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBCDRIVER′,′Sybase SQL Anywhere 6.0′,RegString!,′Installed′);<br>IF li_sysdir = -1 THEN<br>Messagebox(′错误′,′应用程序无法设置ODBC DRIVERS,系统将终止运行d,StopSign!);<br>RETURN;<br>END IF<br>//设置ODBC\ODBCINST.INI<br>li_dir1=RegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Sybase SQL Anywhere 6.0′,′CPTimeout′,RegString!,′not pooled′)<br>li_dir2=RegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Sybase SQL Anywhere 6.0′,′Driver′,RegString!,ls_driver)<br>li_dir3=RegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Sybase SQL Anywhere 6.0′,′Setup′,RegString!,ls_driver)<br>IF li_dir1=-1 OR li_dir2=-1 OR li_dir3=-1 THEN<br>Messagebox(′错误′,′应用程序无法设置ODBCINST.INI,系统将终止运行d,StopSign!);<br>RETURN;<br>END IF<br>//设置ODBC DATA SOURCE(MyDataSource为数据源名)<br>li_sysdir=RegistrySet(′HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\ODBC Data Sources′,′MyDataSource′,RegString!,′Sybase SQL Anywhere 6.0′);<br>IF li_sysdir=-1 THEN<br>Messagebox(′错误′,′应用程序无法设置ODBC DATA SOURCE,系统将终止运行d,StopSign!);<br>RETURN;<br>END IF<br>//获取应用程序的安装路径(MyApp为应用程序安装到用户计算机上后在注册表中注册的应用程序名,MyDatabase.db为应用程序的数据库名,与应用程序在同一目录下,MyDataSource为数据源名)<br>li_app=RegistryGet(″KYEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\MyApp″,″Path″,RegString!ls_apppath)<br>IF li_app=-1 THEN<br>Messagebox(′错误′,′应用程序无法获取程序安装路径名,系统将终止运行d,StopSign!);<br>RETURN<br>ELSE<br>ls_dbpath=ls_apppath+′MyDatabase.db′;<br>END IF<br>//设置ODBC.INI<br>li_dir1=RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′,′driver′,RegString!,ls_driver);<br>li_dir2=RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′,′start′,RegString!,ls_start);<br>li_dir3=RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′,′autostop′,RegString!,′yes′);<br>li_dir4=RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′,′DataBaseFile′,RegString!,ls_db_path);<br>li_dir5=RegistrySet(′HKEY_current_user\software\odbc\odbc.ini\MyDataSource′,′DataBaseName′,RegString!,′MyDatabase′);<br>IF li_dir1=-1 OR li_dir2=-1 OR li_dir3=-1 OR li_dir4=-1 OR li_dir5=-1 THEN<br>Messagebox(′错误′,′应用程序无法设置ODBC.INI,系统将终止运行!′,StopSign!);<br>RETURN<br>END IF<br>ls_odbcstr=′dsn=MyDataSource;databasename=MyDatabase;databasefile=′+ls_dbpath;<br>sqlca.dbms=′odbc′;<br>sqlca.databse=′MyDatabase′;<br>sqlca.dbparm=″connectstring=′ ″+ls_odbcstr+″;uid=dba;pwd=sql′ ″;<br>connect using sqlca;<br>open(w_frame);</P>
[align=right][color=#000066][此贴子已经被作者于2007-7-28 13:00:12编辑过][/color][/align]

路過 发表于 2007-7-28 19:43

<P>论坛中有相关内容,可以找一下的</P>

页: [1]

编程论坛