我在创建的.mdb文件中想创建表,用了 _ConnectionPtr m_pConnection;
m_pConnection->Open
("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=guestbook.mdb","","",adModeUnknown);
_variant_t RecordsAffected; 
m_pConnection->Execute("CREATE TABLE users(ID INTEGER,username TEXT,old INTEGER,birthday DATETIME)",&RecordsAffected,adCmdText);
但直接提示错误,请帮忙解决为什么?

解决方案 »

  1.   

    首先你初始化COM库了么?连接字串对了么?"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=guestbook.mdb“guestbook.mdb你是存放在那里?用全路径,你所创建的表在哪个数据库中是唯一的,如果已经存在将会报错。
      

  2.   

    楼上说的问题应该不存在!
    因为在没有写m_pConnection->Execute("CREATE TABLE users(ID INTEGER,username TEXT,old INTEGER,birthday DATETIME)",&RecordsAffected,adCmdText);
    这句的时候是没有错误的!
    所以我想问题应该是创建表的这一句!
    或者我忘了写什么1
      

  3.   

    这个你就错了,你试试改这句看:m_pConnection->Open
    ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=guestbook.mdb","","",adModeUnknown);
    把连接字串的内容删去一些,编译连接均不会出错的,因为编译器先前并不知道你的数据库在那里,当它真正执行连接数据库的时候,然而你的连接字串使得连接失败,编译器会报错,也就是runtime error!!!我写个例子你拿去看能否运行,我的是VC6.0+ACCESS数据库。
    try
    {

    pConn->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Documents and Settings\\user\\桌面\\author.mdb";//连接字串赋值
    pConn->Open("","","",adConnectUnspecified);//打开指定的数据库
    pConn->Execute("CREATE TABLE 学生信息(学号 INTEGER,姓名 TEXT,年龄 INTEGER,生日 DATETIME) ",&ra,adCmdText);//创建一个“学生信息”表
    pConn->Execute("ALTER TABLE 学生信息 ADD 作品 TEXT ",NULL,adCmdUnknown); //为表添加字段
    MessageBox("成功添加一个字段");
    }
    catch(_com_error *e)
    {
    MessageBox(e->ErrorMessage());
    }
      

  4.   

    我找出了错误,因为我把上面的句子写在了CLView::OnInitialUpdate() 中
    其实在我编译的时候,该命令并没有运行!
    我把它放在其他地方,就可以用了!
    还是不太清楚,OnInitialUpdate的运行机制!
    再看看了,大家也帮忙说说1