vc++里面的:
AfxEnableControlContainer();
AfxOleInit();///初始化COM库
////////////连接数据库//////////////
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;  }
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return FALSE;

解决方案 »

  1.   

    就是在c里是用com,你查下在c下怎么使用com就清楚了
      

  2.   

    #define DBNTWIN32#include <stdio.h>
    #include <windows.h>
    #include <sqlfront.h>
    #include <sqldb.h>int error_handler(DBPROCESS *, INT, INT, INT, LPCSTR,LPCSTR);
    int message_handler(DBPROCESS *, DBINT, INT, INT, LPCSTR, LPCSTR, LPCSTR,DBUSMALLINT);int main()
    {
    DBPROCESS *dbproc;
    LOGINREC  *login;
    DBCHAR    title[128];
    DBCHAR    price[128];
    DBCHAR    pub_id[128]; //安装错误和消息处理函数
    dberrhandle (error_handler);
    dbmsghandle (message_handler);
    //初始化DB-Library环境,并显示DB-Library的版本号
    printf("%s\n",dbinit());
    //设置连接信息
    login = dblogin ();
    DBSETLUSER (login, "sa");
    DBSETLPWD (login, "");
    DBSETLAPP (login, "DBDemo");
    //建立与SQL服务器的连接
    if ((dbproc = dbopen (login, "YWJ"))==NULL)return 0;
    //释放login 结构
    dbfreelogin (login);
    //向DBPROCESS命令缓冲区添加SQL语句
    dbcmd (dbproc,"SELECT title,price,pub_id FROM pubs..titles");
    dbcmd (dbproc," WHERE type = 'business'"); //向SQL 传递SQL语句,进行检索
    dbsqlexec (dbproc);
    //处理检索结果
    if (dbresults (dbproc) == SUCCEED)
    {
    //建立结果列与应用程序变量的关系
    dbbind (dbproc, 1, NTBSTRINGBIND, (DBINT)0,(LPBYTE)title);
    dbbind (dbproc, 2, NTBSTRINGBIND, (DBINT)0,(LPBYTE)price);
    dbbind (dbproc, 3, NTBSTRINGBIND, (DBINT)0,(LPBYTE)pub_id);

    printf("business 类图书:\n");
    //循环读取每一行并显示
    while (dbnextrow (dbproc) != NO_MORE_ROWS)
    printf ("** %-55s  %-8s %-8s \n",title,price,pub_id);
    }
    //关闭SQL连接
    dbexit();
    return 0;
    }//定义错误处理函数
    int error_handler(DBPROCESS *dbproc, INT severity, INT dberr, INT oserr, LPCSTR dberrstr,LPCSTR oserrstr)
    {
        printf( "DB-Library 错误:  %i,  %s\n",dberr,dberrstr);
    if (oserr != DBNOERR)
    printf( "操作系统 错误:  %i,  %s\n",oserr,oserrstr);
    return (INT_CANCEL);}int message_handler(DBPROCESS *dbproc, DBINT msgno, INT msgstate, INT severity, LPCSTR msgtext, LPCSTR srvname, LPCSTR procname,DBUSMALLINT line)
    {
    printf("SQL Server消息号: %ld,状态:  %d,级别: %d:\n\t%s\n",msgno,msgstate,severity,msgtext); //printf("SQL Server消息号: %ld,状态:  %d,级别: %d:\n\t%s\n",msgno,msgstate,severity,msgtext);
        return 0;
    }
      

  3.   

    我要的就是这个,但是这个能在WINDOW下运行吗?如果要在WINDOW下运行,需要安装什幺包!谢谢.
      

  4.   

    kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib NTWDBLIB.lib
      

  5.   

    kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib NTWDBLIB.lib
    这些包是安装了什幺有的,还是系统自带,你能否留下QQ,我真的很急!
      

  6.   

    我有VC啊,但是我执行上面的程序,会出错。说一些包含文件找不到,这些文件在UNIX下面有,好象是个freetds-0.53,我想是不是也有WINDOW的版本。
      

  7.   

    一叶知秋大虾,这是BUILD信息:
    --------------------Configuration: test - Win32 Debug--------------------
    Linking...
    test.obj : error LNK2001: unresolved external symbol _dbexit
    test.obj : error LNK2001: unresolved external symbol _dbnextrow
    test.obj : error LNK2001: unresolved external symbol _dbbind
    test.obj : error LNK2001: unresolved external symbol _dbresults
    test.obj : error LNK2001: unresolved external symbol _dbsqlexec
    test.obj : error LNK2001: unresolved external symbol _dbcmd
    test.obj : error LNK2001: unresolved external symbol _dbfreelogin
    test.obj : error LNK2001: unresolved external symbol _dbopen
    test.obj : error LNK2001: unresolved external symbol _dbsetlname
    test.obj : error LNK2001: unresolved external symbol _dblogin
    test.obj : error LNK2001: unresolved external symbol _dbinit
    test.obj : error LNK2001: unresolved external symbol _dbmsghandle
    test.obj : error LNK2001: unresolved external symbol _dberrhandle
    Debug/test.exe : fatal error LNK1120: 13 unresolved externals
    Error executing link.exe.test.exe - 14 error(s), 0 warning(s)
      

  8.   

    如果要求通用,用ODBC。
    如果追求效率,用SDK。SqlServer,oracle都附带了SDK包,ANSI C的。SqlServer的SDK包叫DB Library For C,在MSDN里有详细的讲解。
    我在一个每十分钟处理2万条记录的项目(ANSI C实现)里用它替代ODBC,效率成倍提高。