您执行创建表的命令是什么呢?
在query中执行
query1.close;
query1.sql.clear;
query1.sql.add('create table yourtable (field1 char(10))');
try
query1.execsql;//这里容易产生错误,不能使用open
except
end;

解决方案 »

  1.   

    对了,我是重建该表,先删掉再新建,删除是成功了,但是却没重建!
    query1.close;
    query1.sql.clear;
    query1.sql.add('drop table mytable');
    query1。open;
    query1。close;
    query1.sql。clear;
    query1.sql。add('(create table mytable');
    *******
    *******
    query1.execsql;
    就是这样子吧,出错!!
      

  2.   

    可能问题出在Query1.open;上,应为query1.execsql;
      

  3.   

    改为:
    query1.close;
    query1.sql.clear;
    query1.sql.add('drop table mytable');
    query1。execsql;//这里也要用ExecSQL!
    query1。close;
    query1.sql。clear;
    query1.sql。add('(create table mytable');
    *******
    *******
    query1.execsql;
      

  4.   

    只有当有结果集传回来的时候才可以用Open,否则都会报'Cursor not found'错误
    当然query里的代码还是被执行了.
    你的程序是在执行query1.open后出错了,因此后面的建表过程根本没有被执行到.
      

  5.   

    with Query1 do
    begin
        Closq;
        Sql.Text :=' If Exists(Select * from TableName) 
                     begin
                         Drop tabel TableName
                     end
                     Create Table TableName...........  '
        ExecSql;
        Close;
    end;