我在程序里同时向两个(interbase)里面新建同样一个表
在一个表里面建立成功 另一个死都不行 提示为
sql error code=-817
metadata update statement is not allowed the current database sql
dialect 3
sql waring code =301 
DATE date type is now called TIMESTAMP

解决方案 »

  1.   

    表是肯定没有存在的 请你们看下我建表的远代码:
          msql := 'CREATE TABLE KQ' + inttostr(fspinedit1.value) + format('%.2d', [fspinedit2.value]);
          msql := msql + '(CARDNUM VARCHAR(6) NOT NULL,RQ DATE NOT NULL,BANLEI VARCHAR(3),';
          msql := msql + 'SD1 TIMESTAMP,SZ1 TIMESTAMP,SD2 TIMESTAMP,SZ2 TIMESTAMP,';
          msql := msql + 'SD1STATUS VARCHAR(3),SZ1STATUS VARCHAR(3),SD2STATUS VARCHAR(3),SZ2STATUS VARCHAR(3),QQSTATUS VARCHAR(2),ALLSTATUS VARCHAR(15),';
          msql := msql + 'MARK VARCHAR(1),RQ1 TIMESTAMP,OP VARCHAR(10),QJ VARCHAR(1),PRIMARY KEY (CARDNUM,RQ));';
      

  2.   

    showmessage(msql);
    看看sql语句有无错。
      

  3.   

    1.我怀疑你的两个Tdatabase连接的是同一个数据库,每个Tdatabase 应对应一个TSession,第个TSession的SessionName不应相同,把这个两个 SessionName分别赋给Tdatabase2.如果你的Tdatabase是动态连接两这个数据库的话,关闭数据库里应这样写
      database1.Session.close;//这句不能少
      database1.Close;
      ....
      database1.Open;
      

  4.   

    .我怀疑你的两个Tdatabase连接的是同一个数据库,每个Tdatabase 应对应一个TSession,每个TSession的SessionName不应相同,把这个两个 SessionName分别赋给Tdatabase的Sessionname
      

  5.   

    用两个TADOCONNECTION连接两个数据库,然后执行这个SQL命令
      

  6.   

    Date 改成 TIMESTAMP, 或者把 dialect 改成 1
      

  7.   

    sql语句应该没问题,不然第一个表不会创建成功。
    huojiehai(海天子) 说的应该是对的,你的连接肯定有问题,
    看看是不是指向同一个连接了