TODBCConnection.GetProcedureNames
TODBCConnection.GetProcedureNames
Hallo,
ich schreibe zurzeit an einer Anwendung, mit der ich per ODBC auf verschiedene Datenbanken zugreife. Dabei will ich Tabellen- und auch Prozedurnamen auslesen.
Das Auslesen der Tabellen über TODBCConnection.GetTableNames klappt, aber beim Aufruf von TODBCConnection.GetProcedureNames bekomme ich eine Exception
Field not Found "proc_name".
Ich das ein bekannter Fehler? Gibt es eine Alternative zum Auslesen der Prozeduren einer Datenbank. Getestet wurde mit einem ODBC-Zugriff auf Firebird.
Danke für Eure Hilfe!
Viele Grüße, Andreas
ich schreibe zurzeit an einer Anwendung, mit der ich per ODBC auf verschiedene Datenbanken zugreife. Dabei will ich Tabellen- und auch Prozedurnamen auslesen.
Das Auslesen der Tabellen über TODBCConnection.GetTableNames klappt, aber beim Aufruf von TODBCConnection.GetProcedureNames bekomme ich eine Exception
Field not Found "proc_name".
Ich das ein bekannter Fehler? Gibt es eine Alternative zum Auslesen der Prozeduren einer Datenbank. Getestet wurde mit einem ODBC-Zugriff auf Firebird.
Danke für Eure Hilfe!
Viele Grüße, Andreas
Re: TODBCConnection.GetProcedureNames
K.A. schon mit Zeos probiert?
http://wiki.lazarus.freepascal.org/Zeos_tutorial/de
Code: Alles auswählen
ZConnection1.GetStoredProcNames();
http://wiki.lazarus.freepascal.org/Zeos_tutorial/de
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: TODBCConnection.GetProcedureNames
Seit wann kann Zeos ODBC ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Re: TODBCConnection.GetProcedureNames
Hallo und danke für den Hinweis aus ZEOS. Leider brauche ich wirklich ODBC, da es nicht immer um Firebird geht. Gibt es da noch Alternativen?
Viele Grüße, Andreas
Viele Grüße, Andreas
Re: TODBCConnection.GetProcedureNames
Christian hat geschrieben:Seit wann kann Zeos ODBC ?
Hat das jemand behauptet? ODBC ist nur ein Schnittstelle.
ZEOS kann Firebird, MySQl, MSSQL, SQLite, Postgres, Oracle etc.
Re: TODBCConnection.GetProcedureNames
Hallo,
danke für Eure Hinweise. Inzwischen habe ich herausgefunden, dass das ein Bug in TSQLConnection ist. Dort müsste eigentlich das Feld procedure_name verwendet werden.
Ist als Bug gemeldet und wird behoben.
Jetzt habe ich noch eine andere Frage in diesem Zusammenhang. Wenn ich an gleicher Stelle GetTableNames verwende, klappt das local bei mir auf Win7 auch. Gleiche Datenbank mit gleichem Treiber auf Windows 2003 Server und die Liste bleibt leer. Getestet wieder mit Firebird 2.5. Wenn ich den Parameter Systemtabellen auf true setze,
bekomme ich nur 3 Systemtabellen. Habt Ihr dazu noch Ideen?
Gruß, Andreas
danke für Eure Hinweise. Inzwischen habe ich herausgefunden, dass das ein Bug in TSQLConnection ist. Dort müsste eigentlich das Feld procedure_name verwendet werden.
Ist als Bug gemeldet und wird behoben.
Jetzt habe ich noch eine andere Frage in diesem Zusammenhang. Wenn ich an gleicher Stelle GetTableNames verwende, klappt das local bei mir auf Win7 auch. Gleiche Datenbank mit gleichem Treiber auf Windows 2003 Server und die Liste bleibt leer. Getestet wieder mit Firebird 2.5. Wenn ich den Parameter Systemtabellen auf true setze,
bekomme ich nur 3 Systemtabellen. Habt Ihr dazu noch Ideen?
Gruß, Andreas
-
- Beiträge: 623
- Registriert: Do 27. Sep 2012, 00:07
- OS, Lazarus, FPC: Win10Pro-64Bit, Immer letzte Lazarus Release mit SVN-Fixes
- CPU-Target: x86_64-win64
- Wohnort: Hamburg
Re: TODBCConnection.GetProcedureNames
Du kannst auch direkt mit SQL abfragen:
Code: Alles auswählen
SELECT RDB$PROCEDURE_NAME FROM RDB$PROCEDURES
Re: TODBCConnection.GetProcedureNames
Danke, aber nur mein Test war Firebird. Ich bräuchte es allgemein über ODBC.
Gruß, Andreas
Gruß, Andreas
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: TODBCConnection.GetProcedureNames
Je nachdem welche Datenbanken du unterstützen magst, solltest vllt wirklich über Zeos nachdenken. Das kann zwar kein ODBC unterstützt aber auch ne menge Datenbanken. Und das wichtigste: es funktioniert. Das scheint bei SqlDB zumindest in den Teilen die du da benutzt noch nicht zu gelten.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 576
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 2.2.6
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: TODBCConnection.GetProcedureNames
Hallo Andreas,
Kannst du mir bitte deinen Code zeigen, sofern noch vorhanden.
LG Maik
Ja es ist lange her, aber nun habe ich probleme die Tabellen auszulesen, bei mir werden keine Tabellen ausgelesen.
Kannst du mir bitte deinen Code zeigen, sofern noch vorhanden.
LG Maik
LG Maik
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)