3

我编写了一个 Excel VB 应用程序,它可以访问并在需要时修改 SQLCE 数据库。这是vba中的连接字符串:

dbConnectionString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=C:\sitsDB.sdf;"

我几乎完成了这个项目,一切都很好,除了我想扩展 SQLCE 数据库文件中的一个字段以允许存储更多字符。
该字段属于数据类型nvarchar,默认长度为 100(显然应该允许 50 个字符?)

我希望至少在其中存储 200 个字符的打开文本框需要该字段。

我在 Microsoft Visual Basic 2010 Express 中创建了初始数据库,当我将字段长度更改为nvarchar大于 100 的任何值时,当我的SQL SELECT语句运行时出现以下错误:

运行时错误“-2147217887 (80040e21)”:多步操作产生错误。检查每个状态值。

这是 VBA 中的 SQL 语句:

With rsResults
    .Source = "SELECT * FROM Incidents WHERE Number = " & number
    Set .ActiveConnection = dbConnection
    .CursorLocation = adUseClient
    .CursorType = adOpenStatic
    .Open
End With

错误发生.Open在线路上。

我可以更改SELECT * FROM以仅选择某些列,消除长度大于 100 的字段,并且一切都会按预期工作。

所以,这绝对是一个字段的长度大于 100 的事实。如果我将该字段恢复为 100 的长度,一切都会正常工作......

我不太了解我在那里使用的.CursorLocation和功能。.CursorType我通过示例学习,这是我首先找到的示例。

任何帮助将不胜感激!

4

1 回答 1

1

在写出这个解释时,我意识到我没有尝试过一些事情。.CursorLocation也就是说,我没有用and愚弄.CursorType。事实证明,更改.CursorLocation.CursorLocation = adUseServer将解决我看到的问题。我现在可以使用 nvarchar 的长度一直到 4000。

于 2012-11-21T19:37:52.130 回答