注册 登录
编程论坛 VB6论坛

在VB中如何执行动态SQL语句

xfwxian 发布于 2016-11-23 15:52, 2818 次点击
在SQL中,当表名为变量时,可以使用动态语句,比如:
declare @a nvarchar(55)
set @a= 'BA_BAZLFL'
exec('select * from ' +@a+ '')
这几个语句同时执行,可以达到和'select * from BA_BAZLFL’一样的效果。
如何通过VB来执行这段动态语句呢?
7 回复
#2
风吹过b2016-11-23 16:12
VB执行时,提交SQL命令给引擎,
你动态语句,你可以改写为 VB 支持的命令,最后生成最终的SQL命令提交吗?

你举的例子是 MSSQL 的存储过程吗? VB可以调用存储过程,与查询一样的调用。
#3
xfwxian2016-11-23 21:47
回复 2楼 风吹过b
你好,感谢你的回答。我是一个菜鸟,第一次创建存储过程。我试着创建的过程如下:
CREATE PROCEDURE aa
AS
BEGIN
    declare @d nvarchar(55)
set @d = 'aa'
select * from ' + @d + '
END
go
请问是哪里错了?
#4
风吹过b2016-11-23 23:34
如果问存储过程,需要转 SQL 论坛,VB6 的人,大多数不懂SQL的存储过程的语言,包括我。
#5
xzlxzlxzl2016-11-24 09:00
回复 3楼 xfwxian
根据你一楼的代码,要在存储过程中执行该sql语句,应该如下(前提是你数据库中必须存在名称为aa的表):
CREATE PROCEDURE aa
AS
BEGIN
    declare @d nvarchar(55)
set @d = 'aa'
exec('select * from ' + @d)
END
go
#6
ll00ll2016-11-24 16:54
你是说动态组合 SQL语句吗?
程序代码:

    dim tableName as string
    dim strSql as string
    tableName = "username"
    strSql = "select * from " & tableName
    set rs = conn.Execute(strSql)
#7
xfwxian2016-11-24 21:30
回复 6楼 ll00ll
谢谢你,我就需要这个效果,再次谢谢了
#8
xfwxian2016-11-26 21:51
回复 6楼 ll00ll
如果通过VB修改SQL表的字段名,字段名同样是变量,代码如何写?
1