如果字段的来源不同,要怎样插入呀??(100分)

  • 主题发起人 主题发起人 xiaodaihehehe
  • 开始时间 开始时间
X

xiaodaihehehe

Unregistered / Unconfirmed
GUEST, unregistred user!
插入一条记录,这条记录的一部分字段要从其他表中转移过来,另一部分字段要从edit控件获得,
我先用insert into插入在其他表的字段,
with query1 do
begin
close;
sql.add(’insert into 表a’);
sql.add(’select 姓名,工资 from 表b’);
sql.add(’where 工资=”444”’);
execsql;
end;
可是对于在edit中的内容要怎样加入到相应的“编码”字段中去呀,
各位好心的大侠帮帮忙呀!!![:(]
 
with query1 do
begin
close;
sql.add(’insert into 表a’);
sql.add(’select 编码=:Code, 姓名,工资 from 表b’);
sql.add(’where 工资=”444”’);
Parameters.ParamByName('Code').Value:=Edit.Text
execsql;
end;
 
with query1 do
begin
close;
sql.add(’insert into 表a’);
sql.add(’select 姓名,工资,'''+trim(edit1.text)+''' from 表b’);
sql.add(’where 工资=”444”’);
execsql;
end;

注1:'''+trim(edit1.text)+'''是串,结果:
select 姓名,工资,'aaa' from 表b
注2:edit1.text不为串要相应转换
 
with query1 do
begin
close;
sql.add(’insert into 表a’);
sql.add(’select 姓名,工资 from 表b’);
sql.add(’where 工资=”444”’);
sql.add(’update 表a’);
sql.add(’set field='+edit1.text);
-----------
sql.add(’where 工资=”444”’);
execsql;
end;
注:根据field数据类型确定edit1.text的引用方式
 
to leechange:
select 编码=:Code, 姓名,工资 from 表b
这一段代码有问题,总执行不过去呀,而且,编码这个字段不在表b中它是表a中的呀

to smallbs:
大虾,用你的方法,执行时总提示update这句有问题,insert into和update能写在一起吗?
 
在smallbs代码中的update前加个分号;
 
mickeyzy1000说的是对的,你再仔细看看
 
insert into和update可以写在一起,在两者之间不加符号或加什么符号取决于数据库类型
 
二楼的大虾,我有点不太懂mickeyzy1000中所说的'"+trim(edit.text)+"'串,
它是代表一个字段,还是数据呀??
 


with query1 do
begin
close;

sql.clear;

sql.add(’insert into 表a’);
sql.add(’select 姓名,工资 from 表b’);
sql.add(’where 工资=”444”’);
execsql;

close;
sql.clear;
sql.text:=' update 表a set 编码=:pp where where 工资=”444”';
Parameters.ParamByName('pp').Value:=Edit.Text;
execsql;


end;

 
不好意思才散分
不过,散分也蛮辛苦的嘛。:)
谢谢各位捧场!!!!!!!
 
后退
顶部