AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datenbankpfad dynamisch erstellen

Ein Thema von m-werk · begonnen am 12. Apr 2012 · letzter Beitrag vom 12. Apr 2012
Antwort Antwort
Seite 1 von 2  1 2      
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#1

Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 14:08
Hallo,

ich hab ja mein Programm auf einem Testlaufwerk liegen und darunter hab ich einen Ordner mit database. In diesem Ordner liegt meine Datenbank, welche mit mit meinem Programm verbunden ist.

Jetzt möchte ich aber mein Programm mit der Datenbank auf einen anderen Rechner übertragen, sprich ich möchte NUR die Exe Datei und den Datenbankordner inkl. DB mitnehmen und in einen neuen Ordner einfügen.

Jetzt ist es aber so, dass mein Programm auf jede Datenbank zugreifen möchte, welche auf meinem Testrechner im Testordner liegt.

Wie kann ich mein Programm dazu bringen, dass er NUR vom Unterordner meine DB nimmt?

Der ConnectionString sieht so aus:
Code:
    ConnectionString =
      'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Programme\Hohen' +
      'burgerhof\Programm4\database\kundendaten.accdb;Mode=ReadWrite;Pe' +
      'rsist Security Info=False'
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 14:16
Jetzt ist es aber so, dass mein Programm auf jede Datenbank zugreifen möchte, welche auf meinem Testrechner im Testordner liegt.
Das ist nach meiner Meinung durch den Connectionstring ausgeschlossen.

Woran merkt man denn, daß Dein Programm mit jeder DB eines Verzeichnisses Kontakt aufnehmen will?

Liegen da vielleicht noch ein paar offene Connections irgendwo herum?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 14:17
wenn er schon gesetzt ist (ist ja oft so beim Entwickeln)
Delphi-Quellcode:
  ADOConnection1.Properties.Item['Data Source'].Value := ExtractFilePath(Paramstr(0)) + 'database\kundendaten.accdb';
  Showmessage(ADOConnection1.ConnectionString);
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#4

AW: Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 14:22
Versteh ich jetzt nicht.

Diesen Code hab ich aus der Unit1.dfm:
Code:
  object ADOConnection1: TADOConnection
    Connected = True
    ConnectionString =
      'Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Programme\Hohenburgerhof\Programm4\database\kundendaten.accdb;Mode=ReadWrite;Pe' +
      'rsist Security Info=False'
    LoginPrompt = False
    Mode = cmReadWrite
    Provider = 'Microsoft.ACE.OLEDB.12.0'
    Left = 64
    Top = 544
Dort steht der ganze Pfad drin.
Grüße, m-werk
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#5

AW: Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 14:23
Ich denke, dass der Connectionstring fest einprogrammiert ist. Also würde ich folgendes vorschlagen:
  1. Connectionstring dynamisch aufbauen
  2. Beim Start der Anwendung zb den Pfad zur DB aus der Registry auslesen
  3. Wenn kein DB-Pfad in der Registry, oder wenn die DB nicht existiert Openfiledialog ausführen und den User die DB holen lassen
  4. den DB Pfad in den dynamischen Connectionstring einbauen
  5. den DB Pfad in der Registry speichern
  Mit Zitat antworten Zitat
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#6

AW: Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 14:27
Ok, das würde ja eigentlich logisch klingen, nur muss ich das über die Registry machen?

Wie würde es aussehen, wenn man dies über eine INI-Datei macht, die im Pfad des Programmes liegt?
Grüße, m-werk
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 14:27
packe einfach die erste Zeile meines Codes in BeforeConnect der Connection
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#8

AW: Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 14:34
Oh, DANKE. Das hat prima funktioniert.
Grüße, m-werk
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#9

AW: Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 14:39
Ok, das würde ja eigentlich logisch klingen, nur muss ich das über die Registry machen?

Wie würde es aussehen, wenn man dies über eine INI-Datei macht, die im Pfad des Programmes liegt?
Wenn Du voraussetzt, dass dein Programm Schreibrechte im Programmverzeichnis hat, dann kannst Du selbstverständlich auch eine Ini-Datei nehmen.

Zu Bummis Vorschlag:
Der Funktioniert natürlich ebenfalls, aber nur unter 2 Voraussetzungen:
1. Du setzt voraus, dass die relativen Pfade stimmen
2. Du setzt voraus, dass der Pfad wo die DB liegt Schreibrechte besitzt
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Datenbankpfad dynamisch erstellen

  Alt 12. Apr 2012, 16:17
Zu Bummis Vorschlag:
Der Funktioniert natürlich ebenfalls, aber nur unter 2 Voraussetzungen:
1. Du setzt voraus, dass die relativen Pfade stimmen
irgendwann muß man sich auf die Vorgaben verlassen.

2. Du setzt voraus, dass der Pfad wo die DB liegt Schreibrechte besitzt
das versteh ich jetzt nicht, Das ist doch nicht spezifisch für Bummi's Vorschlag??

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:33 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