select * from Table where S_State=n   其中:S_State为整形,n也为整形。
在d6中出现错误,请问这条语句怎么样写啊!

解决方案 »

  1.   

    query1.sql.clear;
    query1.sql.add('select * from Table where S_State=:n');
    query1.parambyname('n').asinteger=参数;
    if query1.active then query1.close;
    query1.open;
      

  2.   

    你代delphi中是怎么写的?
     
    with  adoquery do
      begin
         close;
         sql.clear;
         sql.add('select * from table where s_state=:s');
         parambyname('s').value:=n;
         prepare;
         open;
      end;
      

  3.   

    我的代码中是:
    with  adoquery do
      begin
         close;
         sql.clear;
         sql.add('select * from table where s_state=n');prepare;
         open;
      end;
      

  4.   

    我的代码中是:
    with  adoquery do
      begin
         close;
         sql.clear;
         sql.add('select * from table where s_state=n');prepare;
         open;
      end;其中:S_State为整形字段,n为整形变量!
      

  5.   

    楼上几位那样写比较规范保险,但是不觉得select * from Table where S_State=n 这样有什么错误,是不是还有其他地方错误?要么。。是不是又是ADO的问题(你用的是ADO么)
      

  6.   

    不好意思,没有注意看把代码贴出来了,你换一个ADOCONNECTION的PROVIDER试试
      

  7.   

    你的变量是在DELPHI里声明的吗 那SQL应该不认得吧 
    sql.add('select * from table where'+ inttostr(s_state)+'='+''''+inttostr(n)+'''');
    试试
      

  8.   

    s_state你也是整形?但是字段名怎么可能是整型呢 在TQUERY里面参数前面要加 :
      

  9.   

    错了错了   不好意思  唉 被老婆气昏了  
    整型不用加‘’的
     sql.add('select * from table where'+ inttostr(s_state)+'='+inttostr(n));
    或者
    sql.add('select * from table where'+ inttostr(s_state)+'=:n);
    adoquery.parameters.ParamByname('n').Value :=n; 
    open;
      

  10.   

    sql.add('select * from table where  s_state='''+inttostr(n)+'''');
    试一下
      

  11.   

    sqlstr:=format('select * from table where s_state=%d',['''+n+''']);
      

  12.   

    sqlstr:=format('select * from table where s_state=%d',['''+n+''']);
      

  13.   

    adoquery1.sql.add('select * from Table where S_State='+n+' ');
    整形变量 应该使用 '+n+' 使用单绰号及加号来引用 其实对于整形变量 ,在数据库里定义为字符型还好,避免了这个引用的错误,需要用的时候再转回整形就行了
      

  14.   

    with ADOquery1 do
    begin
      Close;
      sql.clear;
      sql.add('select * from Table where S_State=:s');
      parambyname('s').AsInteger=n;
      open;
    end;
      

  15.   

    with ADOquery1 do
    begin
      Close;
      sql.clear;
      sql.add('select * from table where  s_state='''+inttostr(n)+'''');
      parambyname('s').AsInteger=n;
      open;
    end;