Re: Recordset aus Command-Objekt wird nicht geöffnet



Karl wrote:
Hallo,

ich benutze eine umfangreichere StoredProcedure zum Suchen von Daten
in verschiedenen Tabellen. Grundaufbau der SP ist folgender

CREATE Procedure stProc_Suchen @strtblName nvarchar(20),
@strKriterium1 nvarchar(50) = Null, @strKriterium2 nvarchar(50) =
Null, ...<weitere Parameter>
<Prozedurtext> ...

In VB (VB6) rufe ich wie folgt auf:

Public rsSuchErgebnis As New ADODB.Recordset
Public cmdSuche As New ADODB.Command

...

<Datenbankverbindung herstellen>

With cmdSuche
.ActiveConnection = cnDBConn

Implizite Erzeugung eine neuen Connection-Objektes ist keine gute Idee.
Besser wäre es den Verweis auf ein Connection-Objekt zuzuweisen.

.CommandType = adCmdStoredProc
.CommandText = "stProc_Suchen"
.Parameters.Append .CreateParameter("@strtblName", adVarChar,
adParamInput, 20, strTblName)
.Parameters.Append .CreateParameter("@strKriterium1",
adVarChar, adParamInput, 50, NZ(strKriterium1, Null))
.Parameters.Append .CreateParameter("@strKriterium2",
adVarChar, adParamInput, 50, NZ(strKriterium2, Null))
... <weitere Parameter>

Set rsSuchergebnis = .Execute
End With
If rsSuchergebnis.RecordCount > 0 Then <------ Hier kommt der Fehler
machwas
End if

Es kommt der Fehler 3704 (Der Vorgang ist für ein geschlossenes
Recordset nicht zugelassen).

Und wo ist die Open-Anweisung für das implizit erzeugte Objekt?

Probehalber habe ich mir aus der SP mit
einem Ausgabeparameter die Zahl der gefundenen Datensätze zurückgeben
lassen - es kommt immer die Anzahl der Datensätze, die ich auch
erhalte, wenn ich die SP mit entsprechenden Eingabeparametern im SQL-
Server starte.

Woran kann es liegen? Andere Command/Recordset -Kombinationen in der
gleichen Struktur funktionieren merkwürdigerweise in der Anwendung.

Das glaube ich dir nicht. Eine EWxecute kann mit einer geschlossenen
Verbindung nicht funktionieren.

Du erhöhst Deine Chance, dass Deine Frage überhaupt gelesen und qualifiziert
und schnell beantwortet wird, wenn Du Deinen Realnamen im Absender
einstellst (Vor- und Zuname).

--
Viele Grüße

Peter


.



Relevant Pages