如何打包ODBC 用文件dsn就可以,在自己的开发机器上配好文件dsn,然后将其靠到要使用的机器上,程序就可以连上数据库 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要靠的C:\Program Files\Common Files\ODBC\Data Sources目录下,程序中制定数据源如下:“FILEDSN=test”,其中test为文件dsn的名称,dsn文件的全名为test.dsn 这样做违背了ODBC的初衷,也是不可能的! //编程创建ODBC数据源方法 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 控件相同的选项。 ACtive 作图控件的问题! Edit Box 控件怎么让它一开始就为0或别的数啊? 为什么会有do{...}while(0);的写法? 各位上海的朋友请进! 给小弟一点建议 串行通信问题 高手过招! 谁知道怎么获得一个DLL文件的导出函数和其他信息? 有关环境变量 MFC ClistBox判断选中的问题。 制作过文字编辑的高手:怎样设置RichEdit可以编辑的最大字符数? 请问哪位有对各种常用控件的整理资料? 有人用NetMeeting COM API实现了远程桌面共享吗?怎么得到桌面应用的INmSharableApp接口呀?
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 控件相同的选项。