pcfjkg
Goto Top

Visual Studio, benötige SqlDbType.Cursor

In einer StoredProcedure auf dem SQL-Server: (Microsoft SQL Server Standard (64-bit), Version 14.0.2037.2) wird eine Variable
@RückgabeCursor CURSOR VARYING OUTPUT
genutzt. Nun soll diese StoredProcedure auch aus VB.NET aufgerufen werden und nicht nur von anderen SP des Servers. Die Variable
@RückgabeCursor CURSOR VARYING OUTPUT
wird vom VB.NET - Project dabei zwar nicht benötigt, wird aber beim Aufruf der SP aus dem Project verlangt.
Wie nun damit umgehen?
Beim Dataadapter.SelectCommand.Parameters.Add(New SqlParameter("@RückgabeCursor", SqlDbType. ??? oder wie auch immer sonst. ?
Auch als SqlDbType.nothing anzugeben oder hilfsweise einen anderen Typ, bringt immer Fehler. Kann man den Cursor als Typ benutzerdefiniert erzeugen ?
Möglicherweise ist das Problem auch anders zu "umgehen".
Danke für jede Mühe und Grüße von PCFJKG.
Kommentar vom Moderator tomolpi am 20.06.2021 um 19:06:17 Uhr
Frage geringfügig formatiert

Content-ID: 752240624

Url: https://administrator.de/contentid/752240624

Ausgedruckt am: 24.11.2024 um 02:11 Uhr

colinardo
Lösung colinardo 20.06.2021 aktualisiert um 20:16:59 Uhr
Goto Top
Servus,
Auszug aus der Doku und dem hervorgehobenen Hinweis dazu
Der Datentyp cursor kann nicht durch Datenbank-APIs, wie z. B. OLE DB, ODBC, ADO und DB-Library, an Anwendungsvariablen gebunden werden. Da OUTPUT-Parameter gebunden werden müssen, bevor eine Anwendung eine Prozedur ausführen kann, können Prozeduren mit cursor -OUTPUT-Parametern nicht aus den Datenbank-APIs heraus aufgerufen werden. Diese Prozeduren können von Transact-SQL -Batches, Prozeduren oder Triggern heraus aufgerufen werden, wenn die cursor -OUTPUT-Variable einer lokalen Transact-SQL - cursor -Variablen zugewiesen wird.
Quelle: Zurückgeben von Daten von einer gespeicherten Prozedur
Und auch ein entsprechend ähnlicher Post bei Stackoverflow
https://stackoverflow.com/questions/63966353/reading-cursor-in-c-sharp-f ...

Schönen Rest-Sonntag
Uwe
PCFJKG
PCFJKG 21.06.2021 um 08:29:19 Uhr
Goto Top
Hallo Uwe,
Dann wird es wohl nichts werden mit unsere Project. Die MS-SQL-Doku kannten wir zwar, aber manchmal gibt es doch findige Programmierer, die trotzdem eine Lösung gefunden haben. Du wirst aber recht haben und wir müssen uns etwas anderes einfallen lassen.
Also: Danke und alles Gute. Grüße von PCFJKG.
colinardo
colinardo 21.06.2021 aktualisiert um 09:18:49 Uhr
Goto Top
Zitat von @PCFJKG:

Hallo Uwe,
Dann wird es wohl nichts werden mit unsere Project. Die MS-SQL-Doku kannten wir zwar, aber manchmal gibt es doch findige Programmierer, die trotzdem eine Lösung gefunden haben. Du wirst aber recht haben und wir müssen uns etwas anderes einfallen lassen.
Du könntest bswp. eine weitere stored procedure schreiben die die andere als Wrapper aufruft und extern keinen Output Cursor verwendet. Oder einen Trigger anlegen der die Procedure bei einem Event automatisch anwirft. Möglichkeiten gibt es für sowas einige.

Grüße Uwe
PCFJKG
Lösung PCFJKG 21.06.2021 um 10:07:15 Uhr
Goto Top
Hallo Uwe,
wir arbeitet nun tatsächlich mit einer weiteren SP, genau wie Du es beschrieben hast. Funktioniert. Etwas umständlich, aber damit kann man leben. Und deshalb nochmals danke und eine schöne (wetterseitig erträgliche) Woche. Grüße von PCFJKG.