str:string;
begin
str:=label27.caption+','+label28.caption+','+edit1.text+......;adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into 维修部(id,id2,id3,.......,) values('''+str+''') ');
adoquery1.SQL.Add('values(' '''+label27.caption+''','''+label28.caption+''' ')');
adoquery1.ExecSQL;
end;
我的大概意思是想插入入一条有很多个字段的记录,显然会超过adoquery字符串数255的限制,请问该如何改我上面的语句?
ADOCommand1.Execute;
sql语句长度 跟 网络包 大小 有关。
一般是 254 兆。
我以前1-2兆的 语句 运行 没问题
ADOquery1.sql.Clear;
sqlstr:='SELECT * FROM 维修部'; //关联表
ADOquery1.SQL.Add(sqlstr);
ADOquery1.Open; //插入新记录
ADOquery1.Insert;
ADOquery1.fieldbyName('id').Value:=label27.caption;
ADOquery1.FieldByName('id2').Value:=label28.caption;
ADOquery1.FieldByName('id3').Value:=...;
...
ADOquery1.Post;
我采用这种办法,把Tmemo控件的Text值(几千个字)都插入记录中。
然后下面用
Adoquery.FieldByName('').value := 值
Adoquery.FieldByName('').value := 值
Adoquery.FieldByName('').value := 值
最后用
ADOQuery.Post
或
Adoquery.UpdateBatch()或使用
adoquery.sql.loadfromfile(file:string);
然后执行
一般是 254 兆。
我说的 也是这个
adoquery.sql.text:='............';//一般最大是 254 兆