私はこれが非常に基本的なことを知っており、これを何百回も行ってきました。しかし、何らかの奇妙な理由で、データベースでこのコマンドを実行していますが、結果から列を読み取ろうとすると失敗します。同じ資格情報としてログインした SQL Plus でこのステートメントを実行すると、行 (テーブルには 1 行あります) が正常に選択されます。私が間違っていることはありますか?名前、インデックス、実際には任意の列で列にアクセスしようとしましたが、すべてデータがありません。.NextResult() (念のため) なしで試しましたが、同じ例外です。
'...
' Determine if this database is Multisite enabled
Dim multisiteCmd As OleDbCommand = DbConnection.CreateCommand
multisiteCmd.CommandText = "SELECT * FROM TDM_DB_VERSION;"
Dim dbVersionReader As OleDbDataReader = multisiteCmd.ExecuteReader()
If dbVersionReader.HasRows Then
dbVersionReader.NextResult()
'If a ReplicaID was generated for the Database ID, then this is part of a
'multisite implementation
'Dim dbRepID As String = dbVersionReader("DB_REPLICID")
Dim dbRepID As String = dbVersionReader(9)
PluginSettings.UseMultisite = False
If Not dbRepID Is Nothing Then
If dbRepID.Length > 0 Then
PluginSettings.UseMultisite = True
PluginSettings.MultisiteReplicaId = dbRepID
End If
End If
End If
dbVersionReader.Close()
これらのイミディエイト コマンドからわかるように、接続は開いています。
? DbConnection.Provider "OraOLEDB.Oracle" ? DbConnection.State オープン {1}