ich hab ein kleines Program mit einer datenbank und andern sachen
geschrieben, und auf meinem computer funktioniert alles, aber wenn ich's auf
einem anderen starten will, kann er die datenbank nicht finden.
Um das richtige verzeichnis zu finden verwende ich:
procedure TForm1.FormCreate(Sender: TObject);
var verzeichnix:string;
begin
verzeichnis:=ExtractFilePath(ParamStr(0));
Table1.Active:=False;
try
Table1.DatabaseName:=verzeichnis;
Table1.TableName:='database.DB';
Table1.Active:=True;
except
ShowMessage('database.DB konnte nicht gefunden werden');
end;
end;
mfg Wolfi
Hat der andere Computer die BDE (Borland Database Engine ) ??
Nein, ist nicht installiert.
> Nein, ist nicht installiert.
Wenn du ein Programm mit Datenbankfunktionen geschrieben hast, kannst du
nicht einfach die EXE datei auf einen anderen Rechner kopieren.
Um dein Programm ausführen zu können, braucht der "neue Rechner" auch die
BDE. Die BDE muß installiert werden. Du kannst die BDE auf mehrere Arten auf
einen Rechner installieren.
-Installshield Express
mit diesem Programm erstellst du profesionelle SETUP.EXE
Man definiert im Programm, welche Datein auf dem Zielrechner
installiert werden, und definiert, od die BDE installiert werden soll.
-weitere Komponenten für BDE unter http://delphi.icm.edu.pl/
Welche Delphi Version besitzt du ?
Welches Betriebssystem ?
Hast du schon mal was von Installshield gehört ?
Ist es bei deiner Version von Delphi dabei ( es ist ein eigenständiges
Programm..----
wenn ich meine Delphi 3.0 C/S CD-Rom in´s Laufwerk einlege, wird per
Autostart
ein Install-Menü gestartet, wo ich auswählen kann, was installiert wird.
Interbase SQL Server
Delphi 3.0
Installshield !!!!!!!!!!!!!!!!
... u.s.w. )
TIA Erich Wanker
Super !
Danke für den Tip!
Jetzt funktionierts.
Nur eine Frage hätte ich da noch:
Was wäre wenn auf dem Computer schon eine andere Version der BDE installiert
ist ?
mfg Wolfi
>Um das richtige verzeichnis zu finden verwende ich:
Das sieht gut aus.
> Table1.Active:=False;
Wenn Du diese Zeile brauchst bedeutet das, daß Deine Tabelle vorher
schon offen gewesen sein könnte.
Das wiederum bedeutet, daß sie schon vor dem Code, den Du benutzt
geöffnet werden sollte.
Und das wiederum kann ja nicht funktionieren, wenn Du den Pfad
festkodiert hast.
Stelle also sicher, daß alle Tabellen und Queries im Designer
geschlossen sind bevor Du Dein Programm zur Weitergabe neu übersetzt.
Am einfachsten kannst Du das erreichen wenn Du eine
TDataBase-Komponente benutzt. Setzt Du deren Connected-Eigenschaft auf
False klappen auch alle angeschlossenen Datenmengen zu. Außerdem
brauchst Du dann den Pfadnamen nur an einer Stelle zu setzen.
Ciao, MM
--
Marian Aldenhövel, Hainstraße 8, 53121 Bonn, Germany
http://www.marian-aldenhoevel.de
"I not as think as you drunk I am"
Kein Problem ! Die neue BDE überschreibt die alte BDE
- ist aber 100% abwärtskompatiebel !
HTH Erich Wanker
[fullquote entsorgt] ... grr !
> Was wäre wenn auf dem Computer schon eine andere Version der BDE
> installiert ist ?
Ein "Drüberfahren" einer alten BDE über eine neue könnte ziemliches Chaos
verursachen (Durch die Installation eines älteren Lexikons gab mein D3 seine
Datenbankaktivitäten auf :-( ...und ich mußte die BDE neu installieren)
Bei der Installation(Install Shield Express=ISX) eines D3-Programms inkl.
der BDE der D3-CD, brachte auf einem Rechner mit vorhandener D5 Enterprise
in etwa folgende Message:
"Ein Überschreiben der vorhandenen neueren Version der BDE kann zur
Beeinträchtigung der Datenbearbeitung führen"
Blöderweise gibt Dir ISX nur die Möglichkeit die gesamte Installation
fortzuführen oder abzubrechen, hier ärgerte mich die fehlende Möglichkeit
lediglich die BDE-Installation zu verhindern.
Abwärtskompatibilität kann man aber imho auf jeden Fall voraussetzen...
Daher solltest Du Dir auf jeden Fall mal die neueste BDE vom Netz saugen u.
installieren!
<nur mehr hörensagen>
In weiser Voraussicht könnte man sich auch eine eigene BDE-Installation
zusammenbasteln (inkl. Abfrage der ev. vorhandenen Version) oder einen
besseren Installations-Manager zulegen: z.B. Wise, ISX-Prof.(?) o.a.
</nur mehr hörensagen>
hth novi