0
我正在使用VB6应用程序。哪个使用MSAccess数据库。现在我正在改变数据库访问sql服务器。从MSAccess获取/更新数据应用程序正在使用DAO对象。所以现在我也尝试使用DAO方法连接SQL Server。现在我可以连接数据库并能够获取数据。但是,当我试图编辑记录它给出的错误“运行时错误'3027'无法更新。数据库或对象是只读”。我显示我的代码在这里:如何使用DAO连接与SQL服务器更新VB6中的记录集
Public LSWs As Workspace, LSDb As Database
Dim lsConnString As String
Dim l0 As Recordset, SQL0 As String
Dim lehReturn As Integer, retrycount As Integer
lsConnString = "ODBC;DRIVER=SQL Server;SERVER=SERVERName;DATABASE=" & DBname & ";APP=Visual Basic;UID=UID;PWD=PWD"
Set LSWs = DBEngine.Workspaces(0)
Set LSDb = LSWs.OpenDatabase(DBname, dbDriverNoPrompt, True, lsConnString)
retrycount = 0
SQL0 = "select * from schedule_hdr where status = '" & Trim(PCName) & "'"
Set l0 = LSDb.OpenRecordset(SQL0, dbOpenDynaset, dbSeeChanges, adLockPessimistic)
Do While Not (l0.EOF)
LSWs.BeginTrans
l0.Edit
l0!status = "R"
l0.Update
LSWs.CommitTrans
l0.MoveNext
Loop
l0.Close
,但它给错误的l0.Edit这行代码 给人错误 “运行时错误‘3027’不能更新数据库或对象是只读 任何帮助。 !或suggesion请回复
提前感谢!
事务'LSWs.BeginTrans'真的有必要吗?您一次只更新一条记录,因此交易不会在那里做任何有用的事情。是否有可能您的ODBC连接是只读的? – Martin 2012-04-18 13:08:11