【【【路过的看看,也许你帮了我一个大忙,关于存储过程.】】】】

52694 2003-09-11 11:42:31
在插入数据时,我把列名,数值都当成一个字符串来操作,为什么会失败?

存储过程:

CREATE PROCEDURE mypuple
@kk char(100),
@ll char(100)
AS
INSERT INTO hh (@kk) VALUES(@ll)
GO

在VB中操作:
cnn.Execute "mypuple '" & kk & "','" & ll & "'"

出错提示:对象名"hh"无效

为什么?????????????
...全文
32 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
飘零风 2003-09-11
  • 打赏
  • 举报
回复
不关hh的事,是因为你现在用的这种方法不可行。尝试一下:

declare @a nvarchar(200)
set @a='sysobjects'
select * from @a

运行的结果是:
必须声明变量 '@a'。

很明显我们已经定义了@a。可见这一错误并不是真正的错误,真正的原因在于这种方法本身是错误的。

可惜,我也不知道正确的方法是什么。
sindyzhou 2003-09-11
  • 打赏
  • 举报
回复
hh应该是你的表名,提示是说你的表名有问题,确认一下表名没错而且不是关键字
52694 2003-09-11
  • 打赏
  • 举报
回复
天,有人吗?
52694 2003-09-11
  • 打赏
  • 举报
回复
不好意思,不是不明。。。
那不是变成:

Exec('Insert Into hh ' + job_id,job_lvl,kk,ll + 'VALUES ' + '1','2','3','4')

了吗????????



飘零风 2003-09-11
  • 打赏
  • 举报
回复
啊,对啊,用exec来执行嘛。哎,这方法我自己都用,就是想不起来……人老了记性就是不好。

Exec('Insert Into hh ' + @变量 + 'VALUES ' + @变量 )

这样的写法就是可以的。
52694 2003-09-11
  • 打赏
  • 举报
回复
waterw(water):

是不是这样:

Exec('Insert Into hh ' + @变量 + 'VALUES ' + @变量 )

这样行吗?

waterw 2003-09-11
  • 打赏
  • 举报
回复
用 Exec('Insert Into hh ' + @变量 + '...')
OK
52694 2003-09-11
  • 打赏
  • 举报
回复
为什么还出错???、、、、、
52694 2003-09-11
  • 打赏
  • 举报
回复
是这样的,我在VB里这样执行:

Private Sub Command1_Click()
Dim mm,ll

kk = "job_id,job_lvl,kk,ll"
ll = "'" & Trim(Text1.Text) & "'" & "," & "'" & Trim(Text2.Text) & "'" & "," & "'" & Trim(Text3.Text) & "'" & "," & "'" & Trim(Text4.Text) & "'"
cnn.Execute "mypuple '" & kk & "','" & ll & "'"

End Sub

跟踪出:
kk="job_id,job_lvl,kk,ll"
ll=" '1','2','3','4' "

存储过程里:
INSERT INTO hh (@kk) VALUES(@ll)

把 kk , ll 代入 @kk,@ll 得:
INSERT INTO hh (job_id,job_lvl,kk,ll) VALUES('1','2','3','4')

把上语句在 SQL SERVER 查询分析器 里运行通过,成功向表 HH 插入数据: 1,2,3,4

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧