AdoQuery+SQL Server 与AdoQuery + ACCESS中的SQL区别? |
尚未結案
|
hrbshen
一般會員 發表:10 回覆:11 積分:4 註冊:2005-04-12 發送簡訊給我 |
我在AdoQuery+ACCESS中写如下SQL可以正常运行
select * from table where false or field1>0...open
但此语句在SQL Server2000中却不能。
为什么?应该如何写? 另外一个问题:(adoquery access)
我在Windows xp delphi中编写的如下SQL,可以正常运行,但在Windows 98环境下显示的不是正确的数据。是什么原因
select dept, sum(fee) as fees * :rate;
from table;
where ....;
group by dept;
parambyname('rate').value := rate;
open;
在编写的机器(Windows XP)中fees得数正确,但在Windows98中结果不正确,看不出规律。 發表人 - hrbshen 於 2005/08/30 15:15:04
|
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
|
hrbshen
一般會員 發表:10 回覆:11 積分:4 註冊:2005-04-12 發送簡訊給我 |
引言: 1. select * from table where field1>0 // "false or" 沒用拿掉 2. parambyname('rate').value := rate; 改為 parambyname('rate').AsFloat := rate; 試試 也有可能是 XP/98 Access 版本不同或ADO版本不同造成的.第1个问题中where 中加入 false or 的原因: 让用户自已选择“一些”查询条件。即如果选择了field1,则where中加入对它的判断。 完整的例子是: sql.add('where false'); if length(edit1.text)>0 then begin sql.add('or field1> :edit1'); parameters.parambyname('edit1').value := edit1.text; end; if length(edit2.text)>0 then ............... 第二个问题: 我也试过 parambyaname('rate').asfloat := rate;错误亦然。 |
malanlk
尊榮會員 發表:20 回覆:694 積分:577 註冊:2004-04-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |