Benutzer mit den meisten Antworten
Anmeldung an Verbindungsserver zu Textdatei schlägt fehl

Frage
-
Hallo Forum,
ich verwende SQL-Server 2008 R2 und möchte einen Verbindungsserver zu einer Textdatei aufbauen. Nehme folgendes Statement:
EXEC sp_addlinkedserver txtsrv, N'Jet 4.0',
N'Microsoft.Jet.OLEDB.4.0',
N'd:\Shop',
NULL,
N'Text';
GOWird ohne Fehler ausgeführt!
Dann erstelle ich ein Login mit:
EXEC sp_addlinkedsrvlogin 'txtsrv', 'true'
GOWird auch ohne Fehler ausgeführt.
Wenn ich den Server über das Management Studio teste gibt es die Fehlermeldung:
TITEL: Microsoft SQL Server Management Studio
------------------------------Fehler bei der Testverbindung mit dem Verbindungsserver.
------------------------------
ZUSÄTZLICHE INFORMATIONEN:Ausnahme beim Ausführen einer Transact-SQL-Anweisung oder eines Transact-SQL-Batches. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Das Datenquellenobjekt des OLE DB-Anbieters 'Microsoft.Jet.OLEDB.4.0' für den Verbindungsserver 'txtsrv' kann nicht initialisiert werden.
Der OLE DB-Anbieter 'Microsoft.Jet.OLEDB.4.0' für den Verbindungsserver 'txtsrv' hat die Meldung 'Unbekannter Fehler' zurückgeben. (Microsoft SQL Server, Fehler: 7303)Hilfe erhalten Sie durch Klicken auf: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1600&EvtSrc=MSSQLServer&EvtID=7303&LinkId=20476
------------------------------
SCHALTFLÄCHEN:OK
------------------------------Wer kann mir helfen?
Danke
BigMS
Antworten
-
Hallo,
habe jetzt das Problem gefunden! Da ich den SQL-Server 2012 benutze muss ich folgendes Skript angeben:
--Create a linked server. EXEC sp_addlinkedserver txtsrv, N'Jet 12.0', N'Microsoft.ACE.OLEDB.12.0', N'c:\data\distqry', NULL, N'Text'; GO --Set up login mappings. EXEC sp_addlinkedsrvlogin txtsrv, FALSE; GO --List the tables in the linked server. EXEC sp_tables_ex txtsrv; GO
Jetzt funktioniert es!Viele Grüss, BigMS
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 1. August 2012 11:13
Alle Antworten
-
Hallo,
schau Dir mal den Thread an: SQL Server 2008 und LINKED SEVER
Für sp_addlinkedsrvlogin kommt i. a. als RmtUser Admin zum Einsatz,
da die Jet mit den SQL Server bzw. Windows Konten nichts anfangen kann,
sondern die Einträge der Jet-Systemdatenbank gelten.
Siehe dazu Beispiel E bei sp_addlinkedserverGruß Elmar
-
BigMS
hast Du ueberprueft, dass der SQL Server Service Account Zugriff auf das Verzeichnis und die Text Datei hat und dass die Datei zum Zeitpunkt der Query auch wirklich existiert oder durch eine andere Applikation gesperrt ist ?
und ist "d:\shop" der vollstaendige Pfad zur Datei - wie sieht es mit der Extension aus etc.?
Please use Mark as Answer if my post solved your problem and use Vote As Helpful if a post was useful.
-
-
Hallo,
auf das Verzeichnis muss das Dienstkonto des SQL Servers Zugriff haben,
der Zugriff auf das Verzeichnis muss allgemein (z. B. Authentifzierte Benutzer) freigeben werden.
siehe PRB: Error 7399 When You Run a Linked Server Query That Uses the OLE DB Provider for Microsoft JetUnd als Dienstkonto verwendet man besser ein eigenes (Domänen)-Konto
und nicht den lokalen Administrator.Den Test solltest Du auch ohne Rechner-Neustart ausführen können,
ein Dienstneustart wäre nur erforderlich, wenn Du die Environment-Variablen verändert hast -
Rechteänderungen am Dateisystem greifen unmittelbar.Gruß Elmar
-
Hallo Elmar,
danke schon mal für Deine Hilfe!
Ich habe jetzt, wie im Link beschrieben, die Umgebungsvariablen auf C:\Temp umgesetzt und alle Rechte auf den Domänen-Benutzer, der sich am SQLServer anmeldet, vergeben. Dann habe ich mich neu angemeldet.
Bekomme jetzt beim Testen des Verbindungsservers schon mal eine andere Fehlermeldung:
Meldung 7302, Ebene 16, Status 1, Prozedur sp_tables_ex, Zeile 41
Eine Instanz des OLE DB-Anbieters 'Microsoft.Jet.OLEDB.4.0' für den Verbindungsserver 'txtsrv' kann nicht erstellt werden.
Ich habe die Syntax zur Erstellung des Verbindungsservers von der Microsoft-Seite kopiert. Interessant ist, dass unter den Eingenschaften des erstellten Verbindungsservers der Anbieter "Microsoft OLE DB Provider for SQL Server" steht, obwohl ich doch "Microsoft.Jet.OLEDB.4.0" angebeben habe.
-
Hallo,
habe jetzt das Problem gefunden! Da ich den SQL-Server 2012 benutze muss ich folgendes Skript angeben:
--Create a linked server. EXEC sp_addlinkedserver txtsrv, N'Jet 12.0', N'Microsoft.ACE.OLEDB.12.0', N'c:\data\distqry', NULL, N'Text'; GO --Set up login mappings. EXEC sp_addlinkedsrvlogin txtsrv, FALSE; GO --List the tables in the linked server. EXEC sp_tables_ex txtsrv; GO
Jetzt funktioniert es!Viele Grüss, BigMS
- Als Antwort markiert Robert BreitenhoferModerator Mittwoch, 1. August 2012 11:13