QODBC SQL SERVER sp_cursoropen Fehler

Alles rund um die Programmierung mit Qt
Antworten
rudl
Beiträge: 2
Registriert: 13. August 2011 17:51

QODBC SQL SERVER sp_cursoropen Fehler

Beitrag von rudl » 16. Oktober 2018 21:31

Ich mache über QODBC verschiednene Anfragen an einen SQL Server. Die Anfragen funtionieren soweit got, bis ich eine Strored Procedure ausführen möchte, die ich über common language runtime (CLR) eingebunden habe. Das heisst, ich habe in Visual Studio meine Prozedur erstellt und dann als Assembly die Prozedur in den SQL Server eingebunden. Wenn ich die die Prozedur im SQL Server Management Studio ausführe, funktioniert das einwandfrei. Der Ausfruf sieht wie folgt aus: EXEC HalloWeltExp '1'. Meine HalloWeltExp hat keine In- Out Variablen oder Return Parameter.

Die Fehlermeldung sagt folgendes:

[Microsoft][SQL Server Native Client 11.0][SQL Server]The request for procedure 'HalloWeltExp' failed because 'HalloWeltExp' is a procedure object. [Microsoft][SQL Server Native Client 11.0][SQL Server]The cursor was not declared. QODBC3: Unable to execute statement

Jetzt habe ich mal im SQl Profiler nachgesehen, was QT da genau schickt:

Code: Alles auswählen

set quoted_identifier on
set arithabort off
set numeric_roundabort off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set cursor_close_on_commit off
set implicit_transactions off
set language us_english
set dateformat mdy
set datefirst 7
set transaction isolation level read committed

exec [sys].sp_datatype_info_100 11

SET QUOTED_IDENTIFIER ON

declare @p1 int
set @p1=0
declare @p3 int
set @p3=8
declare @p4 int
set @p4=8193
declare @p5 int
set @p5=0
exec sp_cursoropen @p1 output,N'EXEC HalloWeltExp ''1''',@p3 output,@p4 output,@p5 output
select @p1, @p3, @p4, @p5
Wenn ich über ein Programm, das nicht QODBC verwendet, die selbe Anfrage über die ODBC Anbindung schicke, funktioniert die Anfrage, im Profiler wird auch nur "EXEC HalloWeltExp '1'" angezeigt.

Gibt es eine Einstellung, bei welcher QODBC nur meine Anfrage, ohne die ganzen restlichen Aufrufe sendet?
Oder muss jetzt wirklich unter Windows die Standard ODBC Schnittstelle einbinden?

Herzlichen Dank für eure Hilfe!

Antworten