本帖最后由 youlostme 于 2010-09-25 13:16:41 编辑

解决方案 »

  1.   

    你认为SQL语句有问题就把他显示出来
    放到查询分析器里面执行看不就知道错在那里了
      

  2.   

    我也不知道错在哪里了啊。我觉得应该是没什么问题,有问题也是sql语句错了。谁帮我写出正确的sql啊?
      

  3.   

    指出几个错误吧
    1. array[0..100]与  for i:=1 to 100  num[0]的值无法插入
    2. test表只有一个字段么? 如果不是 请参照SQL INSERT语法指明字段
    3. 一般ADOQUERY执行SQL语句的方式为:
       with adoquery1 do 
         begin
           close;
           SQL.Clear;
           SQL.Add('YOURSQL');
           ExecSQL;
           end;
      

  4.   

    谢谢楼上的。你说的第一个问题改正了
    第二个问题,test表确实只有一个字段,因为是我测试用的,没有其他字段。我把第一个问题改正了,执行  for i:=1 to 100 do
      begin
      adoquery1.SQL.Clear;
      adoquery1.SQL.Add('insert into test values(num[i])');
      adoquery1.ExecSQL;
      end;还是错误,提示我“在此上下文中不允许使用‘num’,此处只允许使用常量、表达式或变量,不允许使用列名。难道我里面写的num[i]是列名?如果这样的话,那么,我的目的怎么达到呢?
      

  5.   

    试下如下的方式:
    adoquery1.SQL.Add('insert into test values('+num[i]+')');
      

  6.   

    D里面的变量在SQL里面是无法识别的
      

  7.   


    不行,提示错误:incompatible types: string an integer
      

  8.   

    刚忘了类型转换,改为如下:
    adoquery1.SQL.Add('insert into test values('+inttostr(num[i])+')');
      

  9.   

    可是我的数据表中是int型的。这样插入可以吗?
      

  10.   


    这样成功了。可我有个问题。我数据库表中是int型,你的语句用inttostr,变成了string型了。这样的操作不会有问题吗?
      

  11.   

    不会 如果你的数组是字符串数组的话 就要注意处理了adoquery1.SQL.Add。。  这个方法处理的是一个字符串 所以要转化下。 这个字符串类型的SQL语句去执行的时候,会自动识别那个整数的,所以没有问题