Doch, das kann was werden. Weil er auf die
MSDE zugreifen will, und nicht auf Firebird. Es ist soweit alles korrekt. Versuchs mal mit ExecProc. Weiterhin brauchst du keine StrToInt Umwandlung. Die Schweinebacke von
MSDE kriegen wir schon zum Laufen.
Weiterhin bringst du etwas durcheinander: Prozeduren, Funktionen und Views. Was Du machen willst (Select * from <Procedure> geht mit der
MSDE so nicht. Wenn Du sowas machen willst, benutzt Du eine VIEW.
Also: Stored Procedures können Ergebnismengen zurückliefern, oder Parameter. So, wie Du es gemacht hast, ist es vollkommen richtig. Dein 'CREATE PROZEDURE' ist korrekt, und eigentlich sollte der Aufruf mit 'TADOStoredProc' auch korrekt sein. Jedenfalls fast. Du solltest
ExecProc nehmen, statt
Open.
Warum? Die Stored Procedure liefert ja einen Parameter zurück, und keine Ergebnismenge (z.B. eine Tabelle). Deshalb meckert
ADO. Open erwartet IMMER eine Tabelle als Resultat (die darf auch leer sein). ExecProc nicht.