数据库:(分别为英文表名称、中文表名称、英文字段、中文字段)
ENBMC CNBMC ENZD CNZD
A001 人员表 C0001 年龄
A001 人员表 C0002 出生日期
请问怎么把 : ~人员表.年龄~ := year(Getdate()) - year(~人员表.出生日期~)
翻译成: A001.C0001 := year(Getdate()) - year(A001.C0002)然后怎么些个过程去执行上面的语句:
update A001 set A001.C0001=year(Getdate()) - year(A001.C0002)
ENBMC CNBMC ENZD CNZD
A001 人员表 C0001 年龄
A001 人员表 C0002 出生日期
请问怎么把 : ~人员表.年龄~ := year(Getdate()) - year(~人员表.出生日期~)
翻译成: A001.C0001 := year(Getdate()) - year(A001.C0002)然后怎么些个过程去执行上面的语句:
update A001 set A001.C0001=year(Getdate()) - year(A001.C0002)
解决方案 »
- 请给个DELPHI2010的下载地址,有用的话给100分(最先的那个)!绝不食言.
- 如何让internet explorer打开指定页面?
- HELP,编译时,提示出错,不明白为什么?
- usb接收到的数据能转换为232com吗
- 当 htmlhelp 的参数 uCommand=HH_DISPLAY_TEXT_POPUP时, 如何调用CHM帮助文档
- 有关函数返回结果集的问题--50分
- 存储过程控件TADOStorProc1控件怎么用啊!!!
- 送分了,字符串提取。在线等待,问题解决就结贴。
- 用程序控制NT服务的几个问题:
- 119! 送你25分,Delphi中的‘控件’类型是什么?
- 关于ado参数传递
- 菜鸟求教:用adoquery在两个表间找数据怎么样找?
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, StrUtils;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;type
TSwitchInfo = record
ENBMC: string;
CNBMC: string;
ENZD: string;
CNZD: string;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
dz: array of TSwitchInfo;
mStr: string;
i: integer;
mCount: integer;
begin
//初始化对照表,示例为固定初始化,局部变量
//实际应用时改为全局变量,并根据数据库内的情况来初始化
mCount := 2;
SetLength(dz,mCount); dz[0].ENBMC := 'A001';
dz[0].CNBMC := '人员表';
dz[0].ENZD := 'C0001';
dz[0].CNZD := '年龄'; dz[1].ENBMC :='A001';
dz[1].CNBMC :='人员表';
dz[1].ENZD := 'C0002';
dz[1].CNZD := '出生日期'; //要转换的表达式
mStr := '~人员表.年龄~ := year(Getdate()) - year(~人员表.出生日期~)';
mStr := StringReplace(mStr,'~','',[rfReplaceAll]); //第一次转换,变为英文表达式
for i:=0 to mCount-1 do
mStr := StringReplace(mStr,dz[i].CNBMC + '.' + dz[i].CNZD
,dz[i].ENBMC + '.' + dz[i].ENZD,[rfReplaceAll]); //第二次转换,变为sql语句
mStr := StringReplace(mStr,':=','=',[rfReplaceAll]);
mStr := 'UPDATE ' + LeftBStr(mStr,Pos('.',mStr)-1) + ' SET ' + mStr;
showmessage(mStr);
end;end.