Autor Beitrag
MatthiasS
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 25.01.05 19:53 
Hallo an alle,

ich bin neu hier und habe ein grosses Problem.
In Delphi programmiere ich seit 8 Monaten.
Ich entwickle eine DB-Anwendung weiter.

Konfiguration:
Win XP Pro SP1
Delphi 6 enterprise engl. Update 2
MySQL 3.23.52-nt
ZEOS 5.4.1
...

Es lief alles prima. Dann musste ich meinen Rechner neu aufsetzen. Danach lief das Programm nach einem Kompilieren nicht mehr. Beim Kompilieren selber traten keine Fehler auf. Das PRG lässt sich auch noch starten, beim beenden kommt aber:

Exception EAccessViolation in module ZDbware6.bpl at 0000EB33
Er zeigt dann an:

ZConnect.pas
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
{ Remove query from query's list }
procedure TZDatabase.RemoveDataset(Dataset: TObject);
var
  N: Integer;
begin
  if assigned(FDatasets) then try
    N := FDatasets.IndexOf(Dataset);
    if N >= 0 then
    try
      TDataset(FDatasets[N]).Close;
    finally
      FDatasets.Delete(N);
    end;
  except
  end;
end;


und bleibt stehen bei:
if assigned(FDatasets) then try

Daher habe ich auf diese Zeile einen Breakpoint gesetzt und FDatasets in die Überwachung genommen. Es wir zig mal korrekt aufgerufen. Dann aber auf einmal in der Überwachung:
FDatasets: Undeclared Identifier: 'FDatasets'
und der Abbruch.

Das komische ist, ich habe den Code 100%ig nicht geändert. Auch bei meinem alten archivierten Code tritt dieser Fehler nach einer Neucompilierung auf. Vorher lief alles einwandfrei.
Was ist jetzt los? Die alten .exe laufen vor einer neukompilierung einwandfrei, danach aber nicht.
Die Packages und Componenten sind aber die gleichen (aus meinem Archiv). Es hat sich (so sehe ich es) nichts geändert.
Auch habe ich libMySQL.dll von ZEOS gegen meine getauscht (so wie früher auch).

Bitte HILFE!

DANKE!

Gruß Matthias
herzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 168

WINXP pro, SUSE Linux 9.0
D7 Pers.
BeitragVerfasst: Di 25.01.05 23:58 
Wird denn immer der richtige Datentyp als Parameter übergeben ?

Mal nen Auszug.....
Zitat:

The Assigned function checks to see if a reference is not nil. It returns True if not nil, and False if nil.

Use of a Nil reference will result in an exception.

The three versions of Assigned allow the function to work on data pointers, object references, and class method references.

It is better to use Assigned rather than Nil when referring to methods so as to distinguish from the checking of a nil result of a method.
MatthiasS Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Do 27.01.05 12:19 
Danke für die Mühe.

Ich habe jetzt alle Komponenten nochmal entfernt und neu kompiliert und eingebunden.
Jetzt geht es. Warum weiss ich nicht, aber egal ...

Trotzdem vielen Dank...