我的代码先贴出来:
var
sqlstr:=string;
begin
sqlstr:='insert into 资产类指标 Values('+ary[1]+','+ary[2]+','+ary[3]+','+ary[4]+','+ary[5]+‘)’;
Try
ADOConnection.Execute(sqlstr);
Except
ShowMessage(Error!);
Close;
End;
End编译没错,但是每次运行到ADOConnection.Execute(sqlstr);这句的时候就出问题!
请高手解决。
我觉得问题在于,ADOConnection.Execute(字符串的长度有限制)!
var
sqlstr:=string;
begin
sqlstr:='insert into 资产类指标 Values('+ary[1]+','+ary[2]+','+ary[3]+','+ary[4]+','+ary[5]+‘)’;
Try
ADOConnection.Execute(sqlstr);
Except
ShowMessage(Error!);
Close;
End;
End编译没错,但是每次运行到ADOConnection.Execute(sqlstr);这句的时候就出问题!
请高手解决。
我觉得问题在于,ADOConnection.Execute(字符串的长度有限制)!
SQL.Add('insert into test(日期,线别,班别,厂商,机种,工单,批量,计划产量,实际产量,产量差异,差异原因,应作工时,实作工时,生产总数,不良项目,不良板数,板数DPPM,不良率,备注)');
SQL.Add('values('''+edit1.text+''','''+combobox1.Text+''','''+combobox2.Text+''','''+edit2.text+''','''+edit3.text+''','''+edit4.text+''','''+edit5.text+''','''+edit6.text+''','''+edit7.text+''','''+edit8.text+''','''+edit9.text+''','''+edit10.text+''','''+edit11.text+''','''+edit12.Text+''','''+combobox3.text+''','''+edit13.text+''','''+edit15.text+''','''+edit14.Text+''','''+edit18.Text+''')');
execsql;
close;
sql.Clear;
sql.add('select * from test order by 日期 asc');
open;
end;
sqlstr:=string;
begin
sqlstr:='insert into 资产类指标 Values('+ary[1]+','+ary[2]+','+ary[3]+','+ary[4]+','+ary[5]+‘)’;
Try
ADOConnection.Execute(sqlstr);
Except
ShowMessage(Error!);
Close;
End;
End
写个showmessage(sqlstr)看看你的sql语句对不对,主要是引号的问题!!!
如果是直接從代碼裏貼過來的,請注意
sqlstr:='insert into 资产类指标 Values('+ary[1]+','+ary[2]+','+ary[3]+','+ary[4]+','+ary[5]+‘)’;
最後一個 ‘)’這肯定是個錯的。
其實很簡單,直接在執行前先 Show 出來看下不就一切清楚了
如上,
sqlstr 到了sql 里就成了insert into 资产类指标 Values('+ary[1]+','+ary[2]+','+ary[3]+','+ary[4]+','+ary[5]+')这样子才是对的。
1,字符串类型的数组
sqlstr:=
'insert into 资产类指标 Values('''
+ ary[1]
+ ''','''
+ ary[2]
+ ''','''
+ ary[3]
+ ''','''
+ ary[4]
+ ''','''
+ ary[5]
+ ''')'; 2.如果是int型的数组
sqlstr:=
'insert into 资产类指标 Values('''
+ inttostr(ary[1])
+ ''','''
+ inttostr(ary[2])
+ ''','''
+ inttostr(ary[3])
+ ''','''
+ inttostr(ary[4])
+ ''','''
+ inttostr(ary[5])
+ ''')'; 3.其他类型的依此类推。希望楼主明白,主要还是引号的问题。
2,SQL问题,你的SQL语句是insert into 资产类指标 Values(a,b,c,d,e)
建议表明加括号,然后把药插入的列名也显示出来,SQL有时也会出这种莫名其妙的问题
应该为:insert into [资产类指标](a列,b列,c列,d列,e列) Values('a','b','c','d','e')3,引号问题,如果你插入的是数字,语句insert into [资产类指标](a列,b列,c列,d列,e列) Values(a,b,c,d,e)这样就行, DELPHI里不变sqlstr:='insert into [资产类指标](a列,b列,c列,d列,e列) Values('+ary[1]+','+ary[2]+','+ary[3]+','+ary[4]+','+ary[5]+')'; 如果你插入的是字符串,语句就得 insert into [资产类指标](a列,b列,c列,d列,e列) Values('a','b','c','d','e') DELPHI里的语句就是sqlstr:='insert into [资产类指标](a列,b列,c列,d列,e列) Values('''+ary[1]+''','''+ary[2]+''','''+ary[3]+''','''+ary[4]+''',
'''+ary[5]+''')';OK明白了吧,继续试