query 增加记录问题(50分)

  • 主题发起人 主题发起人 wohoot
  • 开始时间 开始时间
W

wohoot

Unregistered / Unconfirmed
GUEST, unregistred user!
现有edit1,edit2,edit3,edit4......等,要用query的SQL语句将它们的text作为一条记录插入到表A中,请问代码怎么样写?
 
Query1.Open;//打开数据库
Query1.Append;//添加空行
Query1.FieldByName('列名').AsString :=Edit1.Text;
Query1.FieldByName('列名').AsString :=Edit2.Text;
Query1.FieldByName('列名').AsString :=Edit3.Text;
Query1.post;//保存
 
Query1.AppendRecord([Edit1.Text, Edit2.Text, Edit3.Text])

不过要按照字段顺序写
 
对于QUERY进行添加操作,就要看你的QUERY的SQLTEXT是什么样子的了,一般不可进行多表的联合INSERT值,你所选的列名在SQL语句是必须有才可,在此不建义使用可用Table ,当QUERY进行POST时一检测STATE值,做到程序安全,
 
ado:
var
adoquery:TAdoquery;
begin
adoquery:=TAdoquery.create(nil);
adoquery.connection:=adoconnection1;
try
with adoquery do
begin
sql.clear;
sql.text:='insert into table(id,name) values(:id,:name)';
parameters.parambyname('id').value:=1;
parameters.parambyname('name').value='test';
execsql;
end;
finally
freeandnil(adoquery);
end;
end;
 
with ADOQuery1 do
begin
close;
sql.clear;
sql.add('insert into A values (:id,:names,:age)');
parameters.parambyname('id').values := trim(Edit1.text);
parameters.parambyname('names').values := trim(Edit2.text);
parameters.parambyname('age').values := trim(Edit3.text);
ExecSQL;
Application.messagebox('数据添加成功!','提示信息',64);
end;
with ADOQuery1 do
begin
close;
sql.clear;
sql.add('SELECT * FROM A');
open;
end;
 
Query1.FieldByName('××').AsString
可以从query中取出数值
但是增加记录时 还是用sql语句巴
 

Similar threads

S
回复
0
查看
859
SUNSTONE的Delphi笔记
S
S
回复
0
查看
784
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部