这篇文章是写给编写小型数据库程序的朋友用的。
使用VC编写数据库程序,我们可以用向导连接到数据库中,但是必须要在机子上的ODBC数据源中手动设置好自己的数据源,而有时我们希望不是手动添加,而是由程序动态完成。这篇文章就是讲述怎么动态完成注册数据源。
首先介绍一下注册表的各部分的名称。在注册表中有五个根,别的叫做键,键下可以有键或者值,存放数据的叫做值,可以理解为键就是文件夹,值就是文件,数据就是文件中的内容。
然后说明怎么使用程序注册数据源,这里主要是使用API函数QLConfigDataSource(),使用此函数应包含文件odbcinst.h。此函数有4个参数,第一个为对话框句柄,一般为NULL,第二个为预定义的选项,用来表示要选择的操作(比如ODBC_ADD_DSN表示添加一个用户数据源,DBC_REMOVE_DSN表示删除一个数据源),第三个参数为char * 类型,表示要选择的已注册的数据源,字符串的准确写法可以从控制面板中打开ODBC管理器,在其已有的数据源列表中选择,应写完整(扩展名也要带上),第四个参数为要注册的数据源的参数,为一组值的形式,每个值的形式为(值=数据)的格式,每个值以/0结束并用一对双引号引起来,最后一个值用两个/0结束,例:
SQLConfigDataSource(NULL,ODBC_ADD_DSN,
"Microsoft Access Driver (*.mdb)",
"DSN=TeacherBook/0"
"DBQ=D://Study//毕业设计//db1.mdb/0"
"Description=教材管理系统/0"
"Driver=C://WINNT//System32//odbcjt32.dll/0"
"DriverId=25/0"
"SafeTransactions=0/0"
"UID=/0/0"
)
一个数据源有哪些值需要注册的查看方法如下:在注册表中打开键: HKEY_CURRENT_USER/Software/odbc/odbc.ini/ODBC Data sources, 在该键的值中查找数据为所使用的数据源名称的值,然后在 ODBC.INI 键的子键中找到键名为刚才的值的键,则此键的所有值和数据即为要注册的项(应加上项 DSN= 数据源名)。