创建方法4完整版
if(SQLConfigDataSource(m_pMainWnd->m_hWnd,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)",
"DSN=Personnel\0"
"DBQ=C:\\My Documents\\dq.mdb\0"
"DefaultDir=C:\\My Documents\0"
"Driver={Microsoft Access Driver (*.mdb)}\0"
"DriverId=790\0"
"Deleted=1\0"
"Description=ODBC数据源\0"
"FileType=Access\0"
"JetIniPath=odbcddp.ini\0"
"MaxScanRows=20\0"
"MaxBufferSize=512"
"ImplicitCommitSync=No\0"
"UserCommitSync=No\0"
"Exclusive=1\0"//独占
"ReadOnly=1\0"//只读
"UID=Smith\0"
"SafeTransactions=0\0"
"PWD=Sesame\0"
"DATABASE=dq\0"
"ExtendedAnsiSQL=1\0"
"Statistics=0\0"
"\0"))
AfxMessageBox("创建成功!");
else
AfxMessageBox("取消创建或创建失败!");
SQLConfigDataSource 函数被用于动态地添加、修改或删除数据源,该函数使用下列关键字。
关键字 描述
CHARACTERSET:
对于 Text 驱动程序,OEM 或 ANSI。
COLLATINGSEQUENCE:
字段排序的顺序。当使用 dBASE 驱动程序时,这个序列可以是: ASCII (缺省) 或 International.当使用 Paradox 驱动程序时,这个序列可以是: ASCII (缺省),International,Swedish-Finnish,或Norwegian-Dan ish.这将设置与“设置”对话框的“排序顺序”控件相同的选项。
COLNAMEHEADER:
对于 Text 驱动程序,指出数据的第一个记录是否将指定列名。其值为 TRUE 或 FALSE。
COMPACT_DB:
对于 Microsoft Access data compaction驱动程序,在数据库文件上执行数据库压缩。有如下的格式:COMPACT_DB=<路径名><可选排序顺序><可选 ENCRYPT 关键字>.
CREATE_DB:
对于 Microsoft Access 驱动程序,创建数据库文件。有如下的格式:CREATE_DB=<路径名>><可选排序顺序><可选 ENCRYPT 关键字,在这里路径名是一个 Microsoft Access 数据库的完整路径。如果路径名指到现有数据库,则将返回错误。排序顺序如“添加数据库”对话框中所设置,且在按下“Microsoft Access 安装”对话框的“创建”按钮时显示此对话框会。如果没有指定排序顺序,则使用 General。当使用 CREATE_DB 关键字时,如果要创建的 Microsoft Access 数据库的路径名称包含一个或一个以上的空格,则必须将整个路径名称用双引号括起来,如下列示例显示:"C:\PROGRAM FILES\COMMON FILESMyAccess.mdb""C:\PROGRAM FILES\Access2.mdb"CREATE_DB=C:\TEMP\test.mdb(不需要双引号)
CREATE_SYSDB:
对于 Microsoft Access 驱动程序,创建系统数据库文件。有如下的格式:CREATE_SYSDB=<路径名>><可选排序顺序>,在这里路径名是一个 Microsoft Access 数据库的完整路径。如果路径名指到现有数据库,则将返回错误。排序顺序如“添加数据库”对话框中所设置,且在按下“Microsoft Access 安装”对话框的“创建”按钮时显示此对话框会。如果没有指定排序顺序,则使用 General。
CREATE_V2DB:
对于 Microsoft Access 驱动程序,创建与 Microsoft Access 2.0 兼容的数据库文件。有如下的格式:CREATE_V2DB=<路径名>><可选排序顺序>,在这里路径名是一个 Microsoft Access 数据库的完整路径。如果路径名指到现有数据库,则将返回错误。排序顺序如“添加数据库”对话框中所设置,且在按下“Microsoft Access 安装”对话框的“创建”按钮时显示此对话框会。如果没有指定排序顺序,则使用 General。当使用 CREATE_V2DB 关键字时,如果要创建的 Microsoft Access 数据库的路径名称包含一个或一个以上的空格,则必须用双引号将整个路径名称括起来,如下列示例显示:"C:\PROGRAM FILES\COMMON FILESMyAccess.mdb""C:\PROGRAM FILES\Access2.mdb"CREATE_V2DB=C:\TEMP\test.mdb(不需要双引号)
DBQ 对于 Microsoft Access 或 Paradox 驱动程序,数据库文件的名称。对于 Microsoft Excel 驱动程序,当访问 Microsoft Excel 5.0、7.0 或 97 的文件时,工作簿文件的名称。这就设置了与“设置”对话框的“数据库”控件相同的选项。
DEFAULTDIR:
对于数据库文件( Microsoft Access 驱动程序) 或 目录 (dBASE,Microsoft Excel,Paradox,或 Text 驱动程序)的路径指定。这就设置了与“设置”对话框的“目录”控件,或对于 Microsoft Excel,“设置”对话框的“选择工作簿”控件相同的选项。
DELETED:
对于 dBASE 驱动程序,指定被标记为已删除的行是否可以被检索到或被放置。如果设置成 1,则不显示被删除的行;如果设置成 0,则把已删除的行当作未删除的行。默认值是 不选定。这就设置了与“设置”对话框的“显示删除列”控件相同的选项。
DESCRIPTION:
数据源中数据的描述。这就设置了与“设置”对话框的“描述”控件相同的选项。
DRIVER:
指向驱动程序 DLL 的路径说明。
DRIVERID:
对于驱动程序的整型标识符。
25 (Microsoft Access)
21 (dBASE III)
277 (dBASE IV)
533 (dBASE 5.0)
534 (Microsoft Excel 3.0)
278 (Microsoft Excel 4.0)
22 (Microsoft Excel 5.0/7.0)
790 (Microsoft Excel 97)
26 (Paradox 3.x)
282 (Paradox 4.x)
538 (Paradox 5.x)
27 (Text)
EXCLUSIVE:
决定数据库将以独占方式(一次只有一个访问)或分享方式(一次有多个用户访问)打开。可以是 TRUE(独占方式)或 FALSE(分享方式)。(这不会应用到 Microsoft Excel 或 Text 驱动程序)。这就设置了与“设置”对话框的“独占方式”控件相同的选项。
EXTENSIONS:
列出在数据源上“文本文件”的文件名的文件扩展名。这就设置了与“设置”对话框的“文件类型”控件相同的选项。
FIL:
文件类型
MS Access for Microsoft Access
dBase III,dBase IV,or dBase 5
Excel 3.0,4.0,5.0,7.0,or 97 for Microsoft Excel
Paradox 3.x,4.x,or 5.x)
Text.
FILETYPE:
对于 Text 驱动程序(文本)的文件类型。
FIRSTROWHASNAMES:
对于 Microsoft Excel 驱动程序,指出范围中第一行的单元格包含了表的列名 (1) 还是没有包含 (0)。
FORMAT:
对于 Text 驱动程序,可以是 FIXEDLENGTH、TABDELIMITED、CSVDELIMITED(用逗点分隔)或DELIMITED ( )(用括号中指定的特殊字符分隔)。特殊字符是长度为 1 的字符,并且可以是字符、十进制或十六进制格式。
IMPLICITCOMMITSYNC 决定 Microsoft Access 驱动程序是否将异步执行内部或隐含提交。最初将此值设置成“是” Microsoft Access 驱动程序将等待提交要完成的内部/隐含事务。不应轻率更改此选项的值。有关此选项的更多信息,参见 Microsoft Jet 程序员指南。这就设置了与“设置”对话框的 ImplicitCommitSync 控件相同的选项。
MAXBUFFERSIZE:
Microsoft Access 用来与磁盘传送数据的内部缓冲区大小,以 KB 为单位。缺省缓冲区大小是 512 K(显示为 512)。可用任何被 256 整除的整型值。这就设置了与“设置”对话框的“缓冲区大小”控件相同的选项。
MAXSCANROWS 对于 Microsoft Access、Microsoft Excel 或 Text 驱动程序,在根据现有数据来设置列的数据类型时,所扫描的行数。可以输入由 1 到 16 的作为扫描的行数。默认值为 8;如果将它设置成 0,则扫描全部行。(越界的数字将返回错误)。对于 Text 驱动程序,可输入由 1 到 32767 的数字为扫描的行数;不过,默认值总是 25。(越界的数字将返回错误)。这就设置了与“设置”对话框的“扫描”控件相同的选项。
PAGETIMEOUT 指定一页(如果不使用)在删除之前保持在缓冲区中的时间的长短,以十分之一秒为单位。对于 Microsoft Access 驱动程序,默认值是 5 个十分之一秒(0.5 秒)。对于dBASE 和 Paradox 驱动程序,缺省值是1秒的600/10 (60秒).注意,此选项应用于所有使用 ODBC 驱动程序的数据源。这就设置了与“设置”对话框的“页超时”控件相同的选项。
PARADOXNETPATH:
对于 Paradox 驱动程序,包含 Paradox 锁定数据库的目录的完整路径,因为它包含 PDOXUSRS.net 文件 (Paradox 4.x) 或 PARADOX.net 文件 (Paradox 5.x)。如果其中一个文件未包含在目录中,Paradox 驱动程序将创建一个。关于这些文件的详细信息,请参阅 Paradox 文档。在可以选定目录之前,必须输入 Paradox 用户名称。这就设置了与 Paradox“设置”对话框的“选定网络目录”控件相同的选项。
PARADOXNETSTYLE 对于 Paradox 驱动程序,当存取 Paradox 数据时使用的网络存取方式是:对于 Paradox 3.x 用“3.x”或 对于 Paradox 4.x 或 5.x 用“4.x”。如果版本是 Paradox 4.x 或 5.x,可以设置成“3.x”或“4.x”;如果版本是 Paradox 3.x,样式必须是“3.x”。这就设置了与 Paradox“设置”对话框的“网络样式”控件相同的选项。
PARADOXUSERNAME:
对于 Paradox 驱动程序,Paradox 用户名称。这就设置了与 Paradox“设置”对话框的“用户名称”控件相同的选项。
PWD:
对于 Microsoft Access 或 Paradox 驱动程序,。对于 Paradox 驱动程序,这是可选的关键字,而且驱动程序不会将它写到文件中。用它调用 SQLDriverConnect,与有密码安全的 Paradox 文件相对。
READONLY:
TRUE 使文件为只读;FALSE 使文件不是只读。这就设置了与“设置”对话框的“只读”控件相同的选项。
REPAIR_DB:
对于 Microsoft Access repairs a database驱动程序,在提交进程期间失败而损害的数据库修复。
STATISTICS:
对于 dBASE 驱动程序,确定表大小统计是否是近似的。注意,此选项应用于所有使用 ODBC 驱动程序的数据源。这就设置了与“设置”对话框的“近似(行)计数”控件相同的选项。
SYSTEMDB:
对于 Microsoft Access 驱动程序,指向系统数据库文件的路径。这就设置了与“设置”对话框的“系统信息库”控件相同的选项。
THREADS:
使用引擎的背景线程数。对于 Microsoft Access 驱动程序,默认值为 3,但可以更改。对于dBASE,Microsoft Excel,Paradox,和 Text 驱动程序,这个值是3,并且不能被改变。这就设置了与“设置”对话框的“线程”控件相同的选项。
UID:
对于 Microsoft Access 驱动程序,用于登录的用户 ID名称。
USERCOMMITSYNC:
决定 Microsoft Access 驱动程序是否将异步执行用户定义的事务。最初将此值设置成 “Yes”,表示 Microsoft Access 驱动程序将等待提交已完成的用户定义的事务。不应轻率更改此选项的值。有关此选项的更多信息,参见 Microsoft Jet 数据库引擎程序员指南。这就设置了与“设置”对话框的 UserCommitSync 控件相同的选项。
if(SQLConfigDataSource(m_pMainWnd->m_hWnd,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)",
"DSN=Personnel\0"
"DBQ=C:\\My Documents\\dq.mdb\0"
"DefaultDir=C:\\My Documents\0"
"Driver={Microsoft Access Driver (*.mdb)}\0"
"DriverId=790\0"
"Deleted=1\0"
"Description=ODBC数据源\0"
"FileType=Access\0"
"JetIniPath=odbcddp.ini\0"
"MaxScanRows=20\0"
"MaxBufferSize=512"
"ImplicitCommitSync=No\0"
"UserCommitSync=No\0"
"Exclusive=1\0"//独占
"ReadOnly=1\0"//只读
"UID=Smith\0"
"SafeTransactions=0\0"
"PWD=Sesame\0"
"DATABASE=dq\0"
"ExtendedAnsiSQL=1\0"
"Statistics=0\0"
"\0"))
AfxMessageBox("创建成功!");
else
AfxMessageBox("取消创建或创建失败!");
SQLConfigDataSource 函数被用于动态地添加、修改或删除数据源,该函数使用下列关键字。
关键字 描述
CHARACTERSET:
对于 Text 驱动程序,OEM 或 ANSI。
COLLATINGSEQUENCE:
字段排序的顺序。当使用 dBASE 驱动程序时,这个序列可以是: ASCII (缺省) 或 International.当使用 Paradox 驱动程序时,这个序列可以是: ASCII (缺省),International,Swedish-Finnish,或Norwegian-Dan ish.这将设置与“设置”对话框的“排序顺序”控件相同的选项。
COLNAMEHEADER:
对于 Text 驱动程序,指出数据的第一个记录是否将指定列名。其值为 TRUE 或 FALSE。
COMPACT_DB:
对于 Microsoft Access data compaction驱动程序,在数据库文件上执行数据库压缩。有如下的格式:COMPACT_DB=<路径名><可选排序顺序><可选 ENCRYPT 关键字>.
CREATE_DB:
对于 Microsoft Access 驱动程序,创建数据库文件。有如下的格式:CREATE_DB=<路径名>><可选排序顺序><可选 ENCRYPT 关键字,在这里路径名是一个 Microsoft Access 数据库的完整路径。如果路径名指到现有数据库,则将返回错误。排序顺序如“添加数据库”对话框中所设置,且在按下“Microsoft Access 安装”对话框的“创建”按钮时显示此对话框会。如果没有指定排序顺序,则使用 General。当使用 CREATE_DB 关键字时,如果要创建的 Microsoft Access 数据库的路径名称包含一个或一个以上的空格,则必须将整个路径名称用双引号括起来,如下列示例显示:"C:\PROGRAM FILES\COMMON FILESMyAccess.mdb""C:\PROGRAM FILES\Access2.mdb"CREATE_DB=C:\TEMP\test.mdb(不需要双引号)
CREATE_SYSDB:
对于 Microsoft Access 驱动程序,创建系统数据库文件。有如下的格式:CREATE_SYSDB=<路径名>><可选排序顺序>,在这里路径名是一个 Microsoft Access 数据库的完整路径。如果路径名指到现有数据库,则将返回错误。排序顺序如“添加数据库”对话框中所设置,且在按下“Microsoft Access 安装”对话框的“创建”按钮时显示此对话框会。如果没有指定排序顺序,则使用 General。
CREATE_V2DB:
对于 Microsoft Access 驱动程序,创建与 Microsoft Access 2.0 兼容的数据库文件。有如下的格式:CREATE_V2DB=<路径名>><可选排序顺序>,在这里路径名是一个 Microsoft Access 数据库的完整路径。如果路径名指到现有数据库,则将返回错误。排序顺序如“添加数据库”对话框中所设置,且在按下“Microsoft Access 安装”对话框的“创建”按钮时显示此对话框会。如果没有指定排序顺序,则使用 General。当使用 CREATE_V2DB 关键字时,如果要创建的 Microsoft Access 数据库的路径名称包含一个或一个以上的空格,则必须用双引号将整个路径名称括起来,如下列示例显示:"C:\PROGRAM FILES\COMMON FILESMyAccess.mdb""C:\PROGRAM FILES\Access2.mdb"CREATE_V2DB=C:\TEMP\test.mdb(不需要双引号)
DBQ 对于 Microsoft Access 或 Paradox 驱动程序,数据库文件的名称。对于 Microsoft Excel 驱动程序,当访问 Microsoft Excel 5.0、7.0 或 97 的文件时,工作簿文件的名称。这就设置了与“设置”对话框的“数据库”控件相同的选项。
DEFAULTDIR:
对于数据库文件( Microsoft Access 驱动程序) 或 目录 (dBASE,Microsoft Excel,Paradox,或 Text 驱动程序)的路径指定。这就设置了与“设置”对话框的“目录”控件,或对于 Microsoft Excel,“设置”对话框的“选择工作簿”控件相同的选项。
DELETED:
对于 dBASE 驱动程序,指定被标记为已删除的行是否可以被检索到或被放置。如果设置成 1,则不显示被删除的行;如果设置成 0,则把已删除的行当作未删除的行。默认值是 不选定。这就设置了与“设置”对话框的“显示删除列”控件相同的选项。
DESCRIPTION:
数据源中数据的描述。这就设置了与“设置”对话框的“描述”控件相同的选项。
DRIVER:
指向驱动程序 DLL 的路径说明。
DRIVERID:
对于驱动程序的整型标识符。
25 (Microsoft Access)
21 (dBASE III)
277 (dBASE IV)
533 (dBASE 5.0)
534 (Microsoft Excel 3.0)
278 (Microsoft Excel 4.0)
22 (Microsoft Excel 5.0/7.0)
790 (Microsoft Excel 97)
26 (Paradox 3.x)
282 (Paradox 4.x)
538 (Paradox 5.x)
27 (Text)
EXCLUSIVE:
决定数据库将以独占方式(一次只有一个访问)或分享方式(一次有多个用户访问)打开。可以是 TRUE(独占方式)或 FALSE(分享方式)。(这不会应用到 Microsoft Excel 或 Text 驱动程序)。这就设置了与“设置”对话框的“独占方式”控件相同的选项。
EXTENSIONS:
列出在数据源上“文本文件”的文件名的文件扩展名。这就设置了与“设置”对话框的“文件类型”控件相同的选项。
FIL:
文件类型
MS Access for Microsoft Access
dBase III,dBase IV,or dBase 5
Excel 3.0,4.0,5.0,7.0,or 97 for Microsoft Excel
Paradox 3.x,4.x,or 5.x)
Text.
FILETYPE:
对于 Text 驱动程序(文本)的文件类型。
FIRSTROWHASNAMES:
对于 Microsoft Excel 驱动程序,指出范围中第一行的单元格包含了表的列名 (1) 还是没有包含 (0)。
FORMAT:
对于 Text 驱动程序,可以是 FIXEDLENGTH、TABDELIMITED、CSVDELIMITED(用逗点分隔)或DELIMITED ( )(用括号中指定的特殊字符分隔)。特殊字符是长度为 1 的字符,并且可以是字符、十进制或十六进制格式。
IMPLICITCOMMITSYNC 决定 Microsoft Access 驱动程序是否将异步执行内部或隐含提交。最初将此值设置成“是” Microsoft Access 驱动程序将等待提交要完成的内部/隐含事务。不应轻率更改此选项的值。有关此选项的更多信息,参见 Microsoft Jet 程序员指南。这就设置了与“设置”对话框的 ImplicitCommitSync 控件相同的选项。
MAXBUFFERSIZE:
Microsoft Access 用来与磁盘传送数据的内部缓冲区大小,以 KB 为单位。缺省缓冲区大小是 512 K(显示为 512)。可用任何被 256 整除的整型值。这就设置了与“设置”对话框的“缓冲区大小”控件相同的选项。
MAXSCANROWS 对于 Microsoft Access、Microsoft Excel 或 Text 驱动程序,在根据现有数据来设置列的数据类型时,所扫描的行数。可以输入由 1 到 16 的作为扫描的行数。默认值为 8;如果将它设置成 0,则扫描全部行。(越界的数字将返回错误)。对于 Text 驱动程序,可输入由 1 到 32767 的数字为扫描的行数;不过,默认值总是 25。(越界的数字将返回错误)。这就设置了与“设置”对话框的“扫描”控件相同的选项。
PAGETIMEOUT 指定一页(如果不使用)在删除之前保持在缓冲区中的时间的长短,以十分之一秒为单位。对于 Microsoft Access 驱动程序,默认值是 5 个十分之一秒(0.5 秒)。对于dBASE 和 Paradox 驱动程序,缺省值是1秒的600/10 (60秒).注意,此选项应用于所有使用 ODBC 驱动程序的数据源。这就设置了与“设置”对话框的“页超时”控件相同的选项。
PARADOXNETPATH:
对于 Paradox 驱动程序,包含 Paradox 锁定数据库的目录的完整路径,因为它包含 PDOXUSRS.net 文件 (Paradox 4.x) 或 PARADOX.net 文件 (Paradox 5.x)。如果其中一个文件未包含在目录中,Paradox 驱动程序将创建一个。关于这些文件的详细信息,请参阅 Paradox 文档。在可以选定目录之前,必须输入 Paradox 用户名称。这就设置了与 Paradox“设置”对话框的“选定网络目录”控件相同的选项。
PARADOXNETSTYLE 对于 Paradox 驱动程序,当存取 Paradox 数据时使用的网络存取方式是:对于 Paradox 3.x 用“3.x”或 对于 Paradox 4.x 或 5.x 用“4.x”。如果版本是 Paradox 4.x 或 5.x,可以设置成“3.x”或“4.x”;如果版本是 Paradox 3.x,样式必须是“3.x”。这就设置了与 Paradox“设置”对话框的“网络样式”控件相同的选项。
PARADOXUSERNAME:
对于 Paradox 驱动程序,Paradox 用户名称。这就设置了与 Paradox“设置”对话框的“用户名称”控件相同的选项。
PWD:
对于 Microsoft Access 或 Paradox 驱动程序,。对于 Paradox 驱动程序,这是可选的关键字,而且驱动程序不会将它写到文件中。用它调用 SQLDriverConnect,与有密码安全的 Paradox 文件相对。
READONLY:
TRUE 使文件为只读;FALSE 使文件不是只读。这就设置了与“设置”对话框的“只读”控件相同的选项。
REPAIR_DB:
对于 Microsoft Access repairs a database驱动程序,在提交进程期间失败而损害的数据库修复。
STATISTICS:
对于 dBASE 驱动程序,确定表大小统计是否是近似的。注意,此选项应用于所有使用 ODBC 驱动程序的数据源。这就设置了与“设置”对话框的“近似(行)计数”控件相同的选项。
SYSTEMDB:
对于 Microsoft Access 驱动程序,指向系统数据库文件的路径。这就设置了与“设置”对话框的“系统信息库”控件相同的选项。
THREADS:
使用引擎的背景线程数。对于 Microsoft Access 驱动程序,默认值为 3,但可以更改。对于dBASE,Microsoft Excel,Paradox,和 Text 驱动程序,这个值是3,并且不能被改变。这就设置了与“设置”对话框的“线程”控件相同的选项。
UID:
对于 Microsoft Access 驱动程序,用于登录的用户 ID名称。
USERCOMMITSYNC:
决定 Microsoft Access 驱动程序是否将异步执行用户定义的事务。最初将此值设置成 “Yes”,表示 Microsoft Access 驱动程序将等待提交已完成的用户定义的事务。不应轻率更改此选项的值。有关此选项的更多信息,参见 Microsoft Jet 数据库引擎程序员指南。这就设置了与“设置”对话框的 UserCommitSync 控件相同的选项。