本人运行程序后得到的是二维数组 想把它保存在数据库的一个表中 该怎么办啊    for t:=1 to 24 do
   begin
   query1.close;
   query1.sql.text:='insert into chuli2 values('t','P_Gbest[t,1]','P_Gbest[t,2]','P_Gbest[t,3]','P_Gbest   [t,4]','P_Gbest[t,5]','P_Gbest[t,6]','P_Gbest[t,7]','P_Gbest[t,8]','P_Gbest[t,9]','P_Gbest[t,10]',shiduan ,unit1,unit2,unit3,unit4,unit5,unit6,unit7,unit8,unit9,unit10)';
   query1.execsql;
end;
  
     P_Gbest[t,1]   P_Gbest[t,2]。。 。。为二维数组
运行时出现错误:
      Missing operator or semicolon
 insert 中能使用数组变量吗 ?球高手解答

解决方案 »

  1.   

    query1.sql.text:='insert into chuli2 values(''t'','+quotedstr(P_Gbest[t,1])+','+...+')';
    先看看sql.text的内容是不是可以直接在查询分析器里执行的
      

  2.   

    可以使用数组变量,只是你的sql语句拼接有问题,造成不能保存。
      

  3.   

    与数组变量没关系,是你的Sql语句写错了!你先就写入一个值测试通过再加其他的
      

  4.   

    写个简单的呢参考下
    var 
    i:integer;
    name:string;
     begin
    q.close;             //这个数据库是nvachar,int
    q.sql.text:='insert tworker (workername,workid) values('''+name+''','+inttostr(i)+')';
    q.execsql;
    end;