AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie würdet Ihr das lösen?

Ein Thema von Kralle · begonnen am 11. Jan 2015 · letzter Beitrag vom 17. Jan 2015
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Perlsau
(Gast)

n/a Beiträge
 
#11

AW: Wie würdet Ihr das lösen?

  Alt 11. Jan 2015, 14:56
... Mein erster Ansatz war die Informationen immer an ganz bestimmte Stellen eines StringGrids zu schreiben und das hinterher in eine Datei zu schreiben. ... Welche Möglichkeiten gibt es noch?
Wie Sir Rufo bereits bemerkt hat: Wirklich niemals, auf gar keinen Fall, echt nicht darstellende Komponenten zur Datenspeicherung einsetzen! Darstellende Komponenten sollten allein der Darstellung bzw. als Benutzerschnittstelle dienen.

Ich würde für sowas immer eine Datenbank nehmen. Das ist übersichtlich, leicht zu verwalten und leicht zu pflegen. Daten sind leicht zu selektieren, zu sortieren, zu speichern usw. Alles andere ist bei Programmen, die über ein Hello World hinausgehen, der falsche Ansatz.

Einfachste Datenbank-Verwendung beschreibt z.B. ein Tutorial im Delphi-Treff: Einfache Datenbanken mit MyBase. Da du aber sowieso mit XE7 arbeitest, kannst du auch gleich eine richtige Datenbank einsetzen und diese mit den FireDac-Komponenten ansprechen. Hier würde ich zu einer Firebird-Datenbank raten, die ist leicht zu erlernen und stellt sogar eine Embedded-Variante zur Verfügung (= läuft dann auch ohne installierten Firebird-Server).

Weitere Datenbank-Tutorials im Delphi Treff

Zum Erstellen einer Firebird-Datenbank installiert man sich erst einmal den passenden Firebird-Server. Danach lädt man sich von IbExpert den Datenbank-Manager herunter.

Weitere Infos zur Datenbank-Entwicklung erhältst du bei Bedarf, falls du dich dafür entscheiden solltest.

Bemerkung:
Wenn man sich mal daran gewöhnt hat, mit Datenbanken zu arbeiten, möchte man das nicht mehr missen
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: Wie würdet Ihr das lösen?

  Alt 11. Jan 2015, 15:06
Man könnte also die Basisdaten folgendermassen darstellen:
Delphi-Quellcode:
TDataItem = class
public
  property Code : Integer;
  property Comment : string;
  property Value : string;
end;

TData = class
public
  property Dialog : TList<TDataItem>;
end;
Da ich keinen Gesamtüberblick habe, kann ich das natürlich schlecht überschauen, was nun wirklich benötigt wird, bzw. wie man die Struktur passend in einer Klasse darstellen kann. Wichtig ist und bleibt aber immer der Zusammenhang zwischen Daten und Kontext. Die Eigenschaften Comment und Value sind beide vom Typ string, aber durch den Aufbau der Klasse und die Benennung stelle ich auch noch den Kontext dar.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Wie würdet Ihr das lösen?

  Alt 11. Jan 2015, 21:48
Hier würde ich zu einer Firebird-Datenbank raten, die ist leicht zu erlernen.
Da würde ich lieber SQLite nehmen, sie ist zig mal einfacher als Firebird und installieren muss man da auch nix.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#14

AW: Wie würdet Ihr das lösen?

  Alt 11. Jan 2015, 22:24
Da würde ich lieber SQLite nehmen, sie ist zig mal einfacher als Firebird und installieren muss man da auch nix.
Also wenn du Firebird wirklich kennen würdest – und das wäre ja die Voraussetzung für den Vergleich mit SQlite –, dann wüßtest du, daß man auch Firebird nicht installieren muß. Zum Entwickeln einer Firebird-Embedded-Anwendung genügt es nämlich, die entsprechende Dll ins Bin-Verzeichnis zu kopieren und der Connect-Komponente lediglich den vollständigen Dateinamen mitzuteilen. Dennoch empfehle ich stets auch die Installation des Firebird-Servers (geht quasi vollautomatisch), weil sich's dann leichter entwickeln läßt.

Im Grunde ist's mir aber völlig egal, was du lieber nehmen würdest. Das kannst du halten wie "sella uff'm Dach". Jeder nimmt am liebsten immer das, was er schon kennt und macht das andere schlecht, weil er's nicht lernen will. Derartige Threads hatten wir hier ja schon bis zum Abwinken und darum geht's hier auch nicht, sondern um die Beantwortung der Frage, wie man das Problem des TE am besten lösen könnte. Wenn er sich für eine Datenbank statt ominösem Dateigefuchtel entscheidet, ist's mir auch piepe, welche DB er sich da aussucht.

Alles klar?
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#15

AW: Wie würdet Ihr das lösen?

  Alt 11. Jan 2015, 22:41
Hast Du schlecht geschlafen oder was?
Ich mache keine DB schlecht, oder kritisiere sonst irgendwas... ich schreibe nur wie ICH (und nicht jemand) das machen würde. Jeder schreibt hier was er machen würde, und ich mache nichts anderes. Deswegen verstehe ich deine Aufregung nicht.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Wie würdet Ihr das lösen?

  Alt 11. Jan 2015, 23:22
Zitat:
Ich mache keine DB schlecht, oder kritisiere sonst irgendwas...
Zitat:
Da würde ich lieber SQLite nehmen, sie ist zig mal einfacher als Firebird und installieren muss man da auch nix.
Dann erklär uns doch einfach, warum SQLite zig mal einfacher wie FireBird ist.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#17

AW: Wie würdet Ihr das lösen?

  Alt 11. Jan 2015, 23:28
Die Zeilennummern dürfen am Ende KEINE Lücken aufweisen
Dann numeriere eben kurz vor dem Ende.
Manche Sheets und deren Objekte dürfen aber auch nur dann aktiv sein wenn auf den vorherigen Sheets bestimmte Bedingungen erfüllt sind.
Das ist ein Problem der Oberfläche.

Und als Zwischenspeicher würde ich eine TList, TObjectlist oder eine TStringlist benutzen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#18

AW: Wie würdet Ihr das lösen?

  Alt 11. Jan 2015, 23:29
Zitat:
Ich mache keine DB schlecht, oder kritisiere sonst irgendwas...
Zitat:
Da würde ich lieber SQLite nehmen, sie ist zig mal einfacher als Firebird und installieren muss man da auch nix.
Dann erklär uns doch einfach, warum SQLite zig mal einfacher wie FireBird ist.
Wäre dafür nicht ein eigener Thread geeigneter?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#19

AW: Wie würdet Ihr das lösen?

  Alt 12. Jan 2015, 04:05
Hast Du schlecht geschlafen oder was?
Ich mache keine DB schlecht, oder kritisiere sonst irgendwas... ich schreibe nur wie ICH (und nicht jemand) das machen würde. Jeder schreibt hier was er machen würde, und ich mache nichts anderes. Deswegen verstehe ich deine Aufregung nicht.
Nein danke, ich hatte zu dieser Zeit noch gar nicht geschlafen, sondern bis kurz vorher gearbeitet und dank etlicher Erfolgserlebnisse sogar auffallend gute Laune

Die Frage danach, ob bei dir jetzt alles klar sei, sollte dich keinesfalls provozieren, sondern diente einfach nur der Bestätigung, daß du meinen Ausführungen zu folgen verstehst. Aufgeregt hatte ich mich dabei in der Tat kein bißchen, das hast du dir lediglich eingebildet

Und nun wieder zurück zum Thema, bitte

Achso, bevor ich's vergesse: Ist es richtig anzunehmen, daß du Firebird nicht wirklich aus der Praxis kennst
Die Annahme liegt nahe, da du wie bereits erwähnt als angeblichen Vorteil von SqLite angibst, man müsse es nicht installieren, wobei du offenbar nicht wußtest, daß man Firebird ebenfalls nicht installieren muß, wenn man die Embedded-Variante wählt. Oder ist es nicht tatsächlich so, wie ich bereits oben ausführte: Man verteidigt, was man kann/kennt, und lehnt ab, was man nicht kann/kennt?
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#20

AW: Wie würdet Ihr das lösen?

  Alt 12. Jan 2015, 13:50

[SIZE="9"]Achso, bevor ich's vergesse: Ist es richtig anzunehmen, daß du Firebird nicht wirklich aus der Praxis kennst
Na ja... was heißt wirklich? Klar habe ich mich mit Firebird beschäftigt aber ich fand SQLite einfacher, allein bei der "Einrichtung" schon. Will hier aber nicht mehr darauf eingehen, sonst kommen wir vom Thema ab. Aber wenn Du irgendwelche Tutorials für Firebird hast, dann schaue ich mir diese DB noch mal an.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    

 

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 20:26 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