AGB  ·  Datenschutz  ·  Impressum  







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

Firebird-Connectionstring mit UNC Pfad

Ein Thema von Lemmy · begonnen am 15. Nov 2011 · letzter Beitrag vom 17. Nov 2011
Antwort Antwort
Seite 1 von 2  1 2      
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#1

Firebird-Connectionstring mit UNC Pfad

  Alt 15. Nov 2011, 15:11
Datenbank: Firebird • Version: 2.1 • Zugriff über: -
Hi,

folgende Situation:

FB Server auf einem Server, Zugriff über Clients. Jetzt muss ich in die Server-DB Daten importieren, die lokal in einer anderen Firebird DB vorliegen.

Meine Idee: Ich geb ein bel. Verzeichnis auf dem Server frei, gebe die Freigabe dem Client bekannt. Der kann dann da die Datenbank rein schieben und einen Connection-String zusammenstellen.

Leider klappt das nicht so wie ich es mir vorstelle:

Connectionstring: server:c:\programme\MeinProgramm\db\Daten.fdb
Freigabe: \\server\ImportDB

der Connectionstring server:\\Server\ImportDB\datenbank.fdb führt aber bei isql, FlameRobin usw. zu Fehlern:

unavailable Database

Der Zugriff vom Client auf die Freigabe funktioniert, der Zugriff vom Client auf die Datenbank funktioniert. Wenn ich anstelle des Freigabenamens den lokalen Serverpfad nehme, funktioniert auch der Zugriff auf die ImportDB (was ich aber vermeiden will).

Hat jemand eine IDee was ich machen könnte?

Grüße


//Nachtrag:
Eine option wäre sicherlich neben der Bekanntgabe der lokalen Pfadangabe des Servers, eine weitere die Installation des Embeddedserver auf den Clients

Geändert von Lemmy (15. Nov 2011 um 15:12 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
exilant

Registriert seit: 28. Jul 2006
134 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firebird-Connectionstring mit UNC Pfad

  Alt 15. Nov 2011, 16:00
Ich habe zwar nicht wirklich verstanden was du machen willst, aber eines ist klar: Der Pfad im Connectionstring muss immer aus Sicht der Firebird servers auf die Datenbank zeigen. Und Firebird unterstützt keine Datenbanken auf Freigaben. Daher kann es immer nur ein lokaler Pdfad sein (oder ein alias ->aliases.conf).
Anything, carried to the extreme, becomes insanity. (Exilant)
  Mit Zitat antworten Zitat
Benutzerbild von DelphiBandit
DelphiBandit

Registriert seit: 19. Feb 2007
Ort: In der Lüneburger Heide
165 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Firebird-Connectionstring mit UNC Pfad

  Alt 15. Nov 2011, 16:19
Wie exilant schon geschrieben hat - Zugriff auf eine DB, welche auf einer Netzwerkfreigabe liegt mit den Clients geht nicht.

Ad hoc würde mir einfallen, die DB auf der Client-Festplatte zu bauen und diese anschliessend als File-Kopie in die Freigabe zu kopieren. Und den Server das dann irgendwann verarbeiten lassen. Wenn's sauber laufen soll noch ne Steuerdatei parallel schreiben, solange die existiert eben nicht verarbeiten.

Oder eben die Connection tatsächlich vom Client auf den Firebird-Installation des Servers zugreifen lassen.
Carsten

Geändert von DelphiBandit (15. Nov 2011 um 16:22 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Firebird-Connectionstring mit UNC Pfad

  Alt 15. Nov 2011, 16:43
Man könnte auch versuchen einen Alias anzulegen, über den der Client sich dann verbindet. So sieht der Server den eigentlichen Pfad aus serversicht nicht.
Markus Kinzler
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Firebird-Connectionstring mit UNC Pfad

  Alt 15. Nov 2011, 18:11
Hi,

ok, dann versuche ich das mal über einen Alias.

Und im Grunde liegt die DB aus sicht des Servers schon lokal - ich gebe aber halt einen UNC-Pfad an, der auf eine lokale Freigabe zeigt.

und lokal auf dem CLient zusammenbauen/zugreifen geht halt auch nur, wenn ich lokal den embedded zur Verfügung habe, d.h. anstelle der CLient.dll den embedded mit ausliefere. Dann müsste ich das Pfad-Gewürge nicht machen. Wäre mir lieber, bekomme ich aber erst dann durch, wenn definitiv nix anderes geht...

Grüße
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#6

AW: Firebird-Connectionstring mit UNC Pfad

  Alt 15. Nov 2011, 23:38
Weg mit Freigaben auf Verzeichnissen in denen sich Datenbankdateien befinden. Wenn jemand lustig ist, macht er/sie sich eine Kopie der Datenbankdatei bei aktiven Verbindungen mit einem möglichen Ergebnis, dass die Kopie und/oder das Original beschädigt wird.

Am besten ist, der Client verbindet sich, wie bereits erwähnt, über einen Alias. Da kannst dann die Steuerung, welche DB gerade über einen Alias zugänglich ist, zentral über die aliases.conf am Server vornehmen.

lg,
Thomas
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Firebird-Connectionstring mit UNC Pfad

  Alt 16. Nov 2011, 00:50
Hallo,

vielleicht noch zur Ergänzung:

Der Client muss Daten die in einer FirebirdDB sind und auf dem Client-Rechner liegt in die Server-DB einspielen (wenn man so will, Daten von externen, mobilen Mitarbeitern). Da auf dem Client weder Embedded noch ein Server installiert ist, muss diese DB irgend wie in den Bereich des FB-Servers kommen.

@THomas: Bitte nicht falsch verstehen.... Ich stimme dir völlig zu! Ich kann und möchte hier nicht so viel schreiben - ich hoffe du kannst es akzeptieren wenn ich hier einfach schreibe, dass ich manche Dinge (auch wenn ich sie gerne ändern würde) nicht ändern kann - falls Du das nicht verstehst, bin ich gerne bereit dir die Details per PN mitzuteilen.

Meine Idee geht in Richtung embedded auf den Clients zu installieren - hat aber den Nachteil, dass bei manchen Kunden nachjustiert werden muss, da diese einen Client zum Server gemacht haben (also da drauf auch regulär arbeiten) und hier nicht per Server-Connectionstring verbunden wird (habe ich zumindest so mal gesehen) was bei einem installierten embedded FB dann eben nicht mehr geht, weil der dann die DB komplett sperrt (FB 2.1).

Eine weitere Idee war aber halt auch, ein alternatives Verzeichnis auf dem Server (eben nicht das DB Verzeichnis sondern ein leeres) frei zu geben, in das der Client dann die DB kopieren kann und um der Einfachheit halber dann eben auch per UNC-Freigabe den Connectionstring zusammen baut. Meine Ursprüngliche Idee war, hier dem Client den Connectionstring für dieses Verzeichnis per Ini-Datei bekannt zu geben, dann wäre alles kein Problem - wurde aber bisher auch abgelehnt, da hier massive Eingriffe in die Sourcen befürchtet werden (wobei der Großteil oder fast alles eh meine Bereiche tangieren würden).

Allerings habe ich inzwischen über den Alias nachgedacht - funktioniert in meinem Anwendungsfall auch nicht, da ggf. auch mal 2 unterschiedliche Clients zur selben Zeit importieren müssen - dann geht das komplett in die Hose.... Außer ich mach für jeden Client einen extra Alias Eintrag.... ich glaube ich brauche dringend Argumente für den Embedded auf den Clients

Grüße
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#8

AW: Firebird-Connectionstring mit UNC Pfad

  Alt 16. Nov 2011, 08:10
Wie kann am Client mit einer Firebird-DB gearbeitet werden, wenn weder Embedded noch ein Server auf dem Client installiert ist?

Kommt auf die Komplexität deines Anwendungsfalls an mit zentraler Datenhaltung vs. Außendienstmitarbeitern, aber da kommt man schnell in ein bidirektionales Replikationsszenario rein.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Firebird-Connectionstring mit UNC Pfad

  Alt 16. Nov 2011, 09:06
Guten Morgen,

Wie kann am Client mit einer Firebird-DB gearbeitet werden, wenn weder Embedded noch ein Server auf dem Client installiert ist?
und genau hier kommt der UNC-Pfad in Spiel: Der Client kopiert die DB in dieses Verzeichnis, damit die DB lokal auf dem Server liegt - dann muss lediglich der ConnectionString zusammen gebaut werden - und der eben der einfachheit halber genau mit dem UNC-Pfad, denn der ist auf dem Server (obwohl die Datei ja lokal vorliegt) ja auch verfügbar....

Grüße
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#10

AW: Firebird-Connectionstring mit UNC Pfad

  Alt 16. Nov 2011, 09:21
Ich steh am Schlauch.

Der Client arbeitet mit einer eigenen Datenbank, die er nur nutzen kann, wenn er in der Firma ist, da lokal kein Embedded oder Server installiert ist. Um damit arbeiten zu können, muss die Datenbankdatei in eine Freigabe des Servers kopiert werden. Der am Server zur Verfügung stehende Firebird Server dient dann als Host für die Bearbeitung der Firebird-DB. Stimmt das?

D.h. der Außendienstmitarbeiter kann dann mit der DB überhaupt nichts anfangen, wenn er sich außerhalb der Firma befindet. Warum wird dann nicht einfach eine zentrale DB für alle Clients am Server verwendet? Sorry, aber vielleicht habe ich einfach auch etwas überlesen.
  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 03:25 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