我在vc6.0中使用ado实现新增一个字段,按照以下代码都发生了错误,不知何故
_ConnectionPtr myDblink;  我的数据库连接
_variant_t     affect;
myDblink->Execute("ALTEB TABLE 拨地地块 ADD COLUMN 地块总亩数 DOUBLE",&affect,adCmdText);
程序执行时一致提示错误,但是把sql语句修改为"select * from 拨地地块",程序运行就没有错了,我是希望在“拨地地块”这个数据表中添加一个新的字段,名字是“地块总亩数”,类型是double的
希望能得到帮助,在网上查了一圈,都没有得到满意的答案!

解决方案 »

  1.   

    ALTEB TABLE 拨地地块 ADD 地块总亩数 DOUBLE
    什么数据库,或许有的数据库没有double这个数据类型,名称叫其他名字了。
      

  2.   

    是access数据库,就是奇怪为什么"select * from 拨地地块"sql语句就不出错,说明程序没有问题!
      

  3.   

    myDblink->Execute("ALTEB TABLE 拨地地块 ADD COLUMN 地块总亩数 DOUBLE",&affect,adCmdText);
    你是不是敲错了,好象应该是:alter,不是alteb,你查下具体的alter这个命令的用法
      

  4.   

    是我敲错了
    但是程序里面是对的
    这个sql语句在access中执行正确
    其中,COLUMN可有也可无
    郁闷啊!一个05年编的vc程序,现在要拿出来改,这么个小问题,改了一天还没有弄好!
      

  5.   

    别用汉字做字段名(变量)
    数据库有字符集编码问题,你会有无穷无尽的困扰就算你在本机上调通了(尝试用各种编码测试ANSI,UNICODE,UTF-8),依然不能保证在其它机器上正常
      

  6.   

    关键问题是这个程序是几年前开发的,已经有几千个数据库了,要是新建一个数据库的话,可以在新建时把数据表都改成英文的,但是之前已经存在的那几千个表呢,还得用程序改,这个该怎么改呢!另注:
    我在运行sql语句时,已将其转换为COM专用字符串类型_bstr_t
    _ConnectionPtr myDblink; 我的数据库连接
    _variant_t affect;
    myDblink->Execute(_bstr_t"ALTER TABLE 拨地地块 ADD COLUMN 地块总亩数 DOUBLE",&affect,adCmdText);
      

  7.   

    问题终于找到了,是因为我的代码发的不够全
    在执行这行代码之前,我打开了这个数据表
    并计算了该数据表的字段个数
    然后就直接运行了添加字段的程序
    这个时候,数据库被锁住了,不能添加字段
    在access中,打开一个数据表,同时再写命令添加字段语句时,会提示数据库被锁住
    因此,程序需要先关闭这个数据表
    再对这个表添加字段就成功了
    不知道,如何才能关闭一个数据表呢