首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi7.0+數據庫SQL語句,该如何处理

2013-12-04 
Delphi7.0+數據庫SQL語句F_add.ADOQuery1.SQL.Add(select * from gsfoods where 名称+Edit1.Text+

Delphi7.0+數據庫SQL語句
F_add.ADOQuery1.SQL.Add('select * from gsfoods where 名称='''+Edit1.Text+''' and 规格='''+Edit2.Text+''' and 单价='''+Edit6.Text+''' ');

我的數據庫“單價”這個字段是Double型,“名稱”和“規格”都是字符型,可是我在寫這一SQL語句的時間居然出錯了,顯示“标准表达式中数据类型不匹配“請問我要怎麼寫這一個可以判斷3個條件的SQL語句。
謝謝~~~


[解决办法]
不太明白你的意思,你的意思是要在写SQL语句的时候判断是否为空吗?就算可以判断也没法提示啊。建议可以在SQL之前,使用判断是否为空,或者可以使用StrToFloatDef转换。如果为空就取默认值-1。
另外尽量不要使用sql.add。或者用之前先clear(可能你做了,只是没贴出代码)。尝试一下下面的语句。

F_add.ADOQuery1.SQL.Text:='select * from gsfoods where 名称='''+Edit1.Text+''' and 规格='''+Edit2.Text+''' and 单价=' +StrToFloatDef(Edit6.Text,-1);

[解决办法]
两个原因:
1、edit6.Text为空
2、double类型字段不要加单引号


 

F_add.ADOQuery1.SQL.Add('select * from gsfoods where 名称='''+Edit1.Text+''' and 规格='''+Edit2.Text+''' and 单价='+StrUntils.IfThen(Trim(Edit6.Text)=EmptyStr,'0',Trim(Edit6.Text)));

[解决办法]
edit6.Text不会为空吧

'select * from gsfoods where 名称='''+Edit1.Text+''' and 规格='''+Edit2.Text+''' and 单价=' +Edit6.Text

热点排行