求一个select top后面接变量的语句。此变量的值由VB的一个Listbox给出。
这个问题好些人提过,但是大家给的代码都是这样的: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?
------解决方案--------------------VB里应该怎么写我不知道,给你一个思路。
在VB里生成SQL语句,然后再联到数据库进行查询
dim a
dim sql
a=listbox.text
sql= 'select top '+str(a)+ ' * from table '
这样根本不用写什么存储过程,只是一条普通的SQL语句。
------解决方案--------------------CREATE PROCEDURE test_proc
@n tinyint
AS
DECLARE @sql nchar(100)
SET @sql = ' select top ' + rtrim(@n) + ' * from table '
EXEC(@sql)
GO
------解决方案--------------------ayzwd(菜鸟老三) ( )
我觉得的方法合适,这样传进去是合法的SQL语句,在SQL里做变量的话,编译不过去
------解决方案--------------------xxzxwsx() 的可以
用存储过程