Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi [TMS] Data Modeler - Aurelius - SQLite (https://www.delphipraxis.net/172426-%5Btms%5D-data-modeler-aurelius-sqlite.html)

stahli 2. Jan 2013 23:16

[TMS] Data Modeler - Aurelius - SQLite
 
Liste der Anhänge anzeigen (Anzahl: 2)
Ich teste gerade mal etwas das TMS-Framework...

Ich habe mit dem Data Modeler eine SQLite-Datenbank erzeugt, da mir das am schlankesten erscheint (Bild1).
Dann erzeuge ich aus dem Modell entsprechende Klassen:
Delphi-Quellcode:
...
  [Entity]
  [Table('Job')]
  [Id('FId', TIdGenerator.IdentityOrSequence)]
  TJob = class
  private
    [Column('Id', [TColumnProp.Required, TColumnProp.NoInsert, TColumnProp.NoUpdate])]
    FId: integer;
   
    [Column('Name', [], 40)]
    FName: Nullable<string>;
  public
    property Id: integer read FId;
    property Name: Nullable<string> read FName write FName;
  end;
...
Zur Laufzeit wird ein Manager erzeugt und per Button ein Job-Objekt hinzugefügt.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Left := 0;
  Top := 0;

  // SQLConnection1 is a dbExpress TSQLConnection component
  // You can use several different data-access component libraries
  MyConnection := TDBExpressConnectionAdapter.Create(SQLZipJob, false);

  DBManager := TDatabaseManager.Create(MyConnection);
  DBManager.BuildDatabase;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Job: TJob;
  Manager: TObjectManager;
begin
  Job := TJob.Create;
  Job.Name := TimeToStr(Now);
  Manager := TObjectManager.Create(MyConnection);
  try
    Manager.Save(Job); // Error !!!
    // JobId := Job.Id;
  finally
    Manager.Free;
  end;
end;
Beim Speichern gibt es einen Fehler (siehe Bild 2).
Mir gelingt es nicht, ein funktionsfähigen Primary Key zu definieren (habe verschiedene Feldtypen versucht).

Kann jemand helfen?

Morphie 3. Jan 2013 10:46

AW: [TMS] Data Modeler - Aurelius - SQLite
 
Fehlt in deiner SQLite-DB vielleicht einfach ein autoincrement?
http://www.sqlite.org/autoinc.html

stahli 3. Jan 2013 11:13

AW: [TMS] Data Modeler - Aurelius - SQLite
 
Hatte ich auch versucht, ebenso wie ein einfaches Integer- oder Char-Feld.

Der ORM soll ja offenbar die Id´s erzeugen (jedenfalls ist ein Generator-Attribut angegeben), aber ich bekomme diverse Fehlermeldungen bei unterschiedlichen Versuchen...

Sonst frage ich mal TMS nach, ob die einen Tipp für mich haben (wollte sowiso nochmal wegen dem Grid nachfragen).

stahli 5. Jan 2013 18:26

AW: [TMS] Data Modeler - Aurelius - SQLite
 
Hmm, ich habe jetzt mal mit dem SQLite-Browser eine Tabelle erzeugt:
- ID: integer primary key
- Name: Text
Wenn ich in dem Browser Zeilen hinzufüge wird ID automatisch incrementiert.

Wenn ich das im Datenexplorer von Delphi tue, dann wird bemeckert, dass ID nicht leer sein darf.

Für mich sieht das so aus, dass DBExpress AutoInc nicht unterstützt und dass Aurelius deswegen Probleme bekommt.

Ich habe mal TMS angefragt. Den Support habe ich bereits als sehr nett und hilfsbereit kennen gelernt
(was man von Emba in anderem Zusammenhang leider nicht sagen kann).

stahli 6. Jan 2013 22:10

AW: [TMS] Data Modeler - Aurelius - SQLite
 
TMS hat schnell geantwortet:

Zitat:

Hello André,

... But it looks like you are using DBExpress to connect to the SQLite database and if that’s correct, then I must say that DBExpress + SQLite is not supported by Aurelius.
The reason is simply because SQLite driver in DBExpress behaves very differently from the other drivers so it’s currently incompatible with Aurelius.
You can just the native SQLIte driver in Aurelius, or a 3rd party one like AnyDac or UniDac.

If you have more questions, let me know.

Kind regards,
Jetzt habe ich das auch im Manual gefunden (siehe Bild). War also mein Fehler.

Allerdings komme ich auch mit Firebird noch nicht ganz zurecht, das ich zwischenzeitlich getestet hatte. Mal schauen...


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