我想實現這樣一種功能﹐你看該怎么實現!!
 由外部傳進兩個參數﹐一個參數作為字段名﹐另一個參數作為要過濾的值,也就是說要過濾的字段名和參數值都是動態的,用戶可自行定義!
問﹕1﹑存儲過程該怎么寫﹖
    2﹑在delphi中這個過濾參數字符串該怎么調用。就是這個Filter字符串如何設置!!!

解决方案 »

  1.   

    假設有一sql server查詢語句
     select * from table1
     where goodsid='tmb1158'
    請問能不能把goodsid字段名和查詢值tmb1158都作為參數?declare @k1 nvarchar(20)
    declare @k2 nvarchar(20)
      select * from table1
      where @k1=@k2
    但查詢不到任何結果??請幫忙解決!!
      

  2.   

    有必要用存储过程吗?
    adoqueryadd('select * from table1 where q:=:qq');
    parameters.parambyname('q').value:=字段名称
    parameters.parambyname('qq').value:=参数的值
    open;其实存储过程也是一样的
      

  3.   

    To angle097113:
      請問用存儲過程,如何實現呢??
      

  4.   

    declare @k1 varchar(50)
    declare @k2 varchar(50),@k3 varchar(800),@K4 VARCHAR(5000)SELECT @K1 = 'docdate = '
    SELECT @K2 = '2003-05-31'
    SELECT @K3 = @K1 + ''''+@K2+''''
    SELECT @K4 = '  select * from tmptable where '+ @K3
    PRINT @K4
    EXEC(@K4)可以给一点分了吧,
      

  5.   

    /*
    bighead 2004-10-14
    功能: 输入表名,字段名,过滤值
    备注:只适用于过滤值为数值(整形等)的情况,
               也可以添加显示字段的选择,辨析过滤字段的类型等功能
    */
    CREATE procedure test 
    @tableName varchar(50),  --长度自己定义
    @fieldName varchar(50),  --长度自己定义
    @value varchar(50)    --长度自己定义
    as
    declare @SqlStr nvarchar(200)set @SqlStr=N'select *  from '+@tableName+' where '+@fieldname+'='+@valueEXECUTE sp_executesql @SqlStr
    GO
      

  6.   

    以上的写在sql server中至于设置filter  adoquery1.Filter:='';//填入你想要过滤的东东,如 adoquery1.Filter:='id=1';
      adoquery1.Filtered:=true;
      

  7.   

    我靠!原来store procedure可以这样写的哈哈!这跟不写有什么区别啊!而且这样很不安全啊,你没对列进行判断你怎么知道你的SQL就一定能运行啊!其实还是还是在程序里面实现要好一些!