读书人

Delphi7.0+SQL句,该如何处

发布时间: 2013-12-04 17:21:02 作者: rapoo

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

读书人网 >.NET

热点推荐