最近我变了一个基于ADO的程序,我用的是数据源连接,怎么样才能在程序中动态的创建一个数据源?

解决方案 »

  1.   

    CDataSource ds; ds.Open();自动弹出一个对话框,让用户来选择
      

  2.   

    我不是做数据库的,只用过MDB,所以下面的例子也只保证对MDB有效
    BOOL CreateODBCDSN(LPCTSTR database,LPCTSTR dsn)
    {
    // 配置数据源
    char Attributes[256];
    memcpy(Attributes,"DSN=PeiD\0",strlen("DSN=PeiD\0")+1);
    memcpy(Attributes+strlen("DSN=PeiD\0")+1,"Description=Data source created by Wangjin's program\0",strlen("Description=Data source created by Wangjin's program\0")+1);
    memcpy(Attributes+strlen("DSN=PeiD\0")+1+strlen("Description=Data source created by Wangjin's program\0")+1,"DBQ=",4);
    memcpy(Attributes+strlen("DSN=PeiD\0")+1+strlen("Description=Data source created by Wangjin's program\0")+1+4,database,strlen(database)+1);
    if( 
    !SQLConfigDataSource(
    NULL,
    ODBC_ADD_DSN,
    "Microsoft Access Driver (*.mdb)",
    //"DSN=PeiD\0"
    //"Description=Data source created by Wangjin's program\0"+
    //"DBQ=C:\\aaa.mdb\0"
    Attributes
    ) )
    {
    AfxMessageBox("配置数据源失败");
    return FALSE;
    }
    }
      

  3.   

    Sorry,忘记附上调用方式
    void CTestDlg::OnAppDsn() 
    {
    if( CreateODBCDSN("C:\\PeiD.mdb","PeiD") )
    AfxMessageBox("添加ODBC数据源已完成");
    }
      

  4.   

    很好!数据源创建成功!  可是我的ADO连接打不开呀!  _ConnectionPtr  m_Cn;      //ADO组件对象  m_Cn.CreateInstance(__uuidof(Connection));  m_Cn->Open(L"Data Source=myds",L"dbo",L"",adConnectUnspecified);
      //总是OPEN不成功,参数不对,不知ACCESS的通用帐号密码是多少。
      烦请楼上大虾解惑!
      

  5.   

    你有没有在appinstance中初始com?使用AfxOleInit()来初始化.