Datenbank anwendung auf einem anderen Rechner installieren
-
Hallo zusammen,
ich habe ein Programm geschrieben welches Adressen aus einer Access-Datenbank anzeigt, hinzufügt und löscht (also ein kleines und bescheidenes Prog).
Mein Kumpel fragte jetzt, ob ich ihm das auch machen könnte (für seinen Rechner). Wenn ich jetzt ein SetUp dazu erstelle, dann muss ich doch:=> Die Access-Datenbank mit einbeziehen? // Muss sie in dem selben Verzeichnis liegen, wie auf meinem Rechner bei der Programmierung, oder kann sie in irgend einem belibigen Verzeichnis liegen??
=> Gibt es einen Weg, das die Datenbank sich automatisch in den ODBC Datenquellen installiert, oder muss das "manuell" gemacht werden?
=> Er muss Access 2000 installiert haben?
-------------------------------------------------------------------
=> Auf welche Datenbank kann ich bei der Programmierung zurückgreifen,
damit (z.B. mein Kumpel), kein extra Programm wie Access installiert haben muss???Gruss:
SaschaPS: Danke für jeden hilfreichen Hinweiß!
-
Um dir helfen zu können solltest du noch miteilenn wie
du auf die Datenbank zugreifst z.B ADO, BDE, ODBC ohne BDE ....
-
=> Die Access-Datenbank mit einbeziehen? // Muss sie in dem selben Verzeichnis liegen, wie auf meinem Rechner bei der Programmierung, oder kann sie in irgend einem belibigen Verzeichnis liegen??
Du kannst in der Regristry ja einen Eintrag für den Pfad hinterlegen. Man kann so später auf Änderungen der pfade reagieren. Gut wäre, wenn man im Programm dann auch den Pfad in der Regrsistry ändern könnte.
=> Gibt es einen Weg, das die Datenbank sich automatisch in den ODBC Datenquellen installiert, oder muss das "manuell" gemacht werden?
Such mal hier im BCB- Forum nach ODBC. Es gibt mehrere Beispiele wie man sowas per Quellcode erledigt. Ansonsten gibt es Installtionsprogramme, die sowas auch machen können.
Er muss Access 2000 installiert haben?
wenn nicht musst du den Treiber mitinstallieren. Pflicht ist Access 2000 aber nicht. Stelle aber sicher, dass es keine Versionskonflikte mit anderen Access- Datenbanken und Programmen auf den Zielrecher gibt.
-
=> Auf welche Datenbank kann ich bei der Programmierung zurückgreifen,
damit (z.B. mein Kumpel), kein extra Programm wie Access installiert haben muss???such mal hier im Forum nach "Datenbank mysql"
-
Die Access-Datenbank ist ist über den Microsoft-Access-Treiber im System unter ODBC installiert.
Ich habe das Prog aber vorhin so geändert, das ich als Datenbank eine
Paradox7-Tabelle nutze, die wird ja dann als xxx_datenbank.db gespeichert, dafür brauche ich ja meines wissens nach keinen ODBC-Treiber und so???
Wenn ich jetzt auf diese *.db Datei zugreife, gebe ich dem Boland Builder
ja den Pfad der Datei sowie den Namen der Datei an.=> Ich kann mit meinem SetUp-Maker bestimmte einträge machen, aber ich glaube du meintest, das das Prog selber diesen Eintrag macht, oder hab ich das falsch verstanden? Wie mache ich das denn? Die Pfade und Dateinamen kann ich ja im Objekt-Inspektor eingeben, aber wie kann ich das mit der Registery machen?
Wäre es nicht die einfachste Lösung, wenn ich beim erstellen des Progs, die *.db ins gleiche Verzeichnis lege wie das Projekt, bzw. die *.EXE????
Denn der Setup-Maker kopiert ja alle Daten auch wieder in "Einen" Ordner?Nur stellt sich mir jetzt die Frage:
Ich muss im Borland Builder ja den Pfad:
C:\%BORLAND_VERZEICHNIS%\
und den Dateinamen:
XXX.db
angeben, wenn ich das Prog jetzt erstellt habe und wo anders installiere, will es dann wieder auf die grade angegebenen Pfade zugreifen, oder weiß es, das sich die *.db im selben Verzeichnis liegt?
-
Hab die Idee mit dem "Selben Verzeichnis" grad mal getestet, klappt aber nicht, wenn ich nur den dateinamen der *.db angebe und den Pfad weglasse, will er automatisch auf den Pfad "C:\Borland\CBuilder6\Projects" zugreifen und zeigt mir einen Fehler an. Wie kann ich das umgehen??? Also das das Prog weiß, das die *.db im selben Verzeichnis wie das Prog selbst liegt????
-
=> Ich kann mit meinem SetUp-Maker bestimmte einträge machen, aber ich glaube du meintest, das das Prog selber diesen Eintrag macht, oder hab ich das falsch verstanden? Wie mache ich das denn? Die Pfade und Dateinamen kann ich ja im Objekt-Inspektor eingeben, aber wie kann ich das mit der Registery machen?
InstallShield- Express bietet da Einstellungsmöglichkeiten. Ein paar andere Free- Installer bieten diese Möglichkeit auch, aber längst nicht alle. Die knofiguration einer ODBC- Verbindung über Quellcode ist die zweite Variante. Diese ist längst nicht so schwer wie man denkt. Wie gesagt gibt es hier Beispiele im Forum.
Zum Thema Regristr siehe in der Hilfe zum Thema TRegristry oder im Tutorial (siehe Signatur).
Hab die Idee mit dem "Selben Verzeichnis" grad mal getestet, klappt aber nicht, wenn ich nur den dateinamen der *.db angebe und den Pfad weglasse, will er automatisch auf den Pfad "C:\Borland\CBuilder6\Projects"
Auch einen Möglichkeit. So ählich bekommst du den Pfad:
String Path=ExtractFilePath(Application->ExeName); // oder so (habs nciht genau im Kopf und keine Zeit zum nachschauen)
dann hänge an Path den Datenbanknamen dran.
Prüfe in der ODBC- Verwaltung (schau in der Header der Konfigurationsroutinen der ODBC- Verwaltung (siehe Beispiel hier im Forum) nach Routinen zum auslesen der ODBC- Konfiguration) ob die erforlderliche Konfiguration vorhanden ist. Wenn nicht, legst du sie einfach beim Programmstart an.
-
AndreasW schrieb:
[...]
Auch einen Möglichkeit. So ählich bekommst du den Pfad:String Path=ExtractFilePath(Application->ExeName);
dann hänge an Path den Datenbanknamen dran.
[...]Also ich mache das immer, indem ich im Programmverzeichnis ein weiteres Verzeichnis "DATA" habe. Den Pfad bestimmst du dann so, wie AndreasW es beschrieben hat.
Wenn du eine paradox7-Tabelle nimmst und dann mit den Komponenten der BDE arbeitest, musst du die BDE im Setup mitliefernIch habe das mit InnoSetup gemacht. Ist Freeware und auf der Seite gibt es ein Tutorial zur Einbindung der BDE.
Viel Erfolg damit.
EDIT:
Link zur InnoSetup-FAQ eingefügt und Darstellung des Zitats gefixt.
-
Danke für die Hilfen, das klappt jetzt auch!
Hat sich aber ein weiteres Problem ergeben:
Woher kann ich VORHER wissen, welche daten das Prog braucht.
Mein Kumpel hatte es bei sich installiert, konnte es aber nicht starten,
weil die Dateien:vcl60.bpl
rtl60.bpl
dbrtl60.bpl
vcldb60.bpl
bdertl60.bpl
BORLNDMM.dll und
cc3260MT.dllfehlten. Wie kann ich vorher herausfinden, welche Dateien ich zusätzlich auf CD/Diskette packen muss????
Achja, aber er startet das Prog trotzdem noch nicht.
Er zeigt folgendes an:An error occurred while attempting to initialize Borland Database Engine (error $2180)
Was zum Teufel bedeutet das???????
Wie kann ich das Problem beheben???????????????????????
-
Danke für den Link, der hilft mir aber nicht wirklich weiter, da meine Englischkenntnisse = "unzureichend" sind.
Und die BDE lässt sich ohne das eine Version vom c++ Builder auf dem anderen Rechner vorhanden ist nicht installieren!!!
-
AntworteMir schrieb:
Danke für den Link, der hilft mir aber nicht wirklich weiter, da meine Englischkenntnisse = "unzureichend" sind.
Und die BDE lässt sich ohne das eine Version vom c++ Builder auf dem anderen Rechner vorhanden ist nicht installieren!!!
Hmm - da ich gerade keine Zeit habe, dir das da zu übersetzen - lasse es doch einfach mit den Google-Sprachtools übersetzen - ist dann zwar nicht annähernd richtig übersetzt - den Sinn sollte man aber verstehen können. Dass die BDE ohne C++Builder nicht installiert werden kann wäre mir neu - bei mir funktionierts ja wie gesagt ...
Um die von dir beschribenen Dateien nicht mitgeben zu müssen, musst du unter Projekt|Linker (glaube ich - habe BCB hier auf dem Rechner nicht installiert) und dann RTL verwenden das Häckchen wegmachen und bei Packages (glaube ich wieder) das unterste Häckchen wegmachen (das müsste "mit Runtime Packages compilieren" oder so heißen).
Dann musst du die Dateien nicht mitgeben.
-
Und die BDE lässt sich ohne das eine Version vom c++ Builder auf dem anderen Rechner vorhanden ist nicht installieren!!!
qwatsch. Ein Installationsprogramm für die BDE kann man von Borland runterladen.
-
Hi!
Du musst keine Dateien mitkopieren wenn Du folgendes tust:
Häckchen unter Project --> Optionen --> Packages --> Mit Laufzeit-Packages aktualisieren entfernen
Ansonsten noch:
Häckchen unter Project --> Optionen --> Linker --> Mit Debug-Informationen und dynamisches RTL verwenden entfernen
Jetzt wird die Exe zwar um einiges größer, aber sie läuft auf jedem Rechner!
Viel Spass noch!
-
Also wenn ich die BDE auf dem Rechner von meinem Kumpel installieren will,
wird mir folgender Fehler angezeigt:Das Setup konnte keine gültige Version von Delphi oder C++ Builder entdecken. Um dieses Modul verwenden zu können, muss eine Enterprise-Version von Delphi oder C++ Builder installiert sein. Die Installation kann nicht fortgesetzt werden.
@AndreasW: Hab mal auf Borland.com nachgeschaut, hab aber zum Thema BDE keinen Installer gefunden
-
Dann wird Borland die Downloads der BDE entgültig vom Netz genommen haben. Da Borland die BDE eh nicht mehr weiterentwickelt ist das nicht verwunderlich. Muss es denn unbedingt die abgelutschte BDE sein ?
Was steht gegen mysql, InterBase,DB2 oder Access ?
-
Naja generell spricht nichts gegen Access und SQL, aber da ich noch nicht solange in der C++ Programmierung dabei bin, habe ich mich an SQL noch nicht ran gewagt. Mit Access habe ich schon gearbeitet, aber da habe ich noch kein Tutorial gefungen, wie ich die Anwendung dann auf Fremdrechner mit den MS-Access-Treibern istalliere, bzw. wie ich es anstelle, das prog im netzwerk zu installieren wenn die Datenbank auf dem Server liegt.
Hast/Kennst du eventuell ein par gute Tutorials dazu????
-
Generell musst du für die Arbeit mit Access nur dafür sorgen, dass die microsoft Jet-Treiber installiert sind. Die gibts mittlerweile im ServicePack8 auf der MS-Website zum Download.
Für SQL guckst du am besten im PHP QuakeNet.
Das bezieht sich zwar auf PHP, aber angucken musst du dir nur die SQL-Befehle wieSELECT * FROM tabelle WHERE Wert1 = Wert2;
Ich hoffe, das hilft ein wenig ...
-
für mysql ist das recht gut: http://www.little-idiot.de/mysql/mysql.html#toc1
-
Ok ich probiers mal damit.
Ich danke euch erst mal für eure Hilfen!