可以用代码来动态注册数据源。
如加入 c:\temp\volume.mdb,注册名为ADOTestSQLConfigDataSource( NULL, ODBC_ADD_SYS_DSN,
     "Microsoft Access Driver (*.mdb)\0",
     "DSN=ADOTest\0",
     "DBQ=C:\\Temp\\volume.mdb\0DEFAULTDIR=C:\\Temp\0\0" );\0 为添加的“零标记”。
这是我自己的一段代码,希望能对你有帮助。

解决方案 »

  1.   

    楼上的"DSN=ADOTest\0",
    多了一个逗号。
    这是在系统DSN中的,
    更为安全的是在户DSN中。如下
    if(!SQLConfigDataSource( NULL, ODBC_ADD_DSN,
         "Microsoft Access Driver (*.mdb)\0",
         "DSN=ODBCTest\0"
         "DBQ=C:\\My Documents\\db1.mdb\0DEFAULTDIR=C:\\My Documents\0" ))
    {
    AfxMessageBox("无法创建数据源");
                          .
                          .
    }
    假设在C:\My Documents下用Access自建了一个的db1.mdb。
      

  2.   

    richuen22(令狐龟) 的方法可以不创建数据源,只要指定驱动程序和数据文件即可
      

  3.   


    我告诉你一个方法,绝对好用,不管是什么ODBC的字符串都可以知道。
    但是是从 jyu1221(天同) 处看来的
    1。先建立一个文件型的DSN(如:1.dsn)。
    2。然后使用记事本打开该文件。
    如:文件内容为:
    -----------------------------------------------------------
    [ODBC]
    DRIVER=Driver do Microsoft Access (*.mdb)
    UID=admin
    UserCommitSync=Yes
    Threads=3
    SafeTransactions=0
    PageTimeout=5
    MaxScanRows=8
    MaxBufferSize=2048
    FIL=MS Access
    DriverId=25
    DefaultDir=C:\Documents and Settings\Administrator\My Documents
    DBQ=C:\Documents and Settings\Administrator\My Documents\zwds.mdb
    -----------------------------------------------------------
    3.把从DRIVER开始的所有字符COPY到程序中,然后用;代替回车。
    DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL=MS Access;DriverId=25;DefaultDir=C:\Documents and Settings\Administrator\My Documents;DBQ=C:\Documents and Settings\Administrator\My Documents\zwds.mdb;
    4.接下来你应该知道怎么做了。
    CDatabase db;
    if(db.OpenEx("DRIVER=Driver do Microsoft Access (*.mdb);UID=admin;UserCommitSync=Yes;Threads=3;SafeTransactions=0;PageTimeout=5;MaxScanRows=8;MaxBufferSize=2048;FIL=MS Access;DriverId=25;DefaultDir=C:\Documents and Settings\Administrator\My Documents;DBQ=C:\Documents and Settings\Administrator\My Documents\zwds.mdb",
    CDatabase::openReadOnly|CDatabase::noOdbcDialog)==0)
    {
    ErrorBox("ODBC open failed!");

    }

    通过此方法,可以很容易的知道连接一个不太熟悉的数据库。
      

  4.   

    用SQLDriverConnect可以直接连char pszConnection[] = "DRIVER={SQL Server};SERVER=127.0.0.1;UID=guest;PWD=guest";char pszOut[1024];
    short int iOut;

    sr = SQLDriverConnect(hConnection,NULL,
    (SQLCHAR *)pszConnection, SQL_NTS,
    (SQLCHAR *)pszOut,SQL_NTS,
    &iOut,SQL_DRIVER_NOPROMPT);
    //hConnection已经分配过