Entwickler-Ecke

Sonstiges (Delphi) - Exception der Klasse EAccessVoilation ????


Barret - Fr 15.10.04 10:51
Titel: Exception der Klasse EAccessVoilation ????
Hi!
Ich bekomme in meinem Programm immer eine "lustige" Fehlermeldung. :(
Ich hab aber keinen Plan warum. Und das Zeug, was in der Hilfe steht hab ich auch schon probiert aber das nützt mir auch nich wirklich viel.
In dieser Zeile bekomm ich den Error:

Delphi-Quelltext
1:
SprachDatei := TIniFile.Create(ExtractFilePath(Application.ExeName) + FKondensatorSprache.TblOptions.FieldByName('LANGIAGE').AsString + '.spr');                    

Da steht aber nich viel drin. Ich greife von einer Unit auf eine Form zurück und lass dort aus der Table eine Spalte auslesen und noch eine Endung ranhängen. In der Datenbank steht aber nur ein Datensatz drin also hat er auch einen genauen Rückgabewert. Ähnliches erwende ich schon an einer anderen Stelle(die funktioniert voll und ganz).
Ich hab auch schon gedacht, dass mein Speicher mit Leichen voll is und hab schon nen "Neu-Start" durchgezogen. Hat aber auch nicht den gewünschten Effekt gehabt. Und dierekt aus der Form zu übergeben is auch das selbe.

Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.


jojo-sp - Fr 15.10.04 10:57

Gib bitte mal die Fehlernummer an.


Delete - Fr 15.10.04 11:00

Es wird mal wieder in zwei Foren gleichzeitig diskutiert ohne das verlinkt wurde. :roll:


AndyB - Fr 15.10.04 11:00
Titel: Re: Exception der Klasse EAccessVoilation ????
Barret hat folgendes geschrieben:
Ich bekomme in meinem Programm immer eine "lustige" Fehlermeldung.

Das ist echt lustig, diese "lustige" Fehlermeldung kenne ich gar nicht.


Udontknow - Fr 15.10.04 11:01

Was für eine Fehlernummer? Wozu soll das gut sein? EAccessViolation, das reicht doch.

Also, das ist eigentlich meist dann der Fall, wenn einige Komponenten noch gar nicht erstellt worden sind (z.B. im Oncreate eines Formulars, das auf Daten eines anderen zugreift, welches aber noch nicht erstellt wurde, siehe Erstellungsreihenfolge bei den Projektoptionen).
Kontrolliere mal alle Objekte, die du in dieser Zeile ansprichst, auf NIL.

Cu,
Udontknow


GSE - Fr 15.10.04 11:06

Zitat:

Delphi-Quelltext
1:
FKondensatorSprache.TblOptions.FieldByName('LANGIAGE').AsString + '.spr');                    
weiß zwar nicht was du dort so machst aber
vielleicht heißt das db feld ja doch Language?

mfg
GSE


Barret - Fr 15.10.04 11:07

Hir die Fehlermeldung:
Im Projekt Kondensator.exe ist eine Exception der Klasse EAccessViolatio aufgetreten. Melgun: 'Zugriffsverletzung bei Adresse 0049C318 in Modul Kondensator.exe'. Lesen von Adresse 0000031C'. Prozeß wurde angehalten. Mit einzelne Anweisung oder Start fortfahren

Das Feld hab ich oben falsch geschrieben, richtiger wäre ('LANGUAGE'), aber an der Sache ändert das nichts.


jojo-sp - Fr 15.10.04 11:11

War ja nur ne Idee, da Delphi auch Nummern angibt.
So ist zum Beispiel die Nummer 9 eine Ungültige Adresse.
Wie gesagt, war nur ne Idee von nem dummen Newbee :-)


Barret - Fr 15.10.04 11:14

Sorry hab mich oben verschrieben! :( Mit "copy and past" wärs wohl besser gegangen. Das Feld heißt 'LANGUAGE' und is auch so im Code angesprochen. Aber an dem Fehler ändert das trotzdem nicht.

Mit dem zufrühen ausführen könnte es aber sein. Ich schau mir die Sache mal etwas genauer an.


Barret - Fr 15.10.04 11:28

Oh mein Gott wie dumm kann man nur sein. Bei dem Anfängerfehler müsse man sich ja glatt verstecken :autsch: . Mein Fehler war das ich auserhalb der Form auf Table zugreifen wollte. Da aber die Table erst geöffnet wird, wenn ich die Form betrete kann das auch nicht funktionieren. Ergo ich musste nur "TblOptions.Open" und "TblOptions.Close" anders setzen.