TODBCConnection.GetProcedureNames

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
andikad
Beiträge: 20
Registriert: So 11. Mai 2014, 03:41

TODBCConnection.GetProcedureNames

Beitrag von andikad »

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

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: TODBCConnection.GetProcedureNames

Beitrag von theo »

K.A. schon mit Zeos probiert?

Code: Alles auswählen

 
ZConnection1.GetStoredProcNames();


http://wiki.lazarus.freepascal.org/Zeos_tutorial/de

Christian
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

Beitrag von Christian »

Seit wann kann Zeos ODBC ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

andikad
Beiträge: 20
Registriert: So 11. Mai 2014, 03:41

Re: TODBCConnection.GetProcedureNames

Beitrag von andikad »

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

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: TODBCConnection.GetProcedureNames

Beitrag von theo »

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.

andikad
Beiträge: 20
Registriert: So 11. Mai 2014, 03:41

Re: TODBCConnection.GetProcedureNames

Beitrag von andikad »

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

Soner
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

Beitrag von Soner »

Du kannst auch direkt mit SQL abfragen:

Code: Alles auswählen

 
SELECT RDB$PROCEDURE_NAME FROM RDB$PROCEDURES
 

andikad
Beiträge: 20
Registriert: So 11. Mai 2014, 03:41

Re: TODBCConnection.GetProcedureNames

Beitrag von andikad »

Danke, aber nur mein Test war Firebird. Ich bräuchte es allgemein über ODBC.

Gruß, Andreas

Christian
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

Beitrag von Christian »

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/

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: TODBCConnection.GetProcedureNames

Beitrag von sstvmaster »

Hallo Andreas,
andikad hat geschrieben:
So 11. Mai 2014, 03:49
... Das Auslesen der Tabellen über TODBCConnection.GetTableNames klappt ...
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)

Antworten