我使用insert into 为何不能将记录存入表中?
Fstr:='f1,f2,f3,f4';
Vstr:='result1,result2,result3,result4';
with adoquery2 do
begin
close;
sql.clear;
sql.add('insert into YY_MainData');
sql.add('(:P1) ');
sql.add('values(:p2)');
Parameters.ParamByName('p1').value := Fstr;
Parameters.ParamByName('p2').value := Vstr;
execSQL;
end;
Fstr:='f1,f2,f3,f4';
Vstr:='result1,result2,result3,result4';
with adoquery2 do
begin
close;
sql.clear;
sql.add('insert into YY_MainData');
sql.add('(:P1) ');
sql.add('values(:p2)');
Parameters.ParamByName('p1').value := Fstr;
Parameters.ParamByName('p2').value := Vstr;
execSQL;
end;
解决方案 »
- 各位大能,Cxgrid回车跳转问题
- IdTCPServer发送数据不成功,有没能人来帮帮忙啊?
- delphi如何在excel里划一条带箭头的线条?
- 求助!!想把文件传输做成一个dll
- InfoPower中的TwwGrig显示checkbox的问题
- 怎样关闭这样的程序,两个独立的程序a,b,都是我用D写的,现需要在b中关闭a,语法请进来看可,谢谢???
- 如何用程序清除image里的图象?
- =======清除SQL SERVER的日志文件========
- 请问在Delphi中什么函数相当于VB中的IIF?即根据表达式的值,来返回两部分中的其中一个。
- 怎样在Delphi中引用视图(View)?
- 求:BOM展开算法的源码.
- 高分!mediaplayer和打印问题,谢谢了,分不够再加
Vstr1:='result1';
vstr2:='result2';vstr:='result3';vstr4:='result4';
with adoquery2 do
begin
close;
sql.clear;
sql.add('insert into YY_MainData');
sql.add('(:P1) ');
sql.add('values(:p2)');
sql.text:='insert into YY_MainData'+P1+' values(:p2,:p3,:p4,p5);
Parameters.ParamByName('p2').value := Vstr1;
Parameters.ParamByName('p2').value := Vstr2;
Parameters.ParamByName('p2').value := Vstr3;
Parameters.ParamByName('p2').value := Vstr4;
execSQL;
end;
//看看書上的例子,怎麼能這麼寫呢?難怪樓上說你離譜!--------------------------------------------------------------------------
| |
| 抓你頭 踢你臉,嘴裡唱著心太軟 |
| 先踢腿 後踢背,胯胯軸子踹稀碎; |
| 腰打斷 腿打折,肋巴扇子蹬骨折; |
| 先抽筋 再放血,腦袋瓜子打稀癟! |
| 服不? |
| |
--------------------------------------------------------------------------
我想说的是,我有一张表,其中有二十几个字段,但是我只想将部分记录存入.
Fstr:='f1,f2,f3,f4';是字段F1,字段F2,字段F3,字段F4
Vstr:='result1,result2,result3,result4';是字段1中的数据,...,字段4中的数据 而Fstr,Vstr中的字段和数据可以增加和减少的.
这样就不用更改sql中的语句了.请高手帮我想一下,谢谢!
s := s+'values(''%s'',''%s'',''%s'',''%s'')';
s := Format(s,[result1,result2,result3,result4']);
with adoquery2 do
begin
SQL.Text := s;
ExecSQL;
Close;
end;
adoquery1.post
就到库里了
改成Vstr:=''''+result1+''''+','+''''+result2''''+','+...
sql.Text:='insert into YY_MainData ('+Fstr+') values('+vstr+')';可是还有点不明白,为什么只能用
sql.Text:='insert into YY_MainData ('+Fstr+') values('+vstr+')';
而不能用下面的语句? sql.add('insert into YY_MainData');
sql.add('(:P1)');
sql.add(' values(:p2)');
Parameters.ParamByName('p1').value := Fstr;
Parameters.ParamByName('p2').value := Vstr;
Parameters.ParamByName('p1').value := Fstr;
Parameters.ParamByName('p2').value := Vstr;
的写法不对!
Parameters是delphi里面有用的一个中间对像,类似的还有Tlist和TStringlist这些
也是一种平台的技巧,搞懂很有用,不过不能太依赖