Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Kompatibilität (https://www.delphipraxis.net/37523-kompatibilitaet.html)

Bernhard Geyer 7. Jan 2005 08:04

Re: Kompatibilität
 
Zitat:

Zitat von jensw_2000
Die Datenbankverzeichnisse (DBDir - normales Datenbankverzeichnis auf dem Server, AltDBDir - ein alternatives Datenbankverzeichnis, z.B. in c:\programme\irgendwas für Notebook Nutzer) werden während der Installation, bei der man ohnehin Adminrechte benötigt, geschrieben.

Die Pfade kann man aus dem Programm heraus Ändern, wenn man lokale Adminrechte hat, normale User dürfen das halt nicht

Ok, wenn das verhalten (Admin dürfen, Normale Anwender nicht) so auch gewünscht ist, so ist das OK.

LkZ 8. Jan 2005 19:39

Re: Kompatibilität
 
Hi ich bins nochmal!

Also 2.Problem:

Als ich mein Programm einen Freund geben wollte, dann wollte es nicht starten. Er sagte mir dass es ein "Server Error" ist. Ich habe die Fehlermeldung nicht gelesen, weil es ja bei mir funktioniert.

Dann sagte man mir, dass (viele) Personen keinen Datenbanktreiber für meine Datenbank (acces) haben, deshalb sollte ich den Treiber (woher ich ihn herbekommen sollte, weiss ich nicht) mit in die Installationsdatei beifügen.

Also meine Fragen sind:
1. Kann ich Lizenzfrei den Treiber in meine Installationsdatei beifügen?
2. Wenn ja, woher bekomm ich die (soll eine DLL sein) und wo soll sie installiert werden?

danke MfG LkZ

jensw_2000 8. Jan 2005 20:13

Re: Kompatibilität
 
Hi,


Der Treiber der verwendet wird, nennt dich OLE DB und ist bei allen WIndows Versionen (ab Win98) mit dabei.
Je nach Version der Access Datenbank (95, 97, 2000/XP, 2003) kann aber ein Update für die OLE DB Treiber
sinnvoll bzw. notwendig sein. Hier Link zu den Microsoft Data Access Components (MDAC) Version 2.8

MDAC 2.8 - Microsoft.com



Wie hast du es jetzt gemacht ?

Speicherst du den kompletten Connectionstring oder gibst du als CS die MDB Datei an ?
Ein einfache Verweis aus die MDB ist immer das Beste, da die im CS angegebenen Paramater zwischen den OLEDB Treiber Versionen und Betriebssystemen abweichen können.

:hi:


[edit]
Da fällt mir noch was ein ...

Überschreibst (bzw. setzt) du den Connectionstring im TAdoConnection.WillConnect ?
Wenn nicht, must du darauf achten, das du deine TAdoConnection vor dem Compilieren auf active:=false stellst.

Sonst passiert folgendes:
Deine Instanz von TAdoConnection wird mit dem Status active:=true und Connectionstring:="dein systemeigener cs" in die exe geschrieben. Wenn die exe jetzt auf einem anderen System gestartet wird, wo z.B. die MDB in einem anderen Verzeichnis liegt, startet dein Programm erst, nachdem das ConnectionTimeout deiner AdoConnection abgelaufen ist, und es kommen dann (ggf.) ein paar Fehler- und Folgefehlermeldungen.

Umgeben kann man das Ganze wie gesagt wenn man den CS der TAdoConnection im WillConnect Eventhandler "korrigiert und überschreibt".


[/edit]

LkZ 8. Jan 2005 20:19

Re: Kompatibilität
 
ja,ich speichere den connectionstring: ich lasse ihn in die Resigisry schreiben...

jensw_2000 8. Jan 2005 20:36

Re: Kompatibilität
 
Wenn du den kompletten ConnectionString speicherst solltest du deine AdoConnection in etwa so öffnen:


Code:
procedure AdoConnection.Willconnect(var Connectionstring...);
begin

  //.. Connectionstring aus Registry laden und
  .
  .
  .
  Connectionstring:=reg.readstring ('meinConnectionString');

end;

Code:
Procedure irgendwas;
begin
  try
     AdoConnection.open;
  except
    on e:Exception do
    begin
      if Adoconnection.connected=false then
      begin
         //  Connectionstring neu konfigurieren
      end
      else raise
    end;
  end;

   
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz