Hi,
ich habe auf meinem Server eine gespeicherte Prozedur. In dieser kommen temporäre Tabellen zum Einsatz. Beim Aufruf im SQL Management Studio mit EXEC spProzedurname erhalte ich eine ordentliche Ausgabe der Ergebnisse.
Leider gelingt es mir nicht, die Ergebnisliste als ADODB Recordset zu laden. Verwende ich in der Proz. ausschließlich normale Tabellen, kommen die Ergebnisse super ins Recordset - nicht aber bei Temp-Tabellen (@ / @@). Ich habe auch alternativ schon Table Variablen benutzt... hier das gleiche. Läuft im Management Studio, aber im Access über ADODB kommt im Recordset nix an.
Dim rcs as ADODB.Recordset
Dim Sql as String
sql = "EXEC spProzedurname 10, 15"
set rcs = holerecordset(sql)
Public Function holeRecordset(sql As String, Optional bitWrite As Boolean) As ADODB.Recordset
Set holeRecordset = New ADODB.Recordset
With holeRecordset
.Source = sql
.ActiveConnection = p_ADOConnection
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
.Open
End With
End Function
Kann mir jemand helfen?
Ich kann nur für PostgreSQL sprechen. Temporäre Tabellen gelten nur für die Lebensdauer einer Session und können extern von einer weiteren Session nicht genutzt werden.
Zitat von: datekk am Januar 20, 2018, 18:09:58ich habe auf meinem Server eine gespeicherte Prozedur. In dieser kommen temporäre Tabellen zum Einsatz.
Was willst du damit genau machen? - Lebensdauer beachten, wie Lachtaube bereits ansprach.
Zeig mal den Code einer möglichst auf das wesentliche reduzierten Stored Procedure, die aber das Problem reproduziert.
Danke für Eure Antworten. Die temporäre Tabelle soll über Select ihre Datensätze ausspucken. Ich habe es nun auch hinbekommen. In der gespreicherten Prozedur auf dem SQL Server fehlte SET NOCOUNT ON.
Jetzt flutscht es ;D