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)));