table 和 tablename之间多了一个‘:’吧?应该是空格

解决方案 »

  1.   

    去掉冒号,tablename改成别的
    tablename就象是程序语言里的保留字一样
    不能用的
      

  2.   

    ":"错!
    如果希望使用动态表名创建表
    可以使用format
    sql:='create table %s (....)';
    sql:=format(sql,[你的表名变量字符串]);
    ....
    我做过这方面的东西,一定可以!
      

  3.   

    create table (加一空):tablename (a1 char(20),a2 char(20),a3 char(20),a4 date,a5 double,a6 integer,a7 double)');
        adoquery1.Parameters.ParamByName('tablename').AsString:=edit4.Text;
      

  4.   

    记起来了,好象表名不能直接用参数表示
    你不要直接把sql语句添加到sql.add()函数里
    而是先定义一个cmdstring:string;
    cmdString:='create table '+tablename+' (a1 char(20),a2 char(20))';
    sql.add(cmdString);
    execsql;
    试试看
      

  5.   

    var
      tt,sql:string;
    begin
      tt:=edit1.Text;
      sql:='create table '+tt+'(a1 char(20) not null,'+
        'a2 char(20) not null,a3 char(20) not null,a4 datetime not null)';
      adoquery1.close;
      adoquery1.sql.clear;
      adoquery1.sql.add(sql);
      showmessage(sql);
      adoquery1.execsql;