fi-newbie Geschrieben 10. September 2005 Geschrieben 10. September 2005 Hallo zusammen! Ich kenne es bei delphi bisher nur so, das man halt auf SQL-basierende Programme schreibt. Aber geht das nicht auch irgendwie "einfacher", d.h. ohne dass jeder der mit dem Programm arbeiten will, sich nicht gleich SQL-Server usw installieren muss? Auf welchen datenbanken kann man noch arbeiten, bzw. wie ist das bei den großen Programmen, wo werden die ganzen Eingaben gespeichert, wenn es ncht auf ner datenbank basiert? Oder sind diese Programme dann nicht in Delphi geschrieben? mfg Zitieren
Amstelchen Geschrieben 11. September 2005 Geschrieben 11. September 2005 du kannst in delphi (und das gilt für die meisten windows-basierten umgebungen) prinzipiell fast überall daten speichern und abgreifen, sei es - in der windows-registry - im dateisystem als plain text - im dateisystem als binäre dateien - in INI-dateien - in XML-dateien - in proprietären dateiformaten (ZIP, RAR, ...) - in einer beliebigen datenbank (mysql, oracle, access, sqlserver/MDE, BDE, paradox, dbase, ...) - über eine beliebige datenbankschnittstelle (ADO, ODBC, ...) - über andere schnittstellen (webservice, http, ...) einzige überlegung sollte sein, welche art der speicherung für die vorhandenen bzw. zu speichernden daten die optimalste ist. so wird man programmeinstellungen eher in XML oder der registry ablegen und umsatzdaten in einer client-server-datenbank. s'Amstel Zitieren
fi-newbie Geschrieben 14. September 2005 Autor Geschrieben 14. September 2005 Hallo! Aber was ist denn die einfachste Methode? Das Programm sollte halt auf anderen Rechnern laufen, ohne dass noch was zusätzliches installiert werden muss. Das sollen keine großen Programme werden, halt nur kleine Verwaltungs-tools usw. ... mfg newbie Zitieren
Amstelchen Geschrieben 14. September 2005 Geschrieben 14. September 2005 dsas kommt, wie gesagt, auf die art deiner daten an, die dein programm speichern bzw. verarbeiten muss. du müsstest dazu schon genaueres angeben, welche daten du denn hast. s'Amstel Zitieren
geloescht_JesterDay Geschrieben 15. September 2005 Geschrieben 15. September 2005 Ich kenne es bei delphi bisher nur so, das man halt auf SQL-basierende Programme schreibt. Aber geht das nicht auch irgendwie "einfacher", d.h. ohne dass jeder der mit dem Programm arbeiten will, sich nicht gleich SQL-Server usw installieren muss? Das es um ein kleines Verwaltungstool geht ist hier weniger wichtig. Wichtig ist, wo und wie du die Daten speichern willst Wenn die Daten nur für den, der das Programm benutzt von interesse sind, dann werden die Daten meist lokal gespeichert. Wenn auf die Daten auch noch andere zugreifen sollen/müssen, bietet sich je nach Daten eine Datenbank an. Eine Datenbank kann irgendwo im Netz installiert werden und andere Programme können die Daten dort abrufen oder abspeichern. Client/Server-Programme nennt man sowas. Der Server ist der DB-Server, der u.U. auch noch mehr Funktionalitäten als nur die Datenspeicherung besitzt, und der Client ist dein Programm. DB-Server gibt es eine Menge, manche kostenlos, andere kosten was. Je nach dem welche Delphi Version du hast, greifst du anders auf die Server zu. Bis Delphi 6 machst du das, wenn du keine extra Komponenten installierst, über die BDE (Borland Database Engine). Das geht mit der standard Delphi Installation und wird auch in eigentlich allen Büchern zu Delphi (auch in späteren leider noch) benutzt und erklärt. Du musst dann aber immer noch die BDE auf dem Zielrechner zusammen mit deinem Programm installieren. Seit Delphi 7 benutzt du für den DB-Zugriff dbExpress. Dabei handelt es sich um einen Nativ-Zugriff auf die Datenbank. Installieren musst du dazu nichts, lediglich eine entsprechende DLL mit deinem Programm mitliefern. Wenn du keinen DB-Server verwenden willst (oder zusätzlich zu einem Server, als "Aktenkoffer-Modell" o.ä.) kannst du auch auf eine dateibasierte "DB" zugreifen. Dem TClientDataSet kannst du als Quelle eine Datei geben und ansonsten aber wie mit einer Datenbank arbeiten. Das ClientDataSet gibt es AFAIK ab Delphi 4, oder zumindest kann es da nach installiert werden). Diese Datei kann entweder im Binärformat sein, oder als XML-Datei. Das ist eigentlich der einfachste Weg, um auf Daten zuzugreifen, wenn es sich nicht nur um 2-3 Einträge irgendwo handelt. Natürlich könntest du das auch mit mit Text- oder Binärdateien selber machen. Dazu musst du dir aber selber eine Struktur "ausdenken" und die Daten in eine DAtei schreiben und sie daraus lesen. Wenn es sich nur um eine bestimmte, kleine und feste Anzahl Daten handelt, geht es auch über eine Ini-Datei oder über die Registry. Dazu werden von Delphi auch fertige Methoden angeboten. Welche Methode für dein Programm jetzt die geeignete ist, musst du selbst entscheiden. Was genau soll dein Programm denn tun und können? Zitieren
fi-newbie Geschrieben 17. September 2005 Autor Geschrieben 17. September 2005 Hallo! @JesterDay: Erstmal Danke für die Antwort. Also mit BDE und Datenbanken kenn ich mich relativ gut aus, aber so merkwürdig das jetzt vielleicht klingt, ich hab keine Ahnung wie ich ohne z.b. überall die BDE zu instalieren meinen Daten speichern könnte... Mit SQL kenn ich mich auch aus, aber ich will wie gesagt ohne jegliches Zusatzprogramm die Daten abfragen können (falls das überhaupt geht). Also das mit der XML, ini oder Text-Datei hört sich doch schon mal gut an. Welche Methode ist die einfachste, welche würdet Du empfehlen? Das Programm sollte halt wie gesagt Verwaltungsfunktionen erfüllen (z.b. eine Verwaltung der CD-Sammlung oder so ähnlich), Oder es gibt soweit ich weiß auch die Möglichkeit mit Access-Datenbanken zu arbeiten, aber da muss dann sicher auf jedem Recher, der das Programm benutzen will, MS Access installiert sein, oder? mfg Zitieren
Amstelchen Geschrieben 18. September 2005 Geschrieben 18. September 2005 bei simplen text-dateien besteht die problematik, dass du hier nur sequentiellen zugriff hast, d.h. die datei wahrscheinlich vollständig einlesen musst, bevor du die daten darin verwalten kannst. ini-dateien kannst du über die bestehenden api-aufrufe oder über eine wrapper-klasse auslesen, diese bieten dir einen wahlfreien zugriff, d.h. du musst sie nicht sequentiell auslesen. das verwalten von hierarchischen daten (interpret / album / lied) kannst du z.b. über XML lösen, wobei hier natürlich ein basiswissen über den aufbau von XML-dateien da sein muss. zum zugriff auf access-datenbanken brauchst du nur einen entsprechenden datenbanklayer, z.b. ADO oder DAO. s'Amstel Zitieren
fi-newbie Geschrieben 24. September 2005 Autor Geschrieben 24. September 2005 Hallo! Ich hab mich für die Variante einer Access-Datenbank entschieden. Nun meine Frage: Ich kenn es bisher nur so, dass ich in der BDE die Access-Datenbank eintrage und dann anhand einer Query auf diese DB zugreife. Aber wie muss ich es anstellen, wenn ich ohne die BDE-Verwaltung arbeiten will. D.h. ich würde dann das Programm und die dazugehörige Datenbank einfach in den selben Ordner packen. Wie kann ich ohne die BDE-Verwaltung auf diese DB zugreifen? Wie muss ich den Pfad einstellen? Und muss auf jedem Rechner dann Acces installiert sein, oder ist das nicht notwendig? Danke im Vorraus. mfg Zitieren
Amstelchen Geschrieben 24. September 2005 Geschrieben 24. September 2005 du kannst z.b. über ADO arbeiten. verwende dazu TADOConnection und definiere die datenquelle (wahlweise datei oder connectionstring mit dem jet 4 OLE DB anbieter). dann die datenbankdatei mit dem programm mitliefern oder auf einem netzwerkshare ablegen. und nein, du musst kein access mitliefern. edit: würde mich trotzdem rein interessehalber interessieren, welche art von daten du verwalten willst - ist ja auch nicht unerheblich. noch 'n edit: ok, cd-sammlung, hab ich überlesen :floet: s'Amstel Zitieren
fi-newbie Geschrieben 25. September 2005 Autor Geschrieben 25. September 2005 Hallo nochmal! Danke erstmal für die Antwort. Ich kenn das bei SQL-Datenbanken nur so: - DBGrid mit DataSource verbinden - diese DataSource mit ner Query verbinden - und diese Query mit dem jeweiligen BDE-Alias verbinden Aber wie funktioniert das mit Access Datenbanken? Womit verbinde ich das DBGrid? Ich hab auch schon in der Hilfe nachgeschaut, ist alles sehr verwirrend und z.T. nur von Profis zu vertshene, wenn man in der Richtung noch nie was gemacht hat... Muss das Programm dann am Ende immer in das selbe Verzeichnis bei jedem Rechner gepackt werden? Weil wenn ich für die DB nen Pfad angebe, ist der ja auf jedem PC unterschiedlich... mfg newbie Zitieren
Amstelchen Geschrieben 25. September 2005 Geschrieben 25. September 2005 relative pfadangaben bei connectionstrings sind nicht möglich - du kannst in delphi aber den pfad mit Application.ExeName ermitteln und von dort aus weg deinen connectionstring bauen ADOConection.ConectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;[B]Data Source=' + ExtractFilePath(Application.ExeName) + 'Datenverzeichnis\Kundendaten.mdb;[/B]Mode=ReadWrite;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=qx99;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False'; ADOConection.IsConnected := TRUE; dem dg kannst du eine quelle geben, in etwa dieser art: DBGrid1.DataSource.DataSet = TADODataSet s'Amstel Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.