Autor Beitrag
r4id3n
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 115

Win XP Home, Win XP Pro
D6 Prof, D7 Ent, K3 Ent
BeitragVerfasst: Mo 25.10.04 19:49 
Hallo zusamen, derzeit arbeite ich an einem CMS-System und brauche einen DBLayer der es mir ermöglicht komplette Objekte in einer Datenbank zu speichern (Stickwort Persistent Object Framework). Ich suche ein Projekt ala InstantObjects, welches mitlerweile Open Source ist, allerdings jedoch nicht unter Kylix läuft... Kennt jemand von euch ein kostenloses oder open source projekt (eventuell auch eine portrierung von InstantObjects)? Bedingung allerdings, das ganze muss auch unter Kylix laufen!!

THX
r4id3n Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 115

Win XP Home, Win XP Pro
D6 Prof, D7 Ent, K3 Ent
BeitragVerfasst: Fr 29.10.04 14:10 
Nachdem sich anscheindend noch niemand mit der Materie beschäftigt hat, verusche ich derzeit meinen eigenen Layer zu entwickeln! Hat sich schon jemand mit TPersistent auseinander gesetzt und versucht eine eigene SaveTOXX zu schreiben??

THX
r4id3n Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 115

Win XP Home, Win XP Pro
D6 Prof, D7 Ent, K3 Ent
BeitragVerfasst: So 14.11.04 17:40 
So, das teil ist fertig! Basisklasse, von der beliebig abgeleitet werden kann ....
Die Klasse besitzt Childs einer beliebigen abgeleiteten klasse, die ebenfalls mit gespeichert werden.

Falls jemand also sowas mal braucht, der kann sich gerne bei mir melden. Derzeit wird die ZEOS Lib verwendet, alle möglichen DBs sind also denkbar!
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Mo 15.11.04 08:56 
Hi r4id3n,

mich interessiert das Thema brennend. Kannst Du mir ein paar Infos (Source) rübermailen??

Grüße
Lemmy
r4id3n Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 115

Win XP Home, Win XP Pro
D6 Prof, D7 Ent, K3 Ent
BeitragVerfasst: Mo 15.11.04 16:07 
Derzeit basiert das teil, wie schon gesagt, auf der ZEOS Lib.
Die Basisklasse besitzt die Funktionen
- ObjectID // Eindeutige ID des Objektes
- LoadMe(WithChilds:boolean=false) // Läd objekt aus der Datenbank evtl. incl Childs
- SaveMe(WithChilds:boolean=true) // Speichert Objekt in der Datenbank
- DeleteMe(WithChilds:boolean=true) // Löscht Objekt aus der Datenbank
- Childs // Liste von Childobjekten des Typs der Basisklasse. Kann aber auch abgeleitete Klassen aufnehmen. (Baumstruktur)

Von dieser Basisklasse können jetzt einfach Klassen abgeleitet werden, die dann selber in der Datenbank eine Tabelle erstellt die alle PROPERTIES enthält.


z.b.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
TMeineTestClass = class(TDBBasicObject)
private
FName:String;
FVorname:String;
published
property Name:String read FName write FName;
property Vorname:String read FVorname write FVorname;


Dann kann ich z.B.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Name1:=TMeineTestClass.create(MeineZEOSDBConnection);
Name1.vorname:='hallo';
Name1.name:='test';
// Name2 wird child von Name1
Name2:=TMeineTestClass.create(Name1);
Name2.vorname:='hallo2';
Name2.name:='weifnriu';

//speichert Name 1 incl. Name2 als child, name 2 kann aber auch eine andere Klasse abgeleitet von TMeineTestClass oder TDBBasicObject sein 
Name1.saveme(true);


Das Laden geht dann genau so:

ausblenden Quelltext
1:
2:
3:
4:
Name1:=TMeineTestClass.create(MeineZEOSDBConnection);
Name1.ObjectID:=Mussichmirvorherirgendwogemerkthaben;
// Läd name 1 incl name 2!
Name1.LoadMe(true);


Leider können derzeit aber nur Stringkompatible properties (string, int, bool, ...) gespeichert werden!

Da in dem Teil verdammt viel arbeit steckt, will ich das teil nicht für kommerzielle zwecke kostenlos zur verfügung stellen! Das wird teil eines OS Projektes. Ich überlege aber auch, die Klasse als eigenes Framework zur verfügung zu stellen (unter GPL) wenn du es privat nutzen willst, dann sag bescheid, wenn das teil in ein kommerzielles produkt soll, dann müssen wir uns mal über den preis unterhalten ;-)
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Di 16.11.04 13:03 
Hi,

da ich selbst so etwas vergleichbares einsetze würde mich lediglich der Teil des Speichers interessieren, da ich die Zuweisung Object.Property <-> Tabelle.Attribut noch "manuell" vornehmen muss. Ich vermute mal, dass Du da etwas besseres hast. Allerdings bringt mir das auch wiederum nix, denn ich brauch auch was für Int64, Blobs und Currency....

Grüße
Lemmy
r4id3n Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 115

Win XP Home, Win XP Pro
D6 Prof, D7 Ent, K3 Ent
BeitragVerfasst: Di 16.11.04 15:43 
INT64 und Currency sind Stringkopatible und müssten funktionieren! Wie das mit dem BLOB aussieht kann ich dir nicht sagen! Was speicherst du denn in dem Feld (bzw. welchen Datentyp hat die Property in deiner Klasse)??
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: Di 16.11.04 17:09 
Hi,

meistens sind es Objekte von TStringList, in ein paar Fällen aber auch TImage oder sonstige Dateien. Allerdings muss ich zugeben, dass ich in diesen Fällen bisher noch keine Objekte einsetze (also bei TImage bzw. sonstigen Dateien). Wir aber vielleicht in der Zukunft mal sein (je nachdem wie viel Zeit ich für den Umbau noch aufwenden darf).
r4id3n Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 115

Win XP Home, Win XP Pro
D6 Prof, D7 Ent, K3 Ent
BeitragVerfasst: Di 16.11.04 18:17 
Hmm .... Wenn du die Images in HEX umwandelst kannst du die als strings speichern ... Leider werden Images und co. nicht unterstützt!

Wie gesagt ... Wenn du es nicht kommerziell nutzt ... Der source ist GPL! D.h. alles, was damit oder mit teilfunktionen entwickelt wird, muss ebenfalls GPL sein!