![]() |
AW: ClientDataSet.CreateDataSet + Exception
Hier das DocWiki dazu.
![]() ...siehe Sichtbarkeit von Klassenelementen (private/public etc.) |
AW: ClientDataSet.CreateDataSet + Exception
Sorry für die blöde Nachfrage ... Konstanten packt man aber immer noch nach die implementation, oder ? Also ..
Delphi-Quellcode:
Hans
var
MahnForm: TMahnForm; implementation {$R *.dfm} uses DruckenUnit, ProtokollUnit, MailenUnit; const CKundenNummer = 0; CKundeKurz = 1; CRechnungsNr= 2; CRechnungsDatum = 3; |
AW: ClientDataSet.CreateDataSet + Exception
Das kommt drauf an.
Auch sowas kann man problemlos in eine Klasse packen. Konstanten, andere "interne" Typen und globale Variablen sind alles möglich.
Delphi-Quellcode:
Dass ich die Sichtbarkeit (private) in die selbe Zeile schreibe und jeden Teil quasi als eigentständigr Section anlege, ist eine ganz persönliche Sache, die ich für mich beschlossen habe, für einen übersichtlicheren Code.
type
TMyClass = class private type TSubClass = class end; private const cTheConst = 123; private class var FTheVar: Integer; end;
Delphi-Quellcode:
type
TMyClass = class private FVariable: Integer; type TSubClass = class end; const cTheConst = 123; class var FTheGlobalVar: Integer; var FVariable2: Integer; // das Erste ist immer implizit, darum schreibt da niemand ein VAR hin, wenn er Felder (Variablen) in Klassen nutzt class procedure Methode; procedure KlassenMethode; public constructor Create; end; |
AW: ClientDataSet.CreateDataSet + Exception
Sorry - aber ich muss auf das Thema der Exception noch einmal zurückkommen:
- Programm compiliert richtig - Sobald es zum ClientDataSet.CreateDataSet kommt gibt es eine Exception - Ich habe Delphi (10.1 Starter) jetzt dreimal de- und neu installiert, ändert sich leider nur nichts. - Es kann nur etwas mit der Installation, nichts mit dem Memory zu tun haben (Festplatten in zweiten, baugleichen Rechner gepackt) - Auf dem Laptop geht alles Hat jemand noch eine Idee die NICHT eine komplette Neuinstallation von Windows bedeutet ?? Gruß Hans --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Mahnung.exe ist eine Exception der Klasse $C0000005 mit der Meldung 'access violation at 0x00685913: read of address 0x00000000' aufgetreten. --------------------------- Anhalten Fortsetzen Hilfe --------------------------- Der Aufruf-Stack sieht so aus: :00685913 TCustomClientDataSet.InternalCheck + $4F :0068496e TCustomClientDataSet.CreateDSBase + $3E MahnUnit.TMahn.TabellenHeaderSetzen MahnUnit.TMahn.FormActivate($2DE2E60) :005e2395 TCustomForm.Activate + $2D :00535152 TWinControl.WndProc + $5EE :005df962 TCustomForm.WndProc + $652
Delphi-Quellcode:
procedure TMahn.TabellenHeaderSetzen;
begin ClientDataSet_OPListe.Active := False; ClientDataSet_OPListe.FieldDefs.Clear; ClientDataSet_OPListe.FieldDefs.Add('KundenNummer', ftString, 5); ClientDataSet_OPListe.FieldDefs.Add('KundeKurz', ftString, 30); ClientDataSet_OPListe.FieldDefs.Add('RechnungNr', ftString, 10); ClientDataSet_OPListe.FieldDefs.Add('RechnungsDatum', ftString, 10); ClientDataSet_OPListe.FieldDefs.Add('FaelligDatum', ftString, 10); ClientDataSet_OPListe.FieldDefs.Add('Betrag', ftString, 10); ClientDataSet_OPListe.FieldDefs.Add('FaelligTage', ftString, 4); ClientDataSet_OPListe.FieldDefs.Add('MahnStufe', ftString, 1); ClientDataSet_OPListe.FieldDefs.Add('Mahnen', ftString, 1); ClientDataSet_OPListe.FieldDefs.Add('Firma1', ftString, 30); ClientDataSet_OPListe.FieldDefs.Add('Firma2', ftString, 30); ClientDataSet_OPListe.FieldDefs.Add('Strasse', ftString, 30); ClientDataSet_OPListe.FieldDefs.Add('Land', ftString, 2); ClientDataSet_OPListe.FieldDefs.Add('PLZ', ftString, 5); ClientDataSet_OPListe.FieldDefs.Add('Ort', ftString, 30); ClientDataSet_OPListe.FieldDefs.Add('Telefax', ftString, 30); ClientDataSet_OPListe.FieldDefs.Add('Email', ftString, 90); ClientDataSet_OPListe.FieldDefs.Add('Vertreter', ftString, 50); ClientDataSet_OPListe.FieldDefs.Add('RnEmail', ftString, 90); ClientDataSet_OPListe.CreateDataSet; ClientDataSet_OPListe.Active := True; end; |
AW: ClientDataSet.CreateDataSet + Exception
Es würde mich sehr wundern, wenn das was mit dem Setup von Delphi oder Windows zu tun hat.
Was hat denn das CDS an Eigenschaften gesetzt? Du kannst auch die Debug-DCUs aktivieren im Einzelschrittmodus prüfen, wo die Exception genau auftritt. |
AW: ClientDataSet.CreateDataSet + Exception
Zitat:
wenn ich das debugge gibt es die Exception genau bei ClientDataSet.CreateDataSet Und es muss was mit der Installation zu tun haben - denn wenn ich den gleichen Source auf dem Laptop laufen lasse dann funktioniert es. Gruß Hans |
AW: ClientDataSet.CreateDataSet + Exception
Ja, aber zu der Methode gibt es in DBClient.pas ja auch Code + so würdest du sehen, an welcher Stelle das Problem auftritt.
Möglicherweise gibt es am Laptop andere Dateien oder Pfade oder Lese/Schreibrechte. Im schlimmsten Fall ist das Problem nach einer Neuinstallation weg, aber dann weißt du immer noch nicht, warum. |
AW: ClientDataSet.CreateDataSet + Exception
Vielleicht liege ich ja jetzt ganz falsch:
Ich finde in deinem Quelltext lediglich DataSource_OpListe: TDataSource, aber kein ClientDataSet_OPListe: TClientDataSet. Liegt dieses ClientDataSet wirklich auf dem Form? Wenn ja, warum wird es nicht in deiner Klasse aufgeführt? Grüße Mikhal PS: CreateDataSet legt einen leeren Datensatz an, dazu muss das ClientDataSet active sein oder mit Open geöffnet sein... |
AW: ClientDataSet.CreateDataSet + Exception
Moin Mikhal,
Zitat:
Zitat:
Hans |
AW: ClientDataSet.CreateDataSet + Exception
Tausch doch einfach mal die Reihenfolge der letzten beiden Zeilen deiner Routine, dann siehst du, ob das der Fehler ist.
Vergleiche mal diese letzten beiden Zeilen mit der Version auf dem Laptop... Und nach wie vor vermisse ich das ClientDataSet in deiner Formularklasse TMahn. Da es sich ja kompilieren lässt, wird es wohl bei der Übertragung verschütt gegangen sein... Grüße Mikhal |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:00 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-2025 by Thomas Breitkreuz