AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird-Connectstring
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird-Connectstring

Ein Thema von Harry60 · begonnen am 24. Jan 2006 · letzter Beitrag vom 26. Jan 2006
Antwort Antwort
Harry60

Registriert seit: 24. Jan 2006
Ort: Berlin
3 Beiträge
 
#1

Firebird-Connectstring

  Alt 24. Jan 2006, 18:25
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBX
Hallo zusammen,

Ich arbeite mit Firebird. Nun muss ja die Datenbank immer aus Sicht des Servers angegeben werden. Das ist soweit klar und wurde auch hier im Forum mehrfach erklärt. Ich habe in meinem Programm eine Mandantenverwaltung. Der Anwender kann somit neue Mandanten (Datenbanken) anlegen. Wie bekomme ich nun den lokalen (aus Sicht des Servers) Datenbankpfad heraus, sodass ich den Connectstring korrekt erzeugen kann ?

Beispiel : UNC-Pfad : \\SERVER\DATEN\DATENPFAD\

Connectstring: SERVER:\DATENPFAD\

MfG
  Mit Zitat antworten Zitat
peter12

Registriert seit: 28. Feb 2005
Ort: Oberneukirchen ,Österreich
183 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Firebird-Connectstring

  Alt 24. Jan 2006, 18:44
Connectpfad für Firebird
unter
C:\Programme\Firebird\Firebird_1_5\aliases.conf
den Alias Namen angeben.
z.B. mbr=c:\mbr\mbr.fdb

Ansprechen unter Servername:mbr
oder 80.121.216.209:mbr

peter
  Mit Zitat antworten Zitat
Harry60

Registriert seit: 24. Jan 2006
Ort: Berlin
3 Beiträge
 
#3

Re: Firebird-Connectstring

  Alt 25. Jan 2006, 15:59
Hallo Peter12,

das ist ja klar, aber genau das möchte ich ja nicht. Um das Problem verständlicher zu erklären folgender Ablauf.

1. Der Anwender wählt in meinem Programm ein Serverlaufwerk aus (gemappt oder über Netzwerkverbindungen ist egal).
2. In diesem Verzeichnis (bspw. \\SERVER\DATEN\MANDANT\) soll die neue Datenbank per Programm erzeugt werden.
3. Aus Sicht des Servers ist dieses Verzeichnis aber D:\DATEN\MANDANT\.
4. Mein Programm soll in diesem Verzeichnis eine DB anlegen und einen Connect herstellen, ohne das manuell irgendetwas angepasst werden muss (ALIAS). Dafür benötige ich für den Connectstring "D:\DATEN\MANDANT".

Wie kann ich also per Programm das Verzeichnis aus Sicht des Servers auslesen ?


MfG
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Firebird-Connectstring

  Alt 25. Jan 2006, 17:40
Hallo Harry,

der Server-Admin wird sich bedanken - irgendein Client sucht sich irgendein Verzeichnis auf dem Server aus und erzeugt dort eine Datenbank? Wenn überhaupt, dann gebe ich dir als Admin ein Share und trage dich im Quota-Server ein. Warum gibst du dem DBA nicht ein Installations-Skript und gut ist? Welchen Sinn macht das Anlegen einer Datenbank durch den Client?

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Firebird-Connectstring

  Alt 26. Jan 2006, 07:06
Hi,

ich denke auch, dass das sehr gefährlich sein wird. Wo ist das Problem, wenn der Server den Pfad für die DB selbst bestimmt? Wenn Du dann ne Übersicht über alle bestehenden DB's brauchst (um dich später wieder damit zu verbinden), kannst Du diese entweder in einer System-DB deiner Applikation abspeichern oder nen Dienst schreiben, der das entsprechende Verzeichnis überwacht.

Einen Zugriff auf eine IB/FB-DB über ein gemapptes / freigegebenes Laufwerk halte ich für sehr bedenklich. Was, wenn der User "mal eben" eine Kopie der DB mit nach Hause nehmen will? Russisches Roulette kann nicht schöner sein!

Grüße
Lemmy
  Mit Zitat antworten Zitat
Harry60

Registriert seit: 24. Jan 2006
Ort: Berlin
3 Beiträge
 
#6

Re: Firebird-Connectstring

  Alt 26. Jan 2006, 09:15
Hallo zusammen,

ist ja schön, daß meine Frage so eine Diskussion ausgelöst hat. Leider lösen die Antworten nicht mein Problem.

Ein paar Bemerkungen:

1. Welchen Sinn macht das Anlegen einer Datenbank durch den Client?

Ganz einfach, weil es Anwender gibt die keinen Administrator haben. Vor allem betriebswirtschaftliche Anwendungen bieten dem User die Möglichkeit mit mehreren Mandanten (je Mandant eine DB) zu arbeiten. Ein typisches Beispiel ist eine Finanzbuchhaltung. Der Anwender muss also ohne fremde Hilfe (Admin) einen Mandanten (Datenbank) anlegen können. Viele professionelle Applikatiponen bieten diese Funktion. Also, er wählt ein Verzeichnis aus und die DB wird dort erzeugt.

2. Einen Zugriff auf eine IB/FB-DB über ein gemapptes/freigegebenes Laufwerk halte ich für sehr bedenklich.

Ich bin bei diesem Thema ganz eurer Meinung. Ich habe grundsätzlich da auch so meine Bedenken. Aber das war nicht meine Frage.

Also noch einmal:

Gibt es eine Möglichkeit mit Delphi das Verzeichnis aus Sicht des Servers zu ermitteln. Ich möchte nicht wissen, ob das Sinn macht, sondern wie das geht.

Ich habe da so ein paar Beispiele über die Funktion "WNetEnumResource". Das funzt aber nicht so recht. Ich kann UNC-Pfad und Servernamen auslesen. Wie kann ich nun daraus das Verzeichnis aus Sicht des Servers ermitteln ?

MfG
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.380 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Firebird-Connectstring

  Alt 26. Jan 2006, 10:47
Hi,

Zitat von Harry60:
Ich bin bei diesem Thema ganz eurer Meinung. Ich habe grundsätzlich da auch so meine Bedenken. Aber das war nicht meine Frage.
Dann ist es ja gut! Aber vielleicht solltest Du dann deine Frage im Bereich Windows APi stellen, denn das hat mit Datenbanken im allgemeinen und mit Interbase/Firebird im speziellen gar nichts zu tun!

Lemmy
  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 05:24 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