![]() |
Datenbank: oracle • Version: egal • Zugriff über: ADO
ADO GetFieldnames buggy?
Hallo zusammen,
Bei dem Versuch GetFieldnames zu nutzen beiße ich auf Granit
Code:
Ich habe es mit der AnsiString und der Widestring-Version versucht, der Fehler bleibt der gleiche.
---------------------------
Benachrichtigung über Debugger-Exception --------------------------- Im Projekt XXXX.exe ist eine Exception der Klasse EAccessViolation mit der Meldung 'Zugriffsverletzung bei Adresse 77C47FD4 in Modul 'msvcrt.dll'. Lesen von Adresse 00000000' aufgetreten. --------------------------- Hier der bisherige (Bastel)Code:
Code:
Ich bin mir eigentlich keiner Schuld bewußt.
procedure TDM_EV.Get____(liste:tstrings);
var i,j : integer; dummyl : twidestrings; begin dummyl:=twidestringlist.Create; Liste.clear; ADOConnection1.GetTableNames(liste); j:=liste.count-1; for i:=0 to j do begin dummyl.append('Clear'); dummyl.append('Clear'); //ADOConnection1.GetFieldnames(liste[i],dummyl); ADOConnection1.GetFieldnames('Cases',dummyl); //Liste.AddStrings(dummyl); end; dummyl.free; end; könnt Ihr mi auf die Sprünge helfen? Gruß K-H P.S. (es handelt sich um D2006) |
AW: ADO GetFieldnames buggy?
Zitat:
Edit: Vergiss es, mein Fehler. |
AW: ADO GetFieldnames buggy?
Welcher Provider? Der von MS ist schrott und schon länger abgekündigt und bei Oracle solltest du nach dem letzten Verfügbaren schauen und installieren.
|
AW: ADO GetFieldnames buggy?
Es ist der oracle Provider, mal sehen wo ich einen neuen Client herbekomme, leider hab ich da nicht so ganz freie Hand.
Gruß K-H |
AW: ADO GetFieldnames buggy?
Soweit ich mich erinnere, hakt Dein 9er Oracle OLEDB Provider nicht zum ersten Mal. Gefühlt ist der Schrottlevel beim 9er Client von Oracle eher höher als der von MS.
Falls Ihr Wartung und Support habt, sollte es kein Problem sein, den letzten Patch zum 9er client oder aber direkt den neuesten 11er client als Full oder Instant Client Installtion zu nutzen, lizenztechnisch. Wenn es nur um Dictionary Infos wie Spaltennamen und -Typen geht, könntest Du Dich direkt dort im Oracle Repository bedienen:
Code:
Entgegen der Repository Bezeichnung findest Du da auch die Spaltennamen von Views. Zugriff geht natürlich nur mit entsprechenden Berechtigungen.
select * from user_tab_cols where table_name = ..
Ziel sollte also der aktuelle Client bleiben. |
AW: ADO GetFieldnames buggy?
Schrottlevel ist gut!
Mir ging's nicht darum die Werte zu holen, da nutze ich z.Zt.
Code:
(comments ist schon richtig!)
'select distinct COLUMN_NAME from ALL_COL_COMMENTS where OWNER=:_owner order by COLUMN_NAME';
sondern einfach die Möglichkeiten der ADO-Schnittstelle auszuloten. Vielen Dank für Eure Infos! Gruß K-H |
AW: ADO GetFieldnames buggy?
Beim Programmieren kann man ja sooo viele Fehler machen.
Deshalb defensiv programmieren und fleissig Asserts einsetzen:
Delphi-Quellcode:
procedure TDM_EV.Get____(liste:tstrings);
var i,j : integer; dummyl : twidestrings; begin Assert(Assigned(self)); Assert(Assigned(ADOConnection1)); Assert(Assigned(liste)); Assert(ADOConnection1.Connected); dummyl:=twidestringlist.Create; Liste.clear; ADOConnection1.GetTableNames(liste); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz