我应用MFC ODBC 做了一个数据库管理系统,可是需要先用access建立一个表,这个程序生成一个exe文件后在别的机器上要运行,就需要都用其它软件先建立这个表,并连接数据源,很麻烦。请问在VC中有什么方法能自己生成数据库,不需其它应用程序先行创建?OLE DB/ADO可以吗?
谢谢!

解决方案 »

  1.   

    目前VC自己不能生成数据库,OLE DB/ADO等等并不是建立数据库,而是vc同其他数据库的接口方式。
      

  2.   

    可以动态创建数据源啊!通过 SQLCONFIGDATASOURCE函数就可以在运行时创建数据源!
      

  3.   

    不用ADO,用ADOX可以实现。
    你在论坛上搜索一下有相应的文章。
    我实现过。
      

  4.   

    给你一个动态创建数据源的例子:程序是一个对话框程序
    (1)打开*Dlg.h加入代码:
     #include <odbcinst.h>
     #pragma comment(lib,"odbccp32.lib") //为了使用ODBC API的函数 SQLConfigDataSource(2)打开StdAfx.h加入代码:
     #include <afxdb.h> //以提供对CDatabase 类的支持3.在ResourceView选项卡的Dialog文件夹中
     
    SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"Microsoft Access Driver (*.mdb)\0",
    "DSN=TryMyDB\0DBQ=e:\\dbt\\testdb.mdb\0DEFAULTDIR=e:\\dbt\\0\0"))
    //"e:\\dbt\\testdb.mdb"是数据库文件的路径。
    m_db.Open(_T("TryMyDB"));//TryMyDB数据源名称
    m_set.m_pDatabase=&m_db;
    m_set.Open();
    …………
    m_set.Close();
    m_db.Close();
      

  5.   

    谁说VC中不能建立数据库?FT!如果是ACCESS数据库,用DAO吧,很方便,几行代码就可以了
      

  6.   

    可以啊。
    可以创建数据库啊。ACCESS,SQL server 2000都可以啊。
    也可以自动创建DSN啊。
      

  7.   

    楼上,怎么把数据库打包呀,oracle也可以吗
      

  8.   


    用ADO可以建立数据库。
    不过我建议软件打包时,把数据库打进去(*.mdb)
    不用建立数据源。
      

  9.   

    创建数据库:
    vc+ado:
    CoInitialize(NULL); using namespace ADOX;
    _CatalogPtr m_pCatalog = NULL;
    CString strConnection, strTable;
    TCHAR chFilePath[MAX_PATH]; GetModuleFileName(NULL,chFilePath,MAX_PATH);
    (_tcsrchr(chFilePath, '\\'))[1] = 0;
    lstrcat(chFilePath , _T("Test.mdb")); strTable = chFilePath;

    strConnection = _T("Provider=Microsoft.JET.OLEDB.4.0;Data source = ") + strTable + _T(";Jet OLEDB:Engine Type=5;"); if(!PathFileExists(chFilePath))
    {
    try
    {
    m_pCatalog.CreateInstance(__uuidof(Catalog));
    m_pCatalog->Create(_bstr_t(strConnection ));
    }
    catch(...)
    {
    m_pCatalog->Release();
    m_pCatalog = NULL;
    CoUninitialize();
    }
    m_pCatalog->Release();// m_pCatalog->Release();
    // m_pCatalog = NULL;
    }
    CoUninitialize();
      

  10.   

    添加数据源:
    http://www.csdn.net/Develop/read_article.asp?id=25607
      

  11.   

    可以动态创建数据源啊!SQLCONFIGDATASOURCE函数就可以在运行时创建数据源的.
      

  12.   

    lifengnm(最近比较烦)不好意思,我忘记给你分了,实在不好意思^_^