各位大侠好:
我写select碰到这个问题,数据库中有个字段lsh是数值型:
var intsl:integer;
begin
intsl:=strtoint(trim(elsh.text));
query1.add('select * from mydb where lsh='''+intsl+'''');
select语句出错,字段lsh是数值型,于是我改成:
query1.add('select * from mydb where lsh='+intsl);
还是不行,再改成:query1.add('select * from mydb where lsh= intsl+');还是不行。
请教:针对数值型字段的条件的select语句到底该怎么写啊?
先谢谢了!!!
我写select碰到这个问题,数据库中有个字段lsh是数值型:
var intsl:integer;
begin
intsl:=strtoint(trim(elsh.text));
query1.add('select * from mydb where lsh='''+intsl+'''');
select语句出错,字段lsh是数值型,于是我改成:
query1.add('select * from mydb where lsh='+intsl);
还是不行,再改成:query1.add('select * from mydb where lsh= intsl+');还是不行。
请教:针对数值型字段的条件的select语句到底该怎么写啊?
先谢谢了!!!
intsl:String;
begin
intsl:=trim(elsh.text);
query1.add('select * from mydb where lsh='+intsl+');
可是两位的写法小弟有点看不懂,哪位兄弟能不能详细解释一下数值型子段和字符型子段在作为where条件时有什么不同啊
不管什么类型值,在拼接SQL时都是为String型的.当然了拼接SQL时要注意其类型.
query1.add('select * from mydb where lsh='''+intsl+'''');
因为query1.add 的参数是为字符串类型,'''+intsl+'''' 而这里面也为字符串类型,
哪为这整条SQL语句也为一条字符串,在DELPHI里是这样认为的,但是传到SQL后台,则会按SQL的命令进行执行;如果库里哪个字段为整型,存进去的字段就会按整行,
begin
intsl:=strtoint(trim(elsh.text));
query1.text:='select * from mydb where lsh='+inttostr(intsl);
query1.open;
intsl:String;
begin
Query1.SQL.Clear;
Query1.SQL.Add('Select * from Mydb');
Query1.SQL.Add('Where lsh ='''+intsl+'''');
query1.add('select * from mydb where lsh='''+intsl+'''');