AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ClientDataSet.CreateDataSet + Exception

ClientDataSet.CreateDataSet + Exception

Ein Thema von H.Bothur · begonnen am 9. Jun 2017 · letzter Beitrag vom 16. Jun 2017
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.275 Beiträge
 
Delphi 12 Athens
 
#11

AW: ClientDataSet.CreateDataSet + Exception

  Alt 10. Jun 2017, 13:45
Hier das DocWiki dazu. http://docwiki.embarcadero.com/RADSt...jekte_(Delphi)
...siehe Sichtbarkeit von Klassenelementen (private/public etc.)
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: ClientDataSet.CreateDataSet + Exception

  Alt 10. Jun 2017, 19:56
Sorry für die blöde Nachfrage ... Konstanten packt man aber immer noch nach die implementation, oder ? Also ..

Delphi-Quellcode:
var
  MahnForm: TMahnForm;

implementation
{$R *.dfm}

uses DruckenUnit, ProtokollUnit, MailenUnit;

const
  CKundenNummer = 0;
  CKundeKurz = 1;
  CRechnungsNr= 2;
  CRechnungsDatum = 3;
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#13

AW: ClientDataSet.CreateDataSet + Exception

  Alt 10. Jun 2017, 20:10
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:
type
  TMyClass = class
  private type
    TSubClass = class
    end;
  private const
    cTheConst = 123;
  private class var
    FTheVar: Integer;
  end;
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.

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;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (10. Jun 2017 um 20:17 Uhr)
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: ClientDataSet.CreateDataSet + Exception

  Alt 15. Jun 2017, 15:59
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;
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.172 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: ClientDataSet.CreateDataSet + Exception

  Alt 16. Jun 2017, 10:26
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.
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: ClientDataSet.CreateDataSet + Exception

  Alt 16. Jun 2017, 10:54
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.
Moin,

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
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.172 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: ClientDataSet.CreateDataSet + Exception

  Alt 16. Jun 2017, 10:59
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.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: ClientDataSet.CreateDataSet + Exception

  Alt 16. Jun 2017, 11:05
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...
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!

Geändert von mikhal (16. Jun 2017 um 11:12 Uhr)
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: ClientDataSet.CreateDataSet + Exception

  Alt 16. Jun 2017, 11:48
Moin Mikhal,

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?
Doch - den TClientDataSet gibt es und er ist auch entsprechend mit dem TDataSource verbunden.

Zitat:
PS: CreateDataSet legt einen leeren Datensatz an, dazu muss das ClientDataSet active sein oder mit Open geöffnet sein...
Das könnte es sein - wenn denn das ganze überhaupt nicht laufen würde - wie gesagt, auf dem Laptop läuft es ohne Probleme. :_(

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
795 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: ClientDataSet.CreateDataSet + Exception

  Alt 16. Jun 2017, 12:47
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
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:55 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