有一表temp含有字段a,b,c,d,e同有30000多記錄。現要更新字段e的值,在字段c,d中取較小值-字段a,b中較大的值.將兩者之差賦給e.我寫了一個函數:
function acc(x,y,z,l):Double;
Var
maxq,minq:Double;
begin
if x<y then
maxq:=y
else
maxq:=x;
if z<l then
minq:=z
else
minq:=l;
result:=minq-maxq;
end;問題一:
我用下列方法時出現acc未定義的出錯提示
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update temp set e=acc(a,b,c,d)');
ADOQuery1.ExecSQL;問題二:
我用下列方法時出現a,b,c,d未定義的出錯提示
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update temp set e='+acc(a,b,c,d));
ADOQuery1.ExecSQL;
問題三:
我用下列方法時出現a,b,c,d未定義的出錯提示
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update temp set e=:xy');
ADOQuery1.Parameters.ParamByName('xy').Value:=acc(a,b,c,d);
ADOQuery1.ExecSQL;現請問如何在SQL語句Update temp set e=中加入自己寫的函數?
function acc(x,y,z,l):Double;
Var
maxq,minq:Double;
begin
if x<y then
maxq:=y
else
maxq:=x;
if z<l then
minq:=z
else
minq:=l;
result:=minq-maxq;
end;問題一:
我用下列方法時出現acc未定義的出錯提示
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update temp set e=acc(a,b,c,d)');
ADOQuery1.ExecSQL;問題二:
我用下列方法時出現a,b,c,d未定義的出錯提示
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update temp set e='+acc(a,b,c,d));
ADOQuery1.ExecSQL;
問題三:
我用下列方法時出現a,b,c,d未定義的出錯提示
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update temp set e=:xy');
ADOQuery1.Parameters.ParamByName('xy').Value:=acc(a,b,c,d);
ADOQuery1.ExecSQL;現請問如何在SQL語句Update temp set e=中加入自己寫的函數?
解决方案 »
- DBGrid中的网址怎么直接打开?
- 使用gifimage单元,如何把已有的图片做成gif动画?
- DBGRID能像EXCEL自动编号吗?可以把左边的一格拉大吗?
- 如何设置系统输入法?
- 各位高手帮帮忙,网上哪里有能实现这个功能的DELPHI编程代码或各位有什么设计方法啊???
- 这样做错在哪 里呀:
- 我有EXE加密(PE加密保护)源代码(Delphi)出售.
- 关于用socket拷贝整个文件夹问题
- 如何让CBUILDER编译的程序离开CBUILDER环境还能运行?
- 怎样实现资源管理右边listview的效果?
- 我想使用SQL语言导入Excel文件
- 我的的两段注册表导出程序都不好用,以下是源码,请高手指教,急急急!!!!!
CASE
WHEN 布尔型结果的表达式 THEN ..
[ ...n ]
ELSE ..
END
这是Case的一种方法,另外还有一种是
Case 表达式
When ... then
when ... then
end
sql是要送到服务器去解释执行的,而你的函数是客户端delphi的函数
1 你可以在服务器上定义函数
2 你可以直接写sql
update table
set e= min(c,d) - max(a,b)
楼主确实要加入自己函数,就在数据库中自定义函数
sql server 2k中语法Create Function sample((@Data1 int,@Data2 int)
RETURNS int
AS
BEGIN
declare @total int
set @total=@data1+@data2
RETURN(@Total)
ENDsample函数可以和其他标准函数一样调用