Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

ADODB Zugriff auf gespeicherte Prozedur mit temporären Tabellen

Begonnen von datekk, Januar 20, 2018, 18:09:58

⏪ vorheriges - nächstes ⏩

datekk

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?
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Lachtaube

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.
Grüße von der (⌒▽⌒)

PhilS

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.
Neue Videoserie: Windows API in VBA

Klassische CommandBars visuell bearbeiten: Access DevTools CommandBar Editor

datekk

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
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps