目前我正在开发一个项目,迫使我在我的应用程序中使用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。 谢谢- 罗恩
答案 0 :(得分:1)
我强烈建议您下载TOAD的免费版本,它允许您测试您的连接(我假设某种类型的ODBC),然后您可以使用TOAD手动执行查询。
你有任何例外吗?
希望你可以通过这个来纠正你的代码/连接/查询。
祝你好运答案 1 :(得分:0)
我还要指出,adoOpenStatic和adoLockOptimistic是互斥属性值,因为乐观锁定仅适用于可更新记录集,而静态记录集不可更新(除了使用adoLockBatchOptimistic的批处理模式)。这可能会让Oracle OLEDB提供商感到困惑。