0

目前我正在从事一个项目,该项目迫使我在我的应用程序中使用 Vb6 作为前端,使用 Oracle 9i 作为后端。我需要从 oracle 中的表中检索数据,并以 VB6 形式显示。我为此使用了一个记录集,但由于某种原因,即使相关表中存在有效记录,它也不包含任何记录。谁能告诉我怎么了?任何帮助,将不胜感激。我的代码如下 -

Private Sub Command1_Click()
Dim sql As String
Set rs = New ADODB.Recordset
sql = "select test23.phoname from test23 where test23.ops='" + Text1.Text + "'"
rs.Open sql, con, adOpenStatic, adLockOptimistic
If rs.EOF = False Then
    Form7.Show
    Form7.Label2.Caption = rs.Fields("phoname")
End If
End Sub

if 语句从不执行,因为记录集似乎总是空的。如果我删除 EOF 条件,我会收到运行时错误 3021。我的 sql 查询有问题吗?表 test23 已经存在于我的 oracle 数据库中,其属性为 serialno、phoname 和 ops。谢谢-罗恩

4

2 回答 2

1

几年前,我自己也曾为此苦苦挣扎。问题可能出在几个方面:特别是连接、Oracle 驱动程序、Oracle 主目录或查询本身。

我强烈建议您下载免费版本的 TOAD,这将允许您测试您的连接(我假设是某种 ODBC),然后您可以使用 TOAD 手动执行查询。

你有任何例外吗?

希望从此您可以更正您的代码/连接/查询。

祝你好运

于 2012-09-13T18:34:34.070 回答
0

我还要指出 adoOpenStatic 和 adoLockOptimistic 是互斥的属性值,因为乐观锁定仅适用于可更新的记录集,而静​​态记录集不可更新(除了 adoLockBatchOptimistic 的批处理模式)。这可能会以某种方式混淆 Oracle OLEDB 提供程序。

于 2012-09-14T18:41:32.937 回答