Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ClientDataSet speicherfehler [EDBClient Invalid Parameter] (https://www.delphipraxis.net/117243-clientdataset-speicherfehler-%5Bedbclient-invalid-parameter%5D.html)

Kytrix 14. Jul 2008 19:56


ClientDataSet speicherfehler [EDBClient Invalid Parameter]
 
Delphi-Quellcode:
procedure TFMain.FormCreate(Sender: TObject);
Var sExePath: String;
    CDS: TClientDataSet;
begin
  sExePath:=ExtractFilePath(Application.ExeName);
  If not FileExists(sExePath+'UserMailDB.xml') then
  begin
    CDS:= TClientDataSet.Create(Self);
    CDS.FieldDefs.Add('Absender', ftString, 0);
    CDS.FieldDefs.Add('Empfanger', ftString, 0);
    CDS.FieldDefs.Add('Betreff', ftString, 0);
    CDS.FieldDefs.Add('Inhalt', ftMemo, 0);
    CDS.FieldDefs.Add('Datum', ftDateTime, 0);
    CDS.FieldDefs.Add('Bytes', ftInteger, 0);
    CDS.FieldDefs.Add('ID', ftAutoInc, 0);
    CDS.CreateDataSet;
    CDS.SaveToFile(sExePath+'UserMailDB.xml', dfXML); //Hier bekomme ich die Fehlermeldung//
    ClientDSOut.LoadFromFile(sExePath+'UserMailDB.xml');
  end
  else
  begin
    ClientDSOut.LoadFromFile(sExePath+'UserMailDB.xml');
  end;
end;
Ich bekomme an der markierten Quellcodestelle die Fehlermeldung "Projekt Projekt1.exe raised exception class EDBClient with Message 'Invalid Parameter'. Process stopped use Step or Run to continue."

Kann mir jemand weiterhelfen?

Danke im vorraus.

Pluto 21. Jul 2008 21:38

Re: ClientDataSet speicherfehler [EDBClient Invalid Paramete
 
Der Fehler lautet invalid Parameters.
Er erscheint nicht bei Save .., sondern bereits bei CreateDatasets
Du kannst keine strings mit Parameter Länge 0 spezifizieren.

Ändere Deinen Code mal auf
Delphi-Quellcode:
    CDS.FieldDefs.Add('Absender', ftString, 10);
    CDS.FieldDefs.Add('Empfanger', ftString, 10);
    CDS.FieldDefs.Add('Betreff', ftString, 10);
    CDS.FieldDefs.Add('Inhalt', ftMemo, 100);
    CDS.FieldDefs.Add('Datum', ftDateTime);
dann funktionierts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 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