这个问题好些人提过,但是大家给的代码都是这样的:set   @abc=5
我这的问题跟别人的不一样。第一个问题是:
我想从VB的一个Listbox取值,赋给@abc,也就是大致这样的:set @abc= listbox控件对象.属性
Listbox控件里面有1、2、3、4、5、6...19、20这20个选项。通过选择这20个数字中的一个,从而规定查询返回结果的条数。
希望大家能帮助给出正确完整的代码。也就是说,在如下代码基础上,应该怎么改,才能实现我的要求:declare   @abc   int   
set   @abc=listbox控件对象.属性 <---我主要是不知道“set   @abc=”后面能否是个变量?如果可以是变量,代码应该怎么写?
exec('select   top   '   +   @abc   +   '   *   from   table   ')第二个问题是:
这段代码前后是否有必要加上CREATE   PROCEDURE....AS和Go?

解决方案 »

  1.   

    VB里应该怎么写我不知道,给你一个思路。在VB里生成SQL语句,然后再联到数据库进行查询dim a
    dim sql
    a=listbox.textsql='select top '+str(a)+' * from table'这样根本不用写什么存储过程,只是一条普通的SQL语句。
      

  2.   

    CREATE PROCEDURE test_proc
      @n tinyint
    AS
    DECLARE @sql nchar(100)
    SET @sql = ' select top ' + rtrim(@n) + ' * from table'
    EXEC(@sql)GO
      

  3.   

    VB里调用存储过程时,将listbox的值作为参数传入
      

  4.   

    ayzwd(菜鸟老三) ( )我觉得的方法合适,这样传进去是合法的SQL语句,在SQL里做变量的话,编译不过去
      

  5.   

    xxzxwsx()  的可以
    用存储过程