Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Firebird wie? (https://www.delphipraxis.net/2463-firebird-wie.html)

theomega 24. Jan 2003 12:42


Firebird wie?
 
Hallo Leute
ich habe jetzt auf meinem PC einen Firebird-Server installiert. Was muß ich jetzt tun, damit ich mit Delphi + FIBPlus eine Verbindung herstellen kann? Ich will einfach mal ein Erfolgserlebnis!

Danke

TO

Hansa 24. Jan 2003 13:49

Hi,

ist Dein FIBplus richtig eingerichtet ? Falls ja kann ich Dir sagen wie das geht :!: Aber nicht direkt, weil ich noch weg muß. Also hast Du Zeit genug die üblichen Fragen zu beantworten :
Betriebssystem ? Versionen von Delphi,FIBplus,Firebird ? Und vor allem, was hast Du überhaupt vor ? Weiterhin brauchst Du noch ein Konsolenprogramm, wobei ich IBexpert empfehle. Falls Du das noch nicht hast : runterladen. Dann kanns losgehen.

Gruß
Hansa

theomega 24. Jan 2003 16:52

Also:
Betriebssystem: WinXP-Pro
Delphi-Version: Delphi 6 Enterprise
Firebird-Version: 1
FIBPlus-Version: 4.7.7 (laut Delphi-Kompos) (Trial / nicht gekauft)
IBexpert: Personal-Edition (reicht doch, oder)

Vorhaben:
Was einfach, zum Beispiel Adressdatenbank (Stanrt, ich weiß)

Hansa 24. Jan 2003 17:57

Firebird
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

guck, daß Du das den im Anhang beiliegenden Bildschirm hinkriegst. IBexpert starten -> Create DataBase. Dann folgendes eingeben :

ACHTUNG ! Auf GROß/klein - Schreibung achten !

1. Server auf lokal umstellen
2. Dateiname angeben
3. User Name ist SYSDBA
4. Password masterkey
5. Page Size ist nicht so wichtig, ich nehme immer 4096
6. WICHTIG! Char Set auf ISO8859_1 umstellen, sonst gibt es Probleme
7. WICHTIG! Dialect 3

Dann kommt "Register Database", notfalls nochmal dasselbe eingeben.

Irgendwo steht da noch eine Checkbox "Always capitalize Database object names" Kreuze die an.

Gruß
Hansa

theomega 24. Jan 2003 18:00

Jut, soweit bin ich, kann auch zu der DBase connecten.
BTW: Ich habe schon mit MySQL gearbeitet, auch schon mit dem BDE in Verbindung mit Paradox.

Hansa 24. Jan 2003 18:11

Hi,

sobald die neue DB links zu sehen ist clicks Du sie an. Dann clickst Du rechts bei new Table. Diese DIREKT umbenennen. Dann legst Du deine Felder genauso an. Nimm ID als erstes und setze Flag Primary Key. Dann die anderen Felder. Das geht alles auch mit Delphi. Als Lektüre empfehle ich Dir noch Lemmys Tutorial.

Gruß
Hansa

P.S.: Den Delphi-Weg würde ich an dieser Stelle aber nicht wählen :!:

theomega 24. Jan 2003 18:50

Liste der Anhänge anzeigen (Anzahl: 1)
Gut, meine Tabelle sieht jetzt so aus.
btw, was gibt die Size bei einem Blob an? Anzahl der Linien oder Anzahl der Zeichen?


[edit=Admin]Ich habe mal das Bild gelöscht, da es ein wenig breit war. Das Bild ist ja noch im Anhang an diesen Beitrag zu finden. Mfg., Daniel[/edit]

Hansa 24. Jan 2003 19:18

Uff,

Zitat:

Zitat von theomega
was gibt die Size bei einem Blob an?

Du willst doch tatsächlich das Pferd von hinten aufzäumen. :mrgreen: Ein Blob sind beliebige Daten, z.B. Bilder, MP3s, EXE, ZIP usw. Da würde ich mir nicht die Finger dran verbrennen. Eine Adresse in einem Blob - Feld abspeichern ? Au weia. Mach das Blob Feld bloß wieder weg, dann kannst Du getrost mit Delphi anfangen, ohne Dir selber ein Bein zu stellen. :mrgreen:

Lese Dir das hier mal durch:
http://www.dclp-faq.de/q/q-db-blob.html

Gruß
Hansa

theomega 24. Jan 2003 20:06

aber was ist die Alternative wenn ich einen verschieden Zeillen langes Feld brauche?

Hansa 24. Jan 2003 20:16

Dann mach es so groß, wie es maximal wird. Oder willst Du eine Adresse auf 2 DIN A 4 Seiten verteilen und den Brief mit einem Fensterumschlag wegschicken ? :mrgreen:

Gruß
Hansa

P.S.: Ich sehe gerade, Du hast für das Blob 4 Zeilen vorgesehen. Dann mache daraus: Anrede,Name,Strasse,Ort jeweils als CHAR mit Länge XY. Ein Blob-Feld ist für sowas total ungeeignet. Soweit ich weiß, kriegst Du da nur das gesamte Blob-Feld. Also kannst Du nicht mal die Hausnr. einzeln ändern :!: Letzte Warnung, jetzt Blob - Felder einzusetzen :!: :lol:

Gruß
Hansa

theomega 24. Jan 2003 20:22

Aus dem Grund habe ich doch unter Size "4" stehen, soll doch heißen 4 Zeilen, oder nicht?
Außerdem: wie geht es jetzt in Delphi weiter?

Hansa 24. Jan 2003 20:35

Hi theomega,

wenn Du lesen kannst, dann lese, was ich Dir sage, machst Dus nicht, tja dann kann ich Dir nicht helfen. Desweiteren lese den Artikel, Link hab ich Dir gegeben. Es steht Dir frei, einen einzelnen Buchstaben in ein Blob-Feld zu speichern, aber das Programm möchte ich nicht geschenkt. Mit Blob-Feldern habe ich mich nur am Rande beschäftigt. Für eine Adresse ist das totaler Schwachsinn :!: :!: :!: Anscheinend hast Du mich vorher nicht so ganz verstanden oder ich habe mich nicht deutlich genug ausgedrückt. :warn:

Gruß
Hansa

P.S.: Nochwas, Du kannst Dich getrost von den gewohnten Vorstellungen verabschieden. Das fängt bei Arrays an und hört ungefähr bei Blob auf. :mrgreen:

theomega 24. Jan 2003 20:38

oki, sorry hatte den zweiten Teil deiner Message nicht gelesen.

Lemmy 25. Jan 2003 10:06

HI theomega,

in einem BLOB kannst Du neben irgendwelchen Dateien auch Memos speichern (TDBMemo). Einfach als SubTyp Text anlegen.

Die Size gibt hier aber NICHT die absolute Größe an (liegt irgendwo bei 2 GB), sondern die Größe der EINZELTEILE die beim Zugriff auf das Blob bearbeitet werden. Ein Blob wird also nicht als Ganzes gelesen/geschrieben sondern immer in Teilen. Bei einer Size von 4 sind beim Lesen eines Memos mit ein paar Zeilen jede Menge Zugriffe notwendig -> Langsam! Lass i.d.R. die Standardgröße von 80 stehen. Nur wenn Du wirklich andere Größen hast (z.B. Bitmaps die immer gleich groß sind) dann kannst Du da was anderes reinschreiben....

Grüße
Lemmy

P.S.: Sorry Hansa für meine Einmischung :D

theomega 25. Jan 2003 10:22

Also jetzt entscheidet euch:
soll ich einen Blob nutzen oder nicht? Weil ich kann ja garnicht genau wieviel Zeilen die Adresse hat.
Von MySQL bin ich halt den typ "memo" gewohnt. Um beliebig viele Zeilen abzuspeichern.

Hansa 25. Jan 2003 10:54

Hi,

ich habs oft genug gesagt und jetzt zum letzen Mal : Laß das Blob voerst sein. Bei einer Adresse ist das wie mit Kanonen auf Spatzen zu schießen. Da werden noch etliche andere Probleme auftauchen :!: Du scheinst Dir gleich am Anfang selber unnötige Schwierigkeiten machen zu wollen. :roll:

Gruß
Hansa

theomega 25. Jan 2003 10:59

Na gut, also weiter im Text, wie funzt das jetzt unter Delphi?

Sharky 25. Jan 2003 11:00

Anstat immer nur darauf hinzuweisen was er deiner Meinung nach nicht machen soll wäre es wohl besser mal einen Tip zu geben wie man eine solche Adress-Datenbank aufbauen könnte.

Oder muss jetzt jeder das machen was Du möchtes? :lol: (Das ist ein ironisch gemeint!!)

Hansa 25. Jan 2003 11:15

Hi,

Zitat:

Zitat von Sharky
... wäre es wohl besser mal einen Tip zu geben wie man eine solche Adress-Datenbank aufbauen könnte.

Was hab ich denn gemacht ? Genau das. Und was ist eingetreten? Das was ich befürchtet habe. Daß er eben an dem Blob hängt. Und genau das habe ich befürchtet, bitte alles einmal von Anfang an lesen ! Wegen eines Blobs geht es nicht mehr weiter.

Zitat:

Oder muss jetzt jeder das machen was Du möchtes?
Ich hab doch schon geschrieben, von mir aus könne er jeden einzelnen Buchstaben in ein Blob packen. :mrgreen:

@theomega : Umdenken mußt Du so oder so. Das nächste, was noch kommt, werden vermutlich die Arrays sein. Da geht es dann so weiter, wie es angefangen hat. Die sind nämlich auch anders. Willst Du die blobs benutzen, dann kann ich Dir leider nicht sagen, wie das in Delphi geht. Wenn ich die überhaupt jemals benutze, dann am Schluß, wenn alles andere funktioniert.

Gruß
Hansa

theomega 25. Jan 2003 11:21

Habe ich das jetzt richtig verstanden? Du räts mir also, dass ich statt einem Blob ein Paar varchar's nehmen soll, die dann die Linien repräsentieren, oder nicht? So habe ich es nämlich jett gemacht.

Hansa 25. Jan 2003 11:26

Hi,

Zitat:

Zitat von theomega
...dass ich statt einem Blob ein Paar varchar's nehmen soll, die dann die Linien repräsentieren, oder nicht? So habe ich es nämlich jett gemacht.

Du willst also Linien in einem Blob speichern und das noch in Interbase :shock: , oder wie soll ich das verstehen? 8)

Gruß
Hansa

theomega 25. Jan 2003 11:27

Hätte ich gerne, aber nachdem du mich eines besseren belehrt hast, werde ich es wie oben beschrieben machen.

Sharky 25. Jan 2003 11:32

Zitat:

Zitat von theomega
Habe ich das jetzt richtig verstanden? Du räts mir also, dass ich statt einem Blob ein Paar varchar's nehmen soll, die dann die Linien repräsentieren, oder nicht? So habe ich es nämlich jett gemacht.

Hai theomega,

genau so würde ich das machen.

z.b:

name : Varchar (50)
vorname : varchar (50)
strasse : varchar (50)
lkz : int
plz : varchar (10)
ort : varchar (50)
okz : varchar ( 8 )
tel : varchar (16)
fax : varchar (16)
email : varchar (50)

lkz ist die Landeskennzahl. Die würde ich zusammen mit dem Länderzeichen (D,A,F,GB...) in einer eigenen Tabelle speichern.
Dort könntest Du dann auch die internationale Vorwahl des Landes hinterlegen (49 für D, 41 für Ch, usw).

okz : ist die Ortskennzahl (Vorwahl).

Das hat den Vorteil das Du z.B. bei Ausdrucken besser formatieren kann.
Oder Du kannst gezielt nach Adressen mit bestimmten Eigenschaften (plz, vorwahl, land) suchen.

theomega 25. Jan 2003 11:48

jep, so änlich hatte ich es auch, jetzt würde mich aber schon intessieren, wie es in Delphi weitergeht.
Und nochwas: wie kann ich einen neuen user anlegen und das Passsword vom Sysdba ändern?

Hansa 25. Jan 2003 11:50

Ah, geht es doch weiter ?

Dann mache jetzt ein neues Projekt und setze da ein neues DataModule drauf. In dieses setzt Du nun eine Database, eine Transaction und ein DataSet (Alles unter Reiter FIBplus zu finden !). Dann gehts los mit der Database (die mußt Du so ähnlich einrichten, wie in IBexpert) :

1. Databasename : genauer Pfad- und Dateiname
2. ConnectParams : wie ich es für IBexpert geschrieben habe, insbesondere auf ISO8859_1 achten
3. Login Prompt auf false setzen
4. Dialect auf 3
5. Transaction per Dropdown auswählen, da müßte Deine drinstehen
6. zum SCHLUß connected auf true setzen

Dann der Transaction die Database zuordnen und active auf true setzen

Tja dann kommt das Dataset. Das ist etwas komplizierter und ich muß weg. Mach das hier erst mal. Und orientiere Dich an Lemmys Tutorial. Das müßte auch so gehen.

Gruß
Hansa

theomega 25. Jan 2003 18:07

Gut, ich habe es inzwischen ganz hinbekommen. Nur noch zwei Fragen sind offen:
1. Wie kann ich das Password von "SYSDBA" ändern
2. Wie kann ich einen neuen Benutzer erstellen?

Danke

TO

Hansa 25. Jan 2003 21:45

Zitat:

Zitat von theomega
... Nur noch zwei Fragen sind offen:
1. Wie kann ich das Password von "SYSDBA" ändern
2. Wie kann ich einen neuen Benutzer erstellen?

Hört sich an, als wärst Du schon komplett fertig. Hast Du die Generatoren, Trigger usw. schon angelegt ? User anlegen ? Dazu weiß ich nichts zu sagen. Kommt bei mir zum Schluß, da es vorerst unwichtig ist. Und die ID darfst Du natürlich nicht vergessen. Die fehlt in Sharkys Beispiel.

Gruß
Hansa

theomega 26. Jan 2003 12:14

Gut, dann habe ich wohl eine zuj einfache Lösung gewählt: ein Query mit "SELECT * FROM addys".
Erklär du mal weiter.

Hansa 26. Jan 2003 14:29

Aber, was willst Du wissen ?

Gruß
Hansa

theomega 26. Jan 2003 17:58

Was du mit "Lemmy's Tutorial" meinst!

Hansa 26. Jan 2003 18:24

Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

hast Du das nicht gefunden ? Wenn das so weiter geht, dann bist Du nächstes Jahr noch dran. Ich hänge das Tutorial jetzt hier dran. Steht sogar drin, wie Benutzer angelegt werden. :spin:

Gruß
Hansa


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