AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken USER DIR bei ADO ConnectionString angeben?
Thema durchsuchen
Ansicht
Themen-Optionen

USER DIR bei ADO ConnectionString angeben?

Ein Thema von Hallo_Thomas · begonnen am 14. Jul 2010 · letzter Beitrag vom 21. Jul 2010
Antwort Antwort
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

USER DIR bei ADO ConnectionString angeben?

  Alt 14. Jul 2010, 18:30
Datenbank: Access • Version: 2003 • Zugriff über: Ado
Hallo, ich möchte mich auf einem Serveranmelden in einem bestimmten Verzeichnis. Wenn ich beim User den Verzeichnispfad kommt die
Fehlermeldung:
"Kein zulässiger Kontoname oder kein zulässiges Kennwort"

wenn ich das User-Verzeichniss weglasse kommt die Fehlermeldung:
"Die Informationsdatei für die Arbeitsgruppe fehlt oder ist exklusiv von einem anderen Benutzer geöffnet"

Bin ratlos? Was kann ich machen?

Code:
ConnectionString:=
'Provider=Microsoft.ACE.OLEDB.12.0;Password=dasPW;Persist Security Info=True;User ID=[User Dir]derUser;Initial Catalog=derDBName';
Delphi-Quellcode:
  Form1.ADOConnection1.ConnectionString:=Form1.Edit1.Text;
  ADOConnection1.Open;
  ADOTable1.Open;
  ADOTable1.Append;
  ADOTable1['Muster']:='5';
  ADOTable1.Post;
  ADOTable1.Close;;
  ADOConnection1.Close;
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: USER DIR bei ADO ConnectionString angeben?

  Alt 15. Jul 2010, 01:52
"Die Informationsdatei für die Arbeitsgruppe" ist das sog. Workgroup File in dem
Benutzer, Benutzergruppen, Passwörter und Rechte für die Tabellen und Views gespeichert sind.
Die Dateiendung ist .MDW
Um auf das workgroup file zu verweisen muss der Connectionstring so erweitert werden:
Code:
Jet OLEDB:System database=X:\pfad\xxx.mdw
Das gilt aber nur für Access 2000 bis 2007 und dessen Jet-Engine (mdb-Dateien).

Du verwendest aber den neueren OLE DB-Provider von dot NET.
Es gibt einen Trick, wie du den ConnectionString selbst herausfinden kannst.
Auf dem Desktop eine neue Txt-Datei erzeugen und die Endung auf .UDL ändern.
Dann doppelklicken - es öffnet sich ein Dialog, in dem du alle Verbindungsparamter eintragen kannst.
Wichtig: zuerst auf Seite Provider den passenden Eintrag wählen.
Ausserdem lässt kann man testen, ob die Verbindung erfolgreich ist.
Nach dem Speichern die Datei mit einem Unicode-fähigen Editor (z.B. Notepad) öffnen und schon sieht man den ConnectionString.
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#3

AW: USER DIR bei ADO ConnectionString angeben?

  Alt 15. Jul 2010, 13:39
Ok Danke, irgendwie habe ich hier ein Verständnsproblem. Ich erstelle die mdw, kann auch über diese zugreifen, sobald aber das Server-Verzeichnis(Der Datenbank) nur noch mit PW und User(andere Bezeichnung bzw ich habe sogar den gelichen User benannt) zu öffnen ist, crasht es. Ich habe die mdw ja frei zugäglich in einem öffentlichen Ordner, aber die Datenbank soll es nicht sein.
Wie Teile ich dem Server den User und das PW für das Verzeichnis der Datenbank mit?

Gruss Thomas

Fehlermeldung nun:
Fehler beim Testen der Verbindung durch einen Fehler beim Initialisieren des Providers. Das Microsoft Office Access-Datenbankmodul kann die Datei [Pfad Access Datenbank] nicht öffnen und nicht in die Datei schreiben. Sie ist bereits von einem anderen Benutzer exklusiv geöffnet, oder Sie benötigen eine Berechtigung, um die Daten anzeigen und schreiben zu können.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: USER DIR bei ADO ConnectionString angeben?

  Alt 21. Jul 2010, 00:44
Datenbanken lassen sich in zwei Gruppen einteilen:
  • Desktop Datenbanken: nur für einen User und Prozess
  • richtige DBMS: Multiuser und Multiprozessfähig
MS Access ist eine Desktop-Datenbank.
Man kann nur mit einem Prozess venünftig damit arbeiten.
Die Datenbankdatei *.mdw muss auf der lokalen Platte liegen;
andernfalls kommt es zu einer starken Verschlechterung der Performance.
Nur bei Gigabit Ethernet bleibt die Leistung so einigermasen gleich wie auf der lokalen Platte.
Wenn zwei oder mehr Prozesse auf die gleiche MDB-Datei zugreifen, kommt es
zu Problemen, da sich die Prozesse gegenseitig nicht kennen.

Fazit:
für Multiuserzugriffe brauchst du eine andere Datenbank.
Wenn du auf den MS SQL Server 2005 oder 2008 Express Edition gehst,
dann muss in deiner Anwendung wahrscheinlich kaum etwas geändert werden
(ausser dem Connection String).
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: USER DIR bei ADO ConnectionString angeben?

  Alt 21. Jul 2010, 07:36
Wenn du auf den MS SQL Server 2005 oder 2008 Express Edition gehst,
dann muss in deiner Anwendung wahrscheinlich kaum etwas geändert werden
(ausser dem Connection String).
Kommt darauf an wie intensiv mit "komplexen" SQL-Statements gearbeitet wird. Hier ist Access teilweise meilenweit von jedlicher Kompatiblität mit anderen DB entfernt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 02:00 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