vb6 oracle9i应用程序,逻辑错误记录集仍为空

时间:2012-09-13 18:25:40

标签: vb6 oracle9i recordset

目前我正在开发一个项目,迫使我在我的应用程序中使用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。 谢谢-       罗恩

2 个答案:

答案 0 :(得分:1)

几年前,我一直在努力解决这个问题。问题可能出在以下几个方面:具体是连接,Oracle驱动程序,Oracle主目录或查询本身。

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

你有任何例外吗?

希望你可以通过这个来纠正你的代码/连接/查询。

祝你好运

答案 1 :(得分:0)

我还要指出,adoOpenStatic和adoLockOptimistic是互斥属性值,因为乐观锁定仅适用于可更新记录集,而静​​态记录集不可更新(除了使用adoLockBatchOptimistic的批处理模式)。这可能会让Oracle OLEDB提供商感到困惑。