传统的VB6应用程序访问SQL数据库迁移

时间:2015-04-09 07:36:04

标签: sql ms-access vb6 dao

我公司拥有超过100种表格的vb6应用程序。应用程序是使用VB6和Access开发的。 现在我的公司希望我将现有的应用程序从MS Access转换为SQL Server。 应用程序正在使用DAO与Access连接。我已经将Access数据库转换为SQL数据。 然后我改变了

Private db As Database
Set db = OpenDatabase(Access_File_Path, dbDriverComplete, False, ";pwd=access_password;")

Set db = OpenDatabase("", False, False, "odbc;dsn=Database_ODBC_Name")

所有选择,插入,更新,删除查询都可以正常工作 但我在这样的线路上遇到错误

.Recordset.AddNew
.Recordset.Delete
.Recordset.Update
.Recordset.CancelUpdate

得到错误,如

  

运行时错误3027无法更新,数据库或对象是只读的

  

ODBC错误

使用SQL的现有代码的任何解决方案或方法吗?

1 个答案:

答案 0 :(得分:0)

正如您的错误消息所示:

由于以下原因之一,数据库是只读的:

  • 您使用了OpenDatabase方法并打开了数据库以进行只读访问。
  • 在Microsoft Visual Basic中,您使用的是Data控件,并将ReadOnly属性设置为True。
  • 数据库文件在操作系统或网络中定义为只读。
  • 数据库文件存储在只读媒体上。
  • 在网络环境中,您没有数据库文件的写权限。
  • 使用安全数据库时,数据库或其某个对象(如字段或表)可能设置为只读。您可能无权使用您的用户名和密码访问此数据。

关闭数据库,解决只读条件,然后重新打开文件以进行读/写访问。