Entwickler-Ecke
Datenbanken - wenig daten, aber sql
ShadowThief - Mi 26.03.03 02:12
Titel: wenig daten, aber sql
hallo,
ich habe, denke ich, alle relevanten threads zum thema "welche datenbank soll ich verwenden" durchgelesen und habe jetzt trotzdem noch einige fragen.
folgende situation: ich möchte eine software schreiben, die auf eine datenbank zugreift. diese software kann man dann auf einer seite herunterladen und installieren. jedoch möchte ich natürlich, dass der user nichts weiter zu tun hat, d. h. die datenbank zu meiner software müsste dann auch schon installiert sein.
am einfachsten wäre das ganze wahrscheinlich mit access zu lösen, da man einfach die .mdb-datei mit ausliefert und ich mit meinem programm per odbc auf die datenbank zugreifen kann. das problem ist aber folgendes: wenn ich nur vorhabe meine software evtl. zu verkaufen, dann muss ich access lizensieren. eine access-datenbank wäre für meine zwecke denke ich auch zu hoch gegriffen.
die datenbank, die ich bräuchte müsste folgende eigenschaften haben:
- sie müsste kostenlos sein, und zwar komplett, d. h. dass ich auch software verkaufen darf, die diese datenbank verwendet.
- sie müsste sql unterstützen
- sie müsste sich irgendwie automatisiert installieren lassen, d. h. falls ich zu meiner software ein setup mache, müsste diese datenbank irgendwie gleich mitinstalliert werden.
folgende eigenschaften muss sie NICHT haben:
- sie muss nicht performant sein
- sie muss keine große datenmengen handeln können
ich dachte da schon an den odbc-text-treiber, das problem daran ist aber, dass man da keine creates, updates ... machen kann. das nächste, worauf ich gestossen bin ist firebird, jedoch verstehe ich da die lizens nicht so ganz, d. h. ich weiss nicht, ob ich eine kommerzielle software schreiben darf, die interbase verwendet.
vielen dank fürs durchlesen
shadowthief.
Moderiert von
Tino: Absätze entfernt & List-Codes eingefügt.
hansa - Mi 26.03.03 03:23
Firebird und fertig.
Die Installations-Sachen selber machen.
ShadowThief - Mi 26.03.03 12:12
wie meinst du das "installationssachen selber machen" ?
und ist firebird jetzt wirklich komplett kostenfrei verwendbar?
hansa - Mi 26.03.03 12:17
glaubst Du, es gibt irgendeine Datenbank, die genau Deine Daten bereits kennt :?: Also muß DU mühselig ein Delphi-Programm dafür machen oder einfach ein SQL-Script.
hansa - Mi 26.03.03 12:18
ShadowThief hat folgendes geschrieben: |
...und ist firebird jetzt wirklich komplett kostenfrei verwendbar? |
Ja.
ShadowThief - Mi 26.03.03 12:43
erstma danke für die hilfe,
aber ich glaub du hast mich ein bisschen falsch verstanden. ich habe firebird jetzt bei mir installiert und kann es nun bei mir verwenden. ich möchte meine software aber übers internet verteilen, d. h. es geht jemand auf meine seite, lädt sich das setup herunter und installiert das programm. und firebird müsste sich nun gleich mitinstallieren, weil ich natürlich niemandem zumuten will, das selbst zu tun. das muss man ja auch bei keiner anderen software machen. bei jeder anderen (professionellen) software installiert das setup die datenbank gleich mit. genau so möchte ich das auch bei mir machen. aber ich hab keine ahnung wie und ob das mit firebird geht.
Moderiert von
Tino: Absätze entfernt.
hansa - Mi 26.03.03 13:45
hansa hat folgendes geschrieben: |
...Die Installations-Sachen selber machen. |
Warum hab ich das wohl geschrieben :?: Egal, ob Internet, CD oder sonstwie. Um eine Interbase Datenbank einzusetzen, da sollte es sich wohl schon um ein Projekt einer gewissen Größenordnung handeln. Ich habe gerade mal nachgeschaut, vor kurzem hab ich nämlich auch eine Demo-Version per Internet verschickt. Da war folgendes dabei : selbstinstallierende Firebird-Version, eine leere Datenbank und natürlich mein Programm, eine Installationsanleitung und eine Batch - Datei, die die Verzeichnisse richtig anlegt und die Dateien dann speichert. Das wars.
Alles in einer selbstextrahierenden Zip-Datei.
Zitat: |
...und firebird müsste
sich nun gleich mitinstallieren, weil ich natürlich niemandem zumuten
will, das selbst zu tun |
Leider sind die Dos Zeiten vorbei und Du kannst meist nicht einfach Deine EXE Datei irgendwohin schieben und das wars. Dafür hast Du aber andere gewaltige Vorteile, denke nur mal an die Uhr rechts unten und die tollen Bildschirmschoner und dann noch die mickrige Registry, die sich hervorragend besonders von Anfängern verstellen läßt. :lol:
So und zu letzterem habe ich auch jetzt noch mal geguckt, ob Firebird die eventuell nicht braucht. Leider sind auch hier Einträge vorhanden. Also empfiehlt es sich wohl doch das Original-Installationsprogramm zu benutzen. Weiß der Teufel wo vielleicht noch eine Datei hinkopiert wird, die man übersehen hat.
Soll Dein Programm auch kostenlos sein ? Du schreibst nur, die Datenbank solle nichts kosten. Falls dem so ist, tja dann wirds schwierig. Ich würde dann etwas anderes suchen. Interbase ist eher was für kommerzielle Projekte, oder für einen größeren Eigenbedarf. Grob gesagt, deckt das die Lücke zwischen Paradox und Oracle. Es gibt einige, die wollen von Oracle auf Interbase umsteigen, da Oracle ihnen auf Dauer zu teuer wird. Vielleicht verstehst Du jetzt, was ich mit Größenordnung meine.
ShadowThief - Mi 26.03.03 15:21
ok, jetzt bin ich einen schritt weiter. interbase bzw. firebird ist zu
übertrieben für meine zwecke, da es eine software sein soll, die man
sich aus dem netz runterlädt, installiert und fertig.
für meine zwecke wäre ja access genau das richtige, da liefere ich einfach
die .mdb mit aus und fertig, weil ja die jet-engine auf jedem windows-
rechner installiert ist, oder? aber da muss ich ms access registriere,
worauf ich keine lust hab.
ist paradox nicht auch von microsoft? ich kann mich irren.
auf jeden fall hab ich zu paradox im netz spontan nix gefunden.
also irgendeinen download o. ä.
Cashels - Mi 26.03.03 16:37
Hi,
um auf eine Access Datenbank von Delphi aus zuzugreifen brauchst du nicht das komplette Access zu installieren, sondern die MDAC Treiber reichen da aus, und die sind absolut frei und gibts bei Microsoft zum Download. Den Link weiss ich nicht mehr genau, dürfte aber zu finden sein.
Gruss,
Tom
Bruce - Mi 26.03.03 17:21
Hallo!
Irgendwie verstehe ich die Grundfrage nicht ganz :?
Sprechen wir hier von einem Programm, daß Du mit Delphi schreibst? (Nehm ich doch mal an). Nach dem, was Du schreibst, müssten doch DBase oder Paradox (und BDE) völlig ausreichen, dann hast Du doch alles dabei was Du brauchst, und Deine Installation machst Du mit InstallShield, dann hast Du auch Deine Datenbank mit installiert.
Musst nur in ein Zip packen am Ende, dann ins Internet.
Steh ich jetzt hier voll auf´m Schlauch :oops: oder wer?
(Oh je, hoffentlich nicht ich :lol: )
Gruß, Bruce
ShadowThief - Do 27.03.03 09:49
@cashels:
langsam wird mir das alles n bisschen zu hoch :? .
wozu braucht man MDAC-treiber? also ich wäre folgendermaßen
von delphi auf die access-datenbank draufgekommen:
- access aufmachen, neue datenbank anlegen
- odbc-datenquelle einrichten
- in delphi mit den ADO-komponenten über odbc auf die datenquelle
aber um überhaupt ne access-datenbank zu erstellen brauch ich
doch access, oder?
belehr mich, langsam blick ich nich mehr durch :( .
@Bruce
du hast das schon richtig verstanden. aber falls ich mich jezt nicht
irre dann sind dbase und paradox kostenpflichtige datenbank und
ich hab was gesucht, das nix kostet. außerdem möchte ich die BDE
nicht verwenden, sondern mit den ado-komponenten auf ne
odbc-datenquelle gehn.
Cashels - Do 27.03.03 10:16
Zitat: |
wozu braucht man MDAC-treiber? also ich wäre folgendermaßen
von delphi auf die access-datenbank draufgekommen: |
Mit den ADO Komponenten greifst du über die MDAC Treiber auf deine Access Datenbank zu. Das Access an sich wie du es nennst, stellt lediglich auch nur ne grafische Oberfläche dar um z.B. Datenbanken zu erstellen. Das geht aber auch direkt mit SQL, also von Delphi aus. Bei einem Kunden von mir verfuhr ich so, daß ich eine leere Datenbank in Access erstellt habe und diese mitgeliefert habe.
Zitat: |
- access aufmachen, neue datenbank anlegen
- odbc-datenquelle einrichten
- in delphi mit den ADO-komponenten über odbc auf die datenquelle
|
Wenn du über ADO fährst, kann du dir die odbc-Datenquelle sparen. Überfolgenden ConnectionString greifst du direkt auf eine Access Datenbank zu:
Quelltext
1:
| Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;Persist Security Info=False |
wobei "test.mdb" natürlich durch den Dateipfad zu deiner Datenbank darstellt.
Zitat: |
aber um überhaupt ne access-datenbank zu erstellen brauch ich
doch access, oder? |
Siehe oben. Kuck dir mal Befehle wie "Create database" und "create table" an.
Gruß,
Tom
ShadowThief - Do 27.03.03 11:34
ich weiss, dass ich mir die odbc-datequelle ersparen kann, wenn ich
über ado gehe, jedoch gehe ich trotzdem über odbc weil ich die
datenbank dann schneller austauschen kann, ohne am programm
etwas zu ändern. ich bilde mir nämlich ein, dass es führ mehr daten-
banken odbc-treiber als ado-treiber gibt.
ich kenne die befehle "create database" usw. aber um überhaupt
einen ado-connectionstring zu erstellen brauche ich doch schon
ein .mdb-file, oder? oder ist es so, dass der "create database" ein
.mdb-file erzeugt?
Bruce - Do 27.03.03 16:33
Riiiichiggg (wie Paul Panzer sagen würde),
Du wolltest Sie kostenlos haben, daß hast Du geschrieben. Aber bei der Professional-Version von Delphi hast Du Sie ja so gesehen kostenlos dabei (Dbase und Paradox), Personal weiss ich nicht. Is aber auch egal, denn wenn Du Deine Software kommerziell vertreiben willst, dann brauchst Du ja eh Professional.
Also war mein Gedankengang:
Kommerzielles Programm mit Delphi = Professional Version erforderlich = DBase, Paradox, BDE, ISExpress automatisch dabei.
Wenn Du natürlich BDE nicht willst, ist das was anderes. Aber warum nicht. Was für ein Prog schreibst Du denn? So wie Du´s beschrieben hast, (kleine Datenmengen, lokal installiert beim Anwender, SQL) hört sich das immer noch an, als langten da die Delphi-Bordmittel?
Aber ich hab eh noch zu wenig Ahnung davon, will Dich ja auch nicht zur BDE zwingen :twisted: .
Ausserdem finde ich "Was ist das beste"-Threads immer geil, man kommt zwar zu keinem Ergebniss aber kriegt immer so schöne Details zu hören :P
Gruß Bruce
ShadowThief - Do 27.03.03 17:23
bei delphi professional ist dbase und paradox dabei? wusst ich gar
nicht. okay. komm ich da dann nur über die bde drauf, oder gibts
is da dann auch gleich noch n dbase oder paradox-odbc-treiber dabei?
Bruce - Do 27.03.03 22:01
Nabend Shadow,
ich bin mit Sicherheit der Falsche, um zu dem Thema was ausführlich zu sagen, weil ich mich erst einige Wochen mit Delphi und Datenbanken beschäftige.
Der Grund, warum ich gepostet habe war, daß die Anforderungen, die Du am Anfang beschrieben hast und die nachfolgende Diskussion über eigenständige Datenbanken und manuelle Installationsroutinen für mich nicht ganz zusammenpassen. Hier wurde ja auch schon gesagt, daß z. B. Interbase erst ab größeren Projekten nötig ist.
Ich weiß ja bis jetzt immer noch nicht, was Du da eigentlich vor hast, Deine Aussage "keine großen Datenmengen" kann viel heissen:
Weniger als 100 Datensätze? Unter 100.000? oder Bis zu ner Million? Keine Ahnung.
Ich gib Dir mal mein Beispiel:
Ich hab jetzt ein Programm, daß eine Artikelliste mit 40.000 Datensätzen als DBase-Tabelle zur Grundlage hat. Darin kann ich per SQL-Abfrage Artikel suchen, die Artikelpreise werden automatisch Berechnungen unterzogen, der Anwender kann die Preise neu kalkulieren und dann Angebote erstellen und drucken.
Das ganze hab ich mit Delphi3 Pro und der enthaltenen DatenbankOberfläche gemacht. Wenn ich mit InstallshieldExpress (is ja auch dabei) meine Installationsdateien erstelle, hak ich die BDE an und füge meine (DBase-)Tabellen bei; Der Anwender muss dann nur noch Setup anklicken, und nach der Installation kann er das Programm öffnen,hat die Datenbank und die BDE bei sich installiert und alles funktioniert wie gewollt. Die Installationsdateien muss ich dann nur noch packen, dann kann man das ganze per Mail verschicken oder zum Download anbieten.
Mir kam es so vor, daß Du was ähnliches vorhast, und wenn, dann nimm doch ruhig BDE und Dbase oder Paradox. Warum mit Interbase manuell rumfummeln, wenn auch so geht. Du baust ja auch nicht in einen Kleinwagen einen Ferrari-Motor ein, um dann 10 Meter zum Bäcker zu fahren.
Vielleicht äußert sich auch noch mal jemand von den Profis hier zu dem Thema, kann ja sein, daß ich hier was falsche sehe (wär ich auch dankbar für); aber bei mir funktioniert das so.
Oder Du sagst vielleicht erst mal, was Du überhaupt programmieren willst.
Bis denne,
Gruß Bruce
jacinto - Fr 28.03.03 00:32
Titel: DBASE, Paradox reicht
Bruce hat ganz recht, für kleinere Anwendungen reicht das. :idea:
Ansonsten mußt du (Shadow) schon etwas präzieser werden, ich habe beispielsweise auch schon statt mit einer Datenbank, mit reinen "ini" Dateien gearbeitet.
Da kannst du auch bei relativ großen Datenmengen einiges mit anfangen (da strukturiert).
Vorteile liegen auf der Hand, keine Treiber, extrem schnell.
Nachteile:
Wenn mehr als 4-5 Tabellen (Dateien) benötigt werden wirds zirkusreif mit dem handling.
Regards
ShadowThief - Mo 31.03.03 10:26
@bruce:
also vom umfang her entspricht mein programm ungefähr dem, das
du beschrieben hast. ich weiss auch nicht, aber ich hab irgendwie
keinen bock auf die BDE, seitdem ich mal gehört hab, dass die
jetzt nicht mehr weiterentwickelt wird (gut, muss ja jetzt nichts schlimmes
heißen). vielleicht sollte ich mal meine vorurteile über bord werfen
und das ganzet mal mit dBase probieren. und dieses installshield
ist mir auch noch fremd. naja mal sehn. vielen dank einstweilen,
vielleicht melde ich mich ja nochmal.
@jacinto:
ähm.. also überlegt hatte ich mir das schon. aber da es bei mir
voraussichtlich mehr als 15 tabellen werden, und ich auf jeden fall
mit sql auf die datenbank will, fällt das glaube ich flach. aber das wärs
mal: ne komponente mit der man per sql auf ini-files draufikommt,
das ganze ohne odbc, oledb, bde usw. *g* saugeil !!
also mal im ernst, das wär genau das was ich bräuchte, oh mann.
hansa - Mo 31.03.03 11:15
ShadowThief hat folgendes geschrieben: |
...voraussichtlich mehr als 15 tabellen werden, und ich auf jeden fall mit sql auf die datenbank will... |
8) Nachher sinds doch 30 Tabellen und dann kommt einer mit Netzwerk, dann bist du wieder bei Interbase. Fällt letzteres (Netzwerk) definitiv weg, wäre Paradox wohl anzuraten. Aber sag niemals nie :!:
Zitat: |
...ne komponente mit der man per sql auf ini-files draufikommt,
das ganze ohne odbc, oledb, bde usw. *g* saugeil !! |
Eine Datenbank mit einer Textdatei zu machen, da sage ich nur : "Back to the fifties". :mrgreen: Wie wärs mit Lochkarten ? :lol:
Klabautermann - Mo 31.03.03 13:08
Hallo,
welches Delphi verwendest du denn?
Unter dem Schlagwort MyBase bietet Borland die möglichkeit mit XML-Datenbanken zu arbeiten. Die neuen DBExpress Koponenten bieten die Möglichkeit ihre Inhalte als XML zu Speichern und wieder zu laden.
Ich weiß allerdings nicht, ob es möglich ist, dabei SQL-Anfragen zu fahren. Wenn du ein entsprechend Aktuelles Delphi hast, währe es aber sicherlich einen Blick wert. In eine MyBase Anwendung kann auf jeden Fall alles einkompiliert werden, so das du nichts zusätzlich mit ausliefern musst.
Gruß
Klabautermann
ShadowThief - Mo 31.03.03 20:10
@Klabautermann:
vielen dank für diesen tip. das ist zwar nicht ganz genau das, was ich gesucht habe, aber ich denke ich werds trotzdem mal so probieren.
das einzig blöde daran ist, dass man halt keine sql-statements auführen kann, aber beim clientdataset gibts da die filter-property und und ich glaub damit kann ich ganz gut arbeiten.
also vielen dank nochmal. falls irgendjemandem noch was einfallen sollte, bin ich immernoch dankbar.
Moderiert von
Tino: Absätze entfernt.
Klabautermann - Mo 31.03.03 20:58
Hallo,
wenn du anstelle von ClientDataset das TSimpleDataSet verwendest hast du auch noch die Ereignisbehandlungsrutine OnFilterRecord. Hiermit kannst du dann beliebig komplexe Filterfunktionen realisieren, auch wenn sie mit dem reinen Filter nicht machbar sind. Außerdem sollte das SimpleDataset schneller sein, dafür fehlen dann einige funktionen (so kannst du z.B. nur von forne nach hinten scrollen und den Datensatzzeiger nicht frei Positionieren). Durch diese Einfachheit des SimpleDataSet wird seine geschwindigkeit erreicht.
Gruß und viel Erfolg wünscht
Klabautermann
MSCH - Mo 31.03.03 21:39
Manno, hier kriegst ne Krise.
Erstmal klären (oder hab ichs überlesen), welche Delphi-version? Nehmen wir mal an: Delphi 5/6 prof/enterpr. Da gibts ein nettes Tool zur Datenbankadministration, mit dem man ganz auf die Schnelle eine Access-DB erstellen kann. OHNE Access zu haben. Und, vergiss die BDE oder ODBC, das zeug ist tierisch langsam.
Mit einer Access-Datei und den Kadao-Kompos (frei verfügbar) kann du nicht nur deine AccessDB öffnen sondern tierische Exceltabellen und was weiss ich sonst noch. Das ganze setzt auf deinem Zielrechner das erwähnte MDAC (Microsoft Data Access Components, wenn mein Gedächtnis mich nicht im Stich lass).
FERTIG HABEN. Oder hast Du MS-Office Enterprise/Developer? dann gibts die MSDE (abgespeckte MS-SQL DB) dazu. Dann kannste richtig SQL.
grez
msch
ShadowThief - Di 01.04.03 09:02
also gut, ich schau mir das alles mal an.
vielen dank.
ps. falls es jetzt noch jemanden interessieren sollte: delphi 6 enterprise.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!