for i:=1 to 3do
begin
s1=inttostr(i);
s:='alter table 表 add '+s1+' nvarchar(10)';
adoquery1.sql.add(s);
end;
adoquery1.exesql;
在用sql做后台数据库没有问题
在用access时提示我语法错误 
我想在access中添加类似的功能该怎么添加呢?

解决方案 »

  1.   

    参考
      adoquery1.Close;
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('alter table b add idMytest int identity(1,1)');
      adoquery1.ExecSQL;for i:=1 to 3 do
    begin
      s1=inttostr(i);
      s:='alter table 表 add '+s1+' nvarchar(10)';  //有问题
      adoquery1.sql.add(s);
    end;
    adoquery1.SQL.SaveToFile('C:/123.txt');
    看看123.txt,就知道问题出在哪里了
      

  2.   

    呵呵,adoquery一定要记住先检测状态——初始化——打开——关闭你的sql添加到adoquery中,可是没有执行啊,最后累计了三条语句,无法执行啊
      

  3.   

    一条条语句执行
    close
    clear
    add
    ExecSQL
      

  4.   

    for i:=1 to 3do
    begin
    s1=inttostr(i);
    s:='alter table 表 add '+s1+' nvarchar(10)';
    adoquery1.close
    adoquery1.sql.clear;
    adoquery1.sql.add(s);
    adoquery1.exesql;
    end;
      

  5.   

    for i:=1 to 3do
    begin
    s1=inttostr(i);
    s:='alter table 表 add '+s1+' nvarchar(10)';
    adoquery1.close
    adoquery1.sql.clear;
    adoquery1.sql.add(s);
    adoquery1.exesql;    //这一句不要写到end;下面去了:
    end;