Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

OPENROWSET e account di avvio di SQL Server

46 views
Skip to first unread message

AlessandroD

unread,
Mar 21, 2003, 2:37:55 AM3/21/03
to
Una select cosě:

SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft dBase Driver
(*.dbf)};DBQ=C:\TEMP','SELECT * FROM MIO.DBF')

Va a buon fine se SQL Server č avviato con l'account LocalSystem, mentre
restisuisce un errore se č avviato da un account di dominio che sulla
macchina con SQL Server, mi dicono, ha privilegi di amministratore.
L'errore č questo:

Server: messaggio 7399, livello 16, stato 1, riga 1
Il provider OLE DB 'MSDASQL' ha segnalato un errore.
[OLE/DB provider returned message: [Microsoft][Driver ODBC dBase] Errore di
rete o disco.]
[OLE/DB provider returned message: [Microsoft][Driver ODBC dBase]Errore
generale. Impossibile aprire la chiave 'Temporary (volatile) Jet DSN for
process 0x7d4 Thread 0x798 DBC 0x2986a62c Xbase' del Registro di sistema.]
[OLE/DB provider returned message: [Microsoft][Driver ODBC dBase]Errore
generale. Impossibile aprire la chiave 'Temporary (volatile) Jet DSN for
process 0x7d4 Thread 0x798 DBC 0x2986a62c Xbase' del Registro di sistema.]
Traccia di errore OLE DB [OLE/DB Provider 'MSDASQL'
IDBInitialize::Initialize returned 0x80004005: ].

Qualche suggerimento?
Ciao, Alessandro

Lorenzo Benaglia

unread,
Mar 21, 2003, 4:55:04 AM3/21/03
to
Ciao Alessandro,

AlessandroD wrote:
> Una select così:


>
> SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft dBase Driver
> (*.dbf)};DBQ=C:\TEMP','SELECT * FROM MIO.DBF')
>

> Va a buon fine se SQL Server è avviato con l'account LocalSystem,
> mentre restisuisce un errore se è avviato da un account di dominio


> che sulla macchina con SQL Server, mi dicono, ha privilegi di

> amministratore. L'errore è questo:
<SNIP>
>
> Qualche suggerimento?
>
Il servizio MSSQLServer sul mio PC utilizza un utente di dominio con diritti
di amministratore e la query


SELECT * FROM OPENROWSET('MSDASQL','Driver={Microsoft dBase Driver

(*.dbf)};DBQ=C:\','SELECT * FROM Products.DBF')
Restituisce correttamente le righe previste.

Quindi penso che il problema sia relativo all'account che ti hanno dato gli
amministratori di sistema.

Hai provato ad aggirare l'ostacolo creando un linked server?
Non ti assicuro che possa funzionare nel tuo caso, ma da me funziona
correttamente sia con Local System che con l'account di dominio.

Ti allego un piccolo esempio che crea il linked server DBFs.
Ho esportato la tabella Northwind.dbo.Products nel file C:\Products.dbf
utilizzando i DTS, poi ho eseguito il seguente script:

/* Creo il Linked Server DBFs */
EXEC sp_addlinkedserver
'DBFs',
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'C:\',
NULL,
'dBase IV'
GO

/* Aggiungo una login */
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'DBFs',
@useself = false,
@locallogin = NULL,
@rmtuser = NULL,
@rmtpassword = NULL
GO

/* Query */
SELECT * FROM DBFs...Products

/* Elimino il Linked Server */
EXEC sp_dropserver 'DBFs', 'droplogins'

Ciao!

--
Lorenzo Benaglia
Microsoft MVP - SQL Server

UGIdotNET - http://www.ugidotnet.org
UGISS - http://www.ugiss.org


0 new messages