AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ADO GetFieldnames buggy?

Ein Thema von p80286 · begonnen am 14. Jun 2011 · letzter Beitrag vom 14. Jun 2011
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

ADO GetFieldnames buggy?

  Alt 14. Jun 2011, 12:46
Datenbank: oracle • Version: egal • Zugriff über: ADO
Hallo zusammen,

Bei dem Versuch GetFieldnames zu nutzen beiße ich auf Granit
Code:
---------------------------
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.
---------------------------
Ich habe es mit der AnsiString und der Widestring-Version versucht, der Fehler bleibt der gleiche.

Hier der bisherige (Bastel)Code:
Code:
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;
Ich bin mir eigentlich keiner Schuld bewußt.
könnt Ihr mi auf die Sprünge helfen?

Gruß
K-H

P.S.
(es handelt sich um D2006)
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: ADO GetFieldnames buggy?

  Alt 14. Jun 2011, 12:51
Code:
: dummyl : twidestrings;
begin
  dummyl:=twidestringlist.Create;
:
twidestrings <> twidestringlist

Edit: Vergiss es, mein Fehler.

Geändert von omata (14. Jun 2011 um 12:54 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: ADO GetFieldnames buggy?

  Alt 14. Jun 2011, 13:44
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: ADO GetFieldnames buggy?

  Alt 14. Jun 2011, 15:13
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: ADO GetFieldnames buggy?

  Alt 14. Jun 2011, 17:54
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:
select * from user_tab_cols where table_name = ..
Entgegen der Repository Bezeichnung findest Du da auch die Spaltennamen von Views. Zugriff geht natürlich nur mit entsprechenden Berechtigungen.

Ziel sollte also der aktuelle Client bleiben.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: ADO GetFieldnames buggy?

  Alt 14. Jun 2011, 18:21
Schrottlevel ist gut!

Mir ging's nicht darum die Werte zu holen, da nutze ich z.Zt.
Code:
'select distinct COLUMN_NAME from ALL_COL_COMMENTS where OWNER=:_owner order by COLUMN_NAME';
(comments ist schon richtig!)
sondern einfach die Möglichkeiten der ADO-Schnittstelle auszuloten.

Vielen Dank für Eure Infos!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

AW: ADO GetFieldnames buggy?

  Alt 14. Jun 2011, 19:44
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);
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz