用文件dsn就可以,在自己的开发机器上配好文件dsn,然后将其靠到要使用的机器上,程序就可以连上数据库

解决方案 »

  1.   

    要靠的C:\Program Files\Common Files\ODBC\Data Sources目录下,程序中制定数据源如下:“FILEDSN=test”,其中test为文件dsn的名称,dsn文件的全名为test.dsn
      

  2.   

    这样做违背了ODBC的初衷,也是不可能的!
      

  3.   

    //编程创建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 控件相同的选项。