AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?
Thema durchsuchen
Ansicht
Themen-Optionen

Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?

Ein Thema von sigi · begonnen am 19. Mär 2016 · letzter Beitrag vom 23. Mär 2016
Antwort Antwort
sigi

Registriert seit: 27. Dez 2003
16 Beiträge
 
Delphi XE5 Professional
 
#1

Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?

  Alt 19. Mär 2016, 13:26
Hallo,

ich habe DBGrid über ADOConnection, DataSource, und Table mit einer Daten.mdb verbunden. Provider=Microsoft.Jet.OLEDB.4.0. Soweit alles ok.
Ich möchte folgendes, wenn die exe und Daten.mdb in einen beliebigen Ordner gepackt wird, das die exe nur in diesem Ordner nach der Daten.mdb sucht und verwendet. Ist das möglich, oder muss immer der direkte Pfad zur Datenbank in der exe angegeben werden?

Gruß sigi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?

  Alt 19. Mär 2016, 13:28
Du kannst den connection string auch dynamisch beim Start der Applikation auf den dann gültigen absoluten Pfad setzen.
Markus Kinzler
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?

  Alt 19. Mär 2016, 14:13
Wenn im Connectionstring der Datenbankname ohne Pfad angegeben ist, sucht die Exe die Datenbank nur im eigenen Verzeichnis.

Sprich: Datenbank und Exe müssen sich dann im gleichen Verzeichnis befinden.
  Mit Zitat antworten Zitat
sigi

Registriert seit: 27. Dez 2003
16 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?

  Alt 23. Mär 2016, 11:53
Wenn im Connectionstring der Datenbankname ohne Pfad angegeben ist, sucht die Exe die Datenbank nur im eigenen Verzeichnis.
Das ist es, Danke

Gruß sigi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?

  Alt 23. Mär 2016, 14:29
Darauf würde ich mich aber nicht verlassen.
Markus Kinzler
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#6

AW: Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?

  Alt 23. Mär 2016, 14:55
Hmm..

könnte es nicht sein, dass dann im 'Arbeitsverzeichnis' gesucht wird?

Besser den Pfad absolut mit
ExtractFilePath(ParamStr(0)) + 'Daten.mdb'
im Connectionstring setzen.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

AW: Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?

  Alt 23. Mär 2016, 15:50
Hmm..

könnte es nicht sein, dass dann im 'Arbeitsverzeichnis' gesucht wird?

Besser den Pfad absolut mit
ExtractFilePath(ParamStr(0)) + 'Daten.mdb'
im Connectionstring setzen.
Dann muss man aber zur Laufzeit den Connectionstring parsen und verändern.

Alternative: Statt nur den Dateinamen der Datenbankdatei .\Datenbankdateiname.mdb nehmen.

Im FormCreate kann man auch noch ein   ChDir(ExtractFilePath(Application.ExeName)); machen, dann ist das aktuelle Verzeichnis auf jeden Fall auch das Arbeitsverzeichnis, unabhängig davon, wer wann und wo ein Arbeitsverzeichnis angegeben hat.

Diese Variante nutze ich für Programme, die nicht installiert werden müssen, sondern von USB-Stick, externer Festplatte... laufen sollen und ihre Daten auf dem Speicherträger ablegen sollen, auf dem sich die Exe befindet.

Allerdings lege ich die Daten, Konfigurationen... in Unterverzeichnissen ab.

Der Datenbankname im Connectionstring sähe dann so aus: .\Data\Datenbankdateiname.mdb Konfigurationen befinden sich im Unterverzeichnis Config, eine Dateinamenangabe sähe dann so aus: .\Config\Programmname.ini
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#8

AW: Direkte Pfadangabe zur Datenbank (mdb) zwingend nötig?

  Alt 23. Mär 2016, 19:30
Hmm..

Wir bauen den ConnectionString grundsätzlich dynamisch zusammen und öffnen die DB gezielt.

Über eine INI-Datei wird angegeben, zu welchem Datenbank-Typ die Verbindung aufgebaut werden soll und wie der Server-Name ist.

Somit kann mal eine Access-Datenbank, mal ein MSSQL-Server oder eben eine andere ODBC-Schnittstelle verwendet werden, ohne dass im Programm was verändert werden muss.
(Klar dass die SQL-Abfragen auf allen DB-Systemen gleich funktionieren müssen )
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz