Autor Beitrag
dragonlord
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP - SP2
D7 Ent.
BeitragVerfasst: Mo 27.12.04 15:47 
Hallo zusammen,

ich möchte ein kleines Projekt realisieren:
Der Hintergrund: Ich habe verwande in vielen teilen der Erde. Südamerika, Nordamerika, Deutschland , Italien etc.
Die Anzahl der Familienmitgleider ist wie man sich denken kann sehr beträchtlich.
Mein Vater hat vor einiger Zeit ein "Familienalbum" erstellt(Auf Papier) es gebunden, kopiert etc. Und ann einige weitergegeben. Ist natürlich Sauteuer. Das jedesmal auf Papier weiterzugeben.
Darum habe ich mir gedacht das ganze in einer Art Datenbank zu realisieren.
Ich möchte ein Foto und einige Infos als Text zu den jeweilogen Personen abspeichern.
Und "Interne Links": z.b. Sohn oder Tocher von: Blalbla (Und das als Verweis zu dem Datensatz des Vaters)

Habe bis jetzt noch keine Erfahrungen mit Darenbanken. Welche DB würder ihr für sowas nehmen. Wie würdet ihr vorgehen beim Aufbau der DB.
Wie wird überhaupt eine DB aufgebaut?

Gruss
dragonlord
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mo 27.12.04 15:56 
dragonlord hat folgendes geschrieben:
Welche DB würder ihr für sowas nehmen.

Da ich davon ausgehe, daß ihr keine tausende Datensätze habt ist es quasi egal. Nimm MySQL, die ist frei, einfach und für den Zweck schnell genug.

dragonlord hat folgendes geschrieben:
Wie würdet ihr vorgehen beim Aufbau der DB.

ER-Diagramm erstellen und dann zusammenklicken.

dragonlord hat folgendes geschrieben:
Wie wird überhaupt eine DB aufgebaut?

Die Frage werde ich dir jetzt garantiert nicht beantworten, denn zum einen führt das viel zu weit und zum anderen quillt das Internet vor Dokus über. Ein wenig googlen sollte da Wunder wirken.

Bis neulich ...
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 27.12.04 16:02 
ich würde dir access ans herz legen.
vorteil: du brauchst ned lange rumzukonfigurieren und kannst alles schön einfach und grafisch aufbauen.
mit VBA kannst du sogar noch eigene Formulare einfach dazuprogrammieren.
das ganze liegt dann in einer kleinen datei und jeder der access hat kann sichs anschauen.

Nachteil: man braucht "offiziell" eine Access-Lizenz :twisted:
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mo 27.12.04 16:07 
retnyg hat folgendes geschrieben:
ich würde dir access ans herz legen.

Er hat aber nach einer Datenbank gefragt :D

retnyg hat folgendes geschrieben:
Nachteil: man braucht "offiziell" eine Access-Lizenz

Die für ein Familienalbum wohl etwas zu teuer sein dürfte.
Wobei wenn ich mich recht entsinne ist Access doch eh nur ein Frontend für die Jet-Engine und diese ist afaik standardmäßig bei Windows dabei. Vielleicht gibt es dafür ja auch alternative Frontends.
Wodurch es aber immer noch keine ernsthafte DB wird.

Bis neulich ...
dragonlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP - SP2
D7 Ent.
BeitragVerfasst: Mo 27.12.04 16:10 
Also ich will das Frontend mit Delphi erstellen. Halt wegen der Lizens.
Ausserdem hat das ganze dann noch einen Lernfaktor.

Also ist die Access DB eine Jet-DB?
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mo 27.12.04 16:27 
dragonlord hat folgendes geschrieben:
Also ist die Access DB eine Jet-DB?

Nein. Access ist nur das Frontend (Oberfläche/GUI) für die Jet-Engine.
Ob und wenn ja wie man die Jet-Engine ohne Access ansprechen kann weiß ich nicht.

Bis neulich ...
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Mo 27.12.04 16:37 
du kannst aber mit access eine Access-Datenbank (*.mdb) erstellen, welche die von dir gewünschten tabellen beinhaltet und relativ leicht per ADO oder so aus vielen Programmen angesprochen werden kann, u.a. mit delphi.

Die Daten liegen dann zwar in einer mdb, brauchen aber auf dem Zielrechner kein installiertes Access, da die notwendigen Treiber auf modernen Windosen bereits beiliegen.
dragonlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP - SP2
D7 Ent.
BeitragVerfasst: Mo 27.12.04 17:04 
OK. Danke. Werde mir mal Access "reinziehen" und mal schauen wie es klappt.

MFG
dragonlord
dragonlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP - SP2
D7 Ent.
BeitragVerfasst: Di 28.12.04 01:01 
Oh Mann das ganze scheint ja viel komplizierter als ich dachte.
Habe jetzt mal zum testen eine kleine Datenbank mit Accsess angelegt. Dort sind 3 Datensätze drin.
So und wie binde ich die jetzt in das Delphi Programm ein?

Habe eine ADOConnection, eine ADOTable, eine DBGridund eine
DBNavigator Kompo hinzugefügt. Und jetzt?
Habe ein weinig mir rumgespielt. Und jetzt will er auch immer eine Authentifizierung haben beim Programmstart. Was für eine Authentifizierung ????
:?: :?: :?: :?: :?:
Gibt es dafür irgendwo ein Tutorial??? (auf deutsch)

Gruss
dragonlord
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Di 28.12.04 01:06 
bei meinem Delphi5 sind die ADO-Komponenten nicht drin, drum habe ich den Zugriff so gelöst:
www.entwickler.com/i...d,102,nodeid,77.html

Edit: setzt aber kenntnisse der SQL-Sprache voraus, die aber relativ simpel aufgebaut ist
ansonsten such halt mal hier im forum nach ADOConnection, ADOtable usw.
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Di 28.12.04 01:14 
ahja, die SQL-Abfragestrings kannst du dir auch aus Access rauskopieren, wenn du deine neue Abfrage erstellt hast, klicke einfach auf den pfeil neben dem Entwurfssymbol und wähle SQL.
Access generiert dann einen SQL-String.
MartinPb
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 698



BeitragVerfasst: Di 28.12.04 01:24 
Ich würde keine der üblichen Datenbanken nehmen, da dein Problem doch speziell ist. Die beste Datenbank für dein Problem ist XML. Allerdings weiß ich nicht ob sich für so ein kleines Projekt lohnt XML zu lernen. Alternativ könnte man das ganz simpel machen und die "Windows Datenbank" dafür nehmen. Mit den üblichen Ordnern und Unterordnern ergibt das eine hierarchische Datenbank. Den Rest kannst du mit Ini's machen.

_________________
Gruß
Martin
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Di 28.12.04 02:21 
Wenn du so kommst, warum nicht gleich einen Recordtyp selber definieren und den dann in ein File schreiben ? :gruebel:
dragonlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP - SP2
D7 Ent.
BeitragVerfasst: Di 28.12.04 11:16 
@ MartinPb und retnyg

Könnt Ihr mir das genauer erklären was ihr damit meint. Klingt interessant.
Also XML kann ich zwar nicht. Ich denke ist aber einer Art "erweitertes HTML"
Der Aufbau ist doch eigentlich recht Simpel. Aber ich müsste die XML-Datei
ja auch irgendwie mit Delphi Lesen können?? Aber der Ansatz klingt interessant.

Wie meinst Du das mit dem Recordtype selber definieren und in ein File schreiben?
MartinPb
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 698



BeitragVerfasst: Di 28.12.04 13:32 
@dragonlord

Ich hab dir die Lösung geschrieben und es hat an dei 40 Minuten gedauert. Allerdings entschloß sich daß Forum mich noch mal nach meinem Namen und Kennwort zu fragen. Danach war der ganze Text weg. Jetzt hab ich keine Lußt es noch mal zu schreiben. Sorry.

@retnyg

Anscheinend kennst du hierarchische Datenbanken nicht. Ansonsten weiß ich nicht wieso du dich lächerlich machst in dem du plötzlich Records empfiehlst. Da du dich aber nun zu Wort gemeldet hast würde ich gerne wissen wie du es lösen würdens. Mit Records natürlich.

_________________
Gruß
Martin
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Di 28.12.04 16:54 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
type 

   verwandter = record
     name : string[50];
     alter: byte;
     bild: tbitmap;
   end;

...

 var f : file of verwandter;


file of verwandter wird wahrscheinlich ned gehen weil die grösse von tbitmap nicht bekannt ist - aber man könnte ja auch einfach den dateinamen des bildes hinterlegen.

oder so ähnlich. mit einer for schleife, einer indexnummer, und der anzahl der datensätze sollte es auch kein Problem sein mehrere records zu verknüpfen.

Ein bischen mehr Fantasie, Herr PB :roll:
MartinPb
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 698



BeitragVerfasst: Di 28.12.04 18:30 
Eine hierarchische Datenbanken ist einfach. Das beste daran ist, daß man da nichts dazuinstallieren muß, weil das Verzeichnissystem schon eine hierarchische Datenbanken ist. Ein möglicher Aufbau wäre der: Die Welt > unterteilt in Kontinente > die unterteilt in Länder > die unterteilt in Städte > die in Straßen. So hat man ein Verzeichnisbaum mit fünf Ebenen tiefe. Den Rest, wie z.B. Namen, Geburtstage usw., kann man z.B. mit einer INI Datei machen. Das ganze ist simpel und leicht gemacht. Sucht man alle Personen in Europa, dann läßt man eine Suche uber den Europaordner machen. Sucht man alle Tanten mit dem Namen Ema, dann wird zuerst in den Inis gesucht. Die weiteren Angaben wie Länder, Orte, Straßen kann man den Ordnernamen entnehmen.

_________________
Gruß
Martin
dragonlord Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 40

Win XP - SP2
D7 Ent.
BeitragVerfasst: Di 28.12.04 19:16 
@MartinPb
40 min. ?? Danke für die Mühe die Du dir damit gemacht hast. Schade das es weg ist.
Also ich würde das ganze gerne in XML machen.
Wie man eine XML Datei aufbaut, weiss ich ungefähr. Das ist relativ simpel.


Die Idee mit den Ordnern und so ist auch nicht schlecht. Das Problem was ich da aber habe ist die Erweiterbarkeit. Wenn irgendwo ein Kind geboren wird was dann in die DB aufgenommen werden soll, ist es glaube ich mit XML einfacher.
Vieleicht kombiniere ich ja auch beide Sachen :gruebel:

Also wie binde ich XML-Dateien in Delphi ein.
Habe D7 Ent. Da sind wie ich gesehen habe einige XML Kompos dabei. Weiss aber nicht
wie diese genutzt werden.

Gruss
dragonlord
retnyg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2754

SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
BeitragVerfasst: Di 28.12.04 20:33 
kann man in xml auch bilder speichern ?
Über XML wird zwar viel geredet, in der Praxis habe ich es erst an einem Platz gesehen: MSDN und Technet von M$.

der vorteil bei der benutzung einer standard-datenbank wie *.mdb sehe ich darin dass man sie mit SQL abfragen kann.
Wenn du SQL kannst, kannst du mit fast jedem kommerziellen oder freien Datenbankprodukt arbeiten.
Egal ob MySQL, Oracle oder MS SQL Server.

Und mit ADO wird die Datenbank auf denkbar einfache Weise angesprochen, aus jeder Programmiersprache raus...
MartinPb
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 698



BeitragVerfasst: Di 28.12.04 20:35 
dragonlord hat folgendes geschrieben:
Das Problem was ich da aber habe ist die Erweiterbarkeit. Wenn irgendwo ein Kind geboren wird was dann in die DB aufgenommen werden soll, ist es glaube ich mit XML einfacher.


In der Ordner-Datenbank wird einfach nur eine Ini-Datei in den Ordner gepackt ;)

Wegen der XML. Mir fält jetzt der Name nicht ein, aber die kleine BDE Ersatzdatenbank beherscht doch XML.

_________________
Gruß
Martin