求个程序实现思路
表a(库编码,价格)
表b(材料编码,价格)
表c(库编码,材料编码,转换公式)
现从b表读取b.材料编码,根据对应表C表中与之对应的库编码,取出a.价格的值,再根据C中的转换公式,计算出b.价格,存入b表.
如:
a(1001,5)
b(1200,x)
c(1001,1200,{1001}/50)
{1001}:指从a表取出的价格的值
算出X存入b
这样的过程要怎么通过程序来实现?
[解决办法]
- Delphi(Pascal) code
我简单的写了一个粗糙了点,省略的ado的查询部分和执行更新部分,你参考一下
procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
index:Integer;
j:Integer;
sqlstr:string;
function getstr(a:string):string;
begin
//这里的a传入的是库编码,使用ado对数据库进行一次查询返回返回价格
Result:='查询的价格转换成字符串返回';
end;
begin
s:='{123}/50*{234}+{123}-10';
index:=pos('{',s);
while index > 0 do
begin
j:=pos('}',s );
s:=copy(s,1,index-1)+getStr( copy( s,index+1,j-index-1 ) )+copy( s,j+1,length(s)-j);
index:=pos('{',s);
end;
sqlstr:='update 表b set 价格='+s+' where 材料编码=需要更新的材料编码' );
//使用ado执行这条sql
end;