我用ADO时是这样写的.
var i:integer;
with adoquery1 do
begin
close;
sql.clear;
sql.add('select distinct 物料编码 where zd_4 where 订单号码=:a and 公司款号=:b');
parameters.parambyname('a').value:=trim(cxcombobox1.text);
parameters.parambyname('b').value:=trim(cxcombobox2.text);
open;
end;
for i:=0 to adoquery1.recordcount-1 do
begin
wiht adoquery2 do
begin
close;
sql.clear;
sql.add('select distinct 物料编码,物料类别,主显,次显 from zd_3 where 订单号码=:a and 公司款号=:b and 物料编码=:c');
parameters.parambyname('a').value:=trim(cxcombobox1.text);
parameters.parambyname('b').value:=trim(cxcombobox2.text);
parameters.parambyname('c').value:=adoquery1.fieldbyname('物料编码').value;
open;
end;
with adoquery3 do
begin
close;
sql.clear;
sql.add('update zd_4 set 物料类别=:a,主显=:b,次显=:c where 订单号码=:d and 公司款号=:e and 物料编码=:f');
parameters.parambyname('a').value:=adoquery2.fieldbyname('物料类别').value;
parameters.parambyname('b').value:=adoquery2.fieldbyname('主显').value;
parameters.parambyname('c').value:=adoquery2.fieldbyname('次显').value;
parameters.parambyname('d').value:=trim(cxcombobox1.text);
parameters.parambyname('e').value:=trim(cxcombobox2.text);
parameters.parambyname('f').value:=adoquery1.fieldbyname('物料编码').value;
exesql;
end;
adoquery1.next; end
现在想把上面的写进SQL储存过程中,不知道如何写请教了.
var i:integer;
with adoquery1 do
begin
close;
sql.clear;
sql.add('select distinct 物料编码 where zd_4 where 订单号码=:a and 公司款号=:b');
parameters.parambyname('a').value:=trim(cxcombobox1.text);
parameters.parambyname('b').value:=trim(cxcombobox2.text);
open;
end;
for i:=0 to adoquery1.recordcount-1 do
begin
wiht adoquery2 do
begin
close;
sql.clear;
sql.add('select distinct 物料编码,物料类别,主显,次显 from zd_3 where 订单号码=:a and 公司款号=:b and 物料编码=:c');
parameters.parambyname('a').value:=trim(cxcombobox1.text);
parameters.parambyname('b').value:=trim(cxcombobox2.text);
parameters.parambyname('c').value:=adoquery1.fieldbyname('物料编码').value;
open;
end;
with adoquery3 do
begin
close;
sql.clear;
sql.add('update zd_4 set 物料类别=:a,主显=:b,次显=:c where 订单号码=:d and 公司款号=:e and 物料编码=:f');
parameters.parambyname('a').value:=adoquery2.fieldbyname('物料类别').value;
parameters.parambyname('b').value:=adoquery2.fieldbyname('主显').value;
parameters.parambyname('c').value:=adoquery2.fieldbyname('次显').value;
parameters.parambyname('d').value:=trim(cxcombobox1.text);
parameters.parambyname('e').value:=trim(cxcombobox2.text);
parameters.parambyname('f').value:=adoquery1.fieldbyname('物料编码').value;
exesql;
end;
adoquery1.next; end
现在想把上面的写进SQL储存过程中,不知道如何写请教了.
解决方案 »
- 请教delphi自带的f1book如何将修改后的数据保存至数据库里?
- 请问如何把一个treeview里的数据导入到access数据库中,能使节点编号唯一?
- 对某一窗口的canvas截图有点问题,请帮忙看看
- 怎样使鼠标变成不断翻滚的沙漏?
- 那位高手能告诉我金额小写转化成大写(如:123.05转化成'壹百贰拾叁块伍毛')
- 如何在EDIT中屏蔽DELETE键啊!
- 如何在TXT文本中的某一行追加数据,请详解
- 转一个程序员对一个软件的总结
- RTTI中的TTypeInfo有些奇怪
- ehlib->DbgridEH问题,就只有这么一点可用分了,还是请达人帮忙。
- 对say goodbye to D7的看法。
- 有没有现成免费的delphi输入文档编辑框?
手写,你自己测测update zd_4
set 物料类别= z10.物料类别,主显= z10.主显,次显= z10.次显
from zd_4 z4,(select distinct 物料编码,物料类别,主显,次显 from zd_3 where 订单号码=:a and 公司款号=:b and 物料编码 in (select distinct 物料编码 where zd_4 where 订单号码=:a and 公司款号=:b)) z10
where z4.订单号码=z10.订单号码 and z4.公司款号=z10.公司款号 and z4.物料编码=z10.物料编码
@Orderon varchar(1000),
@Companyon varchar(1000)
AS
begin
DECLARE @id INT,@count int
DECLARE @Orderontwo varchar(1000)
DECLARE @Categories varchar(1000)---物料类别
DECLARE @Main varchar(1000)--主要
DECLARE @Minor varchar(1000)--次要select distinct [物料编码],IDENTITY(int,1,1) AS ID_Num into #temp
from zd_4 where [订单号码]=@Orderon
and [公司款号]=@Companyonselect @count=count(distinct [物料编码]) from zd_4
where [订单号码]=@Orderon
and [公司款号]=@Companyonset @id=1while @id<>@count
begin
select @Orderontwo=[物料编码] from #temp
where ID_Num=@id
select distinct [物料编码],@Categories=[物料类别],@Main=[主显],@Minor=[次显] from zd_3
where [订单号码]=@Orderon and
[公司款号]=@Companyon and
[物料编码]=@Orderontwo
update zd_4 set [物料类别]=@Categories,[主显]=@Main,[次显]=@Minor
where [订单号码]=@Orderon and
[公司款号]=@Companyon and [物料编码]=@Orderontwoset @id=@id+1
endend
var
A,B,vSQl:string;
begin
A:=Quotedstr(Trim(ComboBox1.Text));
B:=Quotedstr(Trim(ComboBox2.Text)); vSQl:='update zd_4 set 物料类别=zd_3.物料类别,主显=zd_3.主显,次显=zd_3.次显'
+' From zd_4 join zd_3 on zd_4.订单号码=zd_3.订单号码'
+' and zd_4.公司款号=zd_3.公司款号 and zd_4.物料类别=zd_3.物料类别'
+' and zd_4.订单号码='+A+' and zd_4.公司款号='+B; ADOQuery1.Close;
ADOQuery1.SQL.Text:=vSQl;
ADOQuery1.ExecSQL;
end;