wie kann ich mit ODBC (PB) eine Procedure aufrufen und den Return_Value abfragen.
{? = call dbo.procname()} geht nicht

Code: Alles auswählen
{call procname}
Code: Alles auswählen
If recid = 0
sql = "{Call dbo.qp_Add_Langtexte}"
If DatabaseQuery(#Datenbank, sql)
While NextDatabaseRow(#Datenbank)
temp.s = GetDatabaseString(#Datenbank, 0)
WriteLog(temp)
Wend
Else
WriteLog(DatabaseError())
EndIf
EndIf
Code: Alles auswählen
sql = "Declare @return_value int;"
sql + "EXEC @return_value = [dbo].[qp_Add_Langtexte]; "
sql + "Select 'Return Value' = @return_value; "
hast Du die SP testweise mal im Query Analyzer ausprobiert?mk-soft hat geschrieben:Liefert allerding auch kein ergebnis
Code: Alles auswählen
create procedure sp_TabellenAnzeigen
as
SELECT * FROM INFORMATION_SCHEMA.TABLES;
Code: Alles auswählen
UseODBCDatabase()
If opendatabase(0, "dsn", "user", "pass")
query.s = "exec sp_TabellenAnzeigen"
If DatabaseQuery(0, query)
While NextDatabaseRow(0)
Debug GetDatabaseString(0, 0)
Wend
Else
Debug DatabaseError()
EndIf
EndIf
ob call oder exec sollte Jacke wie Hose sein. Ich meine gelesen zu haben,PBFetischist hat geschrieben:warum rufst du mit call auf und nicht mit exec ?
doch, darum geht's. Procedure = SP = Stored Procedure = Gespeicherte ProzedurPBFetischist hat geschrieben:Oder geht es nicht um gespeicherte Prozeduren ?
also kann man grundsätzlich davon ausgehen, dass Du die richtige SP aufrufst.mk-soft hat geschrieben:legt auch ein Datensatz an. Liefert allerding auch kein ergebnis
call funktioniert auf einem SQL Server 2005 nicht, ausser einer Fehlermeldung kommt nüscht:ob call oder exec sollte Jacke wie Hose sein. Ich meine gelesen zu haben,
dass call performanter sein soll.
doch, doch, das geht wunderbar:PBFetischist hat geschrieben:call funktioniert auf einem SQL Server 2005 nicht
Code: Alles auswählen
UseODBCDatabase()
DB = OpenDatabase(#PB_Any, "myDatabase", "myUser", "myPass")
If DB
If DatabaseQuery(DB, "{call dbo.testtest}")
While NextDatabaseRow(DB)
Debug GetDatabaseString(DB, 0) ; <- liefert korrekte Werte
Wend
Else
Debug DatabaseError()
EndIf
CloseDatabase(DB)
EndIf
Bingo. Bei mir funktioniert es nach einfügen des Inserts nun auch nicht mehr.PBFetischist hat geschrieben:Ich habe mir jetzt eine sp mit einem insert und einer Ausgabe danach gebaut und in der Tat, es funktioniert nicht