Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Objectlist wie eine DB verwenden? (https://www.delphipraxis.net/48527-objectlist-wie-eine-db-verwenden.html)

Taladan 26. Jun 2005 21:12


Objectlist wie eine DB verwenden?
 
Hallo. Ich nutze eine Objectlist und die wird im laufe des Programmes wie eine DB verwedet. D.h. es werden auch bestimmte Felder mit ein ander verknüft. Doch bevor ich mich voll und ganz drauf stürze, ist mir ein Problem auf gefallen. Die Objectliste wird auch zur Laufzeit erweitert, des weiteren sollen und können Elemente verschwinden. Da hab ich nur das problem mit der ID. Würde ja gerne auf ne Datenbank zurückgreifen. aber delphi2005Personal :wall:...
Oder sollte ich lieber auf .Net umschwenken, da es da wohl noch Datenobjecte gibt...

Robert_G 26. Jun 2005 21:33

Re: Objectlist wie eine DB verwenden?
 
Zitat:

Zitat von Taladan
Oder sollte ich lieber auf .Net umschwenken, da es da wohl noch Datenobjecte gibt...

Das würde ich dir wirklich empfehlen!
Nimmst du D2005 oder #develop (und somit .Net 1.1) würde ich dir für den Anfang die ArrayList als Grundlage empfehlen.
Sie ist etwas prökelig, aber du kannst deine abgeleitete Klasse später immer noch ändern. ;)

Das schöne ist nun, dass du mit jeder Implementierung von IList DataBinding für Listen bekommst.
Du wirst später noch IBindingList ( :) ) entdecken, aber Anfangs solltest du es möglichst simpel halten.
Cool am DataBinding ist, dass es fast _jedes_ Control unterstützt.

Als abstraktes Beispiel wäre folgendes möglich:
Delphi-Quellcode:
type
  TSomeClass = class
  private
    fFirstvalue :Integer;
    fSecondValue :string;
  public
    // Die properties sind grundlegend wichtig für DataBinding!
    property Firstvalue :Integer read fFirstvalue write fFirstvalue;
    property SecondValue :string read fSecondValue write fSecondValue;
    constructor Create(firstValue :Integer; secondValue :string);
    // hier packst du irgendwas rein, was dein Objekt in der ComboBox repräsentieren soll
    // z.Bsp.: result := SecondValue;
    function ToString :string; override;
  end;
Der Code würde ein paar Objekte in die Liste packen und diese an eine ComboBox binden.
Außerdem bekommen 2 Textboxes (TextBox = TEdit für .Net) jeweils eine der beiden Eigenschaften des ausgewählten Objektes der Liste an ihre Text Eigenschaften gebunden.
Delphi-Quellcode:
var
  List :ArrayList;
begin
  List := new ArrayList();
  List.Add(SomeClass.Create(1, 'a'));
  List.Add(SomeClass.Create(2, 'b'));
  List.Add(SomeClass.Create(3, 'c'));
  List.Add(SomeClass.Create(4, 'd'));

  ComboBox.DataSource := List;

  FirstValueTextbox.DataBindings.Add('Text', List, 'FirstValue');
  SecondValueTextbox.DataBindings.Add('Text', List, 'SecondValue');
end;
Man kann sich nun den Datensatz in der ComboBox auswählen und mit den 2 TextBoxes bearbeiten.

Taladan 26. Jun 2005 21:37

Re: Objectlist wie eine DB verwenden?
 
Wie bereits in einen anderen Thread von mir, fragte ich nach der Entwicklerumgebung, worauf ich mich stürzen solle. Da wurde fast einhellig nach wie vor Win32 angegeben, weil .Net ja noch in der Entwicklung ist und selbst auf den meisten Windowsplattformen nicht unterstützt wird.

Aber zwei andere Fragen:
Gibt es irgenwo ein kleines Tutorial mit .Net und DB?
Brauch ich eine spezielle DB oder kann Delphi auch als .csv abspeichern?

MagicAndre1981 26. Jun 2005 22:01

Re: Objectlist wie eine DB verwenden?
 
Zitat:

Zitat von Taladan
..., weil .Net ja noch in der Entwicklung ist und selbst auf den meisten Windowsplattformen nicht unterstützt wird.

.NET gibts ab Windows98, reicht dir das nicht?

Zitat:

Zitat von Taladan
Gibt es irgenwo ein kleines Tutorial mit .Net und DB?

Schau mal in die Hilfe vom .Net SDK, das reicht für den Anfang. Dann kann ich noch Codeproject.com empfehlen :thumb:

Robert_G 26. Jun 2005 22:01

Re: Objectlist wie eine DB verwenden?
 
Zitat:

Zitat von Taladan
Wie bereits in einen anderen Thread von mir, fragte ich nach der Entwicklerumgebung, worauf ich mich stürzen solle. Da wurde fast einhellig nach wie vor Win32 angegeben

Hast du mal einen Link dazu? Anscheinend habe ich da nichts geschrieben. :lol:
Zitat:

Zitat von Taladan
, weil .Net ja noch in der Entwicklung ist und selbst auf den meisten Windowsplattformen nicht unterstützt wird.

Diese Argumentation ist genauso naiv wie sie dumm ist.
Win9X und NT4 könnte man gelten lassen, solange man die Absicht hat solche mittelalterlichen System zu unterstützen. Die habe ich selbst vor meinem Sprung zu .Net nicht unterstützt. (bis auf NT4, was aber wohl kaum noch irgendwo laufen dürfte ;) )
Ich würde es niemanden ruhigen Gewissens empfehlen können auch nur irgendwas in Win32 anzufangen!

Zitat:

Gibt es irgenwo ein kleines Tutorial mit .Net und DB?
Das internet ist voll davon. ;)
Im MSDN findest du auch einige Walkthroughs, die dich von Anfang bis zum Ende durchbegleiten.
Ansonsten www.codeproject.com , www.c-sharpcorner.com , www.gotdotnet.com um nur 3 zu nennen...
Hauptanlaufstelle für mich ist das MSDN. ;)
Zitat:

Brauch ich eine spezielle DB oder kann Delphi auch als .csv abspeichern?
Solange es einen ADO .Net Provider gibt, kannst du alles machen. (Es gibt sogar Freaks, die csv Provider geschrieben haben :shock: )
Und du wirst für fast jede DB einen Opensource oder Freeware Provider finden. ;)

Nachtrag:
Zitat:

.NET gibts ab Windows98, reicht dir das nicht?
.Net für alles unter Windows200 wird /nicht/ von MS unterstützt. Schon alleine die Tatsache, dass in .Net jeder String Unicode ist, oder viele Basisklassen auf NT APIs aufbauen...


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