数据库为SQL SERVER2000
问题:为了能检索出符合条件的前XX条记录,写了带参数的语句.可是老是提示"@P1附近有语法错.语句:
select top :xCount 字段1,字段2 from XX表 如果我不用参数,直接用
select top 10 字段1,字段2 from XX表 就能得出正解.难道TOP后面的数值不能用参数传入?
我把参数试过了integer型和word型,都不对,老报错,请问我哪儿做得不对?TOP的参数要如何传递??
急盼解答!!!

解决方案 »

  1.   

    Delphi的参数只能在Where子句中出现,其他的都是无效的。
    所以建议你用字符串组合来完成这条语句,而不要用参数。
      

  2.   

    我记得Top后面的参数是不能用参数代替的。它应该属于命令的一部分,而和其它常量不一样。只有那些真正的常量可以用参数代替。
      

  3.   

    可是如果写成这样
    SQL.Add('select top '+StrToWord(变量)+' 字段1,字段2 from XX表');
    会报字符串与数据相加啊,怎么办?
      

  4.   

    chechy说的不完全对。参数不只能出现在Where子句。比如我最常用参数的地方:
    Insert Into MyTable
    Values(:Value1, :Value2, :Value3);或
    Update MyTable
    Set(Field1 = :Value1, Field2 = :Value2, Field3 = :Value3)
    Where ID = :TheID