我在mfc的对话框中的程序中加如代码;连接到我自己的机器上的sql数据库上,数据库的名字是test
对应的表 是users  以下是代码
BOOL CMydabaseDlg::OnInitDialog()
{

//
_ConnectionPtr con;
con.CreateInstance(L"Adodb.Connnection");
con->Open(_bstr_t("PROVIDER=SQLOLEDB;DATA SOURCE=test;USER       ID=Administrator;PASSWORD=19831215"),_bstr_t(""),_bstr_t(""),-1);
 //。。
con->Execute("Create Database zzzz",0,-1);
CDialog::OnInitDialog();编译结果 出错:
  run time error

解决方案 »

  1.   

    导入ADO库没有?
    #import "c:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")
      

  2.   

    大哥,我写了,要不然,也不会识别_ConnectPtr
      

  3.   

    先请在你的StdAfx.h中导入楼上的那条语句
    另外建议你使用我的方法,咱都是初学的新手,别急,慢慢来,我是这样实现的
    CoInitialize(NULL);
    _ConnectionPtr pCon(__uuidof(Connection));
    _RecordsetPtr pRst(__uuidof(Recordset));

    pCon->ConnectionString=连接字符串;
             pRst = pCon->Execute("select * from 表名",NULL,adCmdText);
             .....
             CoUninitialize();
    注意一定要初始化com库的,就是CoInitialize(NULL);在最后还要CoUninitialize();一下
    我这样的是能连承接成功的,建议参考一下 。
      

  4.   

    能把你代码 详细些么?
    另外,那个sql数据库怎么设置用户 啊,我感觉好象是用户名字出了问题;
      

  5.   

    怎么还是连接不上啊 ;
    代码如下:::::
    _ConnectionPtr pCon(__uuidof(Connection));
    _RecordsetPtr pRst(__uuidof(Recordset));

    pCon->ConnectionString= _bstr_t("PROVIDER=SQLOLEDB;DATA SOURCE=test;USER ID=sa;PASSWORD=");
        pRst = pCon->Execute("Create Database zzzz",0,-1);run time error
      

  6.   

    DATA SOURCE=test.
    DATA SOURCE是SQL SERVER服务器的名称。
    你确认没错?
      

  7.   

    DATA SOURSE =test
    test是数据源的名字,这个肯定没有错的
      

  8.   

    建议你在企业管理器里先建好表,我觉得我们刚起步的就慢慢来撒。至于查询的话就可以用pRst = pCon->Execute("select * from 表名",NULL,adCmdText);的代码来实现。然后你用try....catch捕获一下看出现什么错误,还有,你的连接字符串要注意写对。
      

  9.   

    对每一步数据库操作都加上try{}catch(_com_error e){},首先要知道哪个操作出错了。
      

  10.   

    呵呵,那就是你的sql语句写错了撒,你看看你的sql语句,是一个创建表的语句撒.还有,在你访问的时候出现的错误是什么啊 ??用try...catch()捕获的时候的错误啊
      

  11.   

    会跳出一个对话框, 
    提示你:
    run time error
      

  12.   

    看看俺写的
    连接字符串:m_StrServer="Provider=SQLOLEDB;Data Source=192.168.0.254;Initialatalog=Sdy;User ID=sa;Password=";
    开始连接服务器:
    HRESULT hr; 
            _ConnectionPtr m_db;
            _RecordsetPtr m_set;
    hr=m_db.CreateInstance(__uuidof(Connection));
    if(hr!=S_OK)
    {
    return FALSE;
    }
    hr=m_set.CreateInstance(__uuidof(Recordset));
    if(hr!=S_OK)
    {
    return FALSE;
    }
    try
    {
    m_db->Open((_bstr_t)m_StrServer,"","",adModeUnknown);
    }
    catch(_com_error e)
    {
    #ifdef _DEBUG
    AfxMessageBox("Error:connect server ! ");
    #endif
    CString Error = e.ErrorMessage(); 
    #ifdef _DEBUG
    AfxMessageBox(Error);
    #endif 
    IsOnline=FALSE;
    return FALSE;
    }
    catch(...)
    {
    #ifdef _DEBUG
    AfxMessageBox("ADO发生错误!");
    #endif
    IsOnline=FALSE;
    return FALSE;

      

  13.   

    to bluelu
    能不能把你关与sql的 配置给我说一下啊
      

  14.   

    楼主
    con.CreateInstance(L"Adodb.Connnection");
    Connection 多了一个n
      

  15.   

    建议使用异常捕获错误,很好用的。我前个礼拜也是做相关设计,把人都搞疯了。请教了不少人。一天早上起来忽然发现原来sql语句写错了。叫“from”写成“form”。千万不要发生类似错误。坚持就是是胜利!