gpt4 book ai didi

sql - VBA 事务

转载 作者:行者123 更新时间:2023-12-04 06:48:30 29 4
gpt4 key购买 nike

我正在尝试从 Excel VBA 向 SQL 中插入一些数据。 SQL 命令是在 VBA 脚本的过程中构建的,包括使用一些 SQL 变量。

我试图了解事务在 VBA 中是如何工作的,以及它们是否可以处理我需要做的事情,我有下面的代码可以测试这个,但它不起作用。它总是给我一个关于“必须定义标量变量@name”的错误,所以我认为这里存在数据/事务范围的问题。我怎样才能让这个简单的代码工作?

Const stADO As String = "Provider=SQLOLEDB.1;Integrated Security=SSPI;" & _
"Persist Security Info=False;" & _
"Initial Catalog=ImportTest;" & _
"Data Source=localhost\sqlexpress"

Set cn = New ADODB.Connection

With cn
.CursorLocation = adUseClient
.Open stADO
.CommandTimeout = 0
End With

cn.BeginTrans
cn.Execute "set implicit_transactions off"
cn.Execute ("declare @name varchar(100)")
cn.Execute ("set @name='name'")
cn.Execute ("Insert into test (id,name) values (55,@name)")
cn.CommitTrans

cn.Close
Set cn = Nothing

最佳答案

您需要分批执行所有这些

cn.Execute "set implicit_transactions off"
cn.Execute ("declare @name varchar(100)")
cn.Execute ("set @name='name'")
cn.Execute ("Insert into test (id,name) values (55,@name)")

构建一个字符串然后使用 1 cn.Execute

更好的是,使用参数化查询来防范 SQL injection

关于sql - VBA 事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3451026/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com