Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

OpenDataSource et extended properties=text

2 réponses
Avatar
Patrice Scribe
J'ai mis un fichier a.txt sur un disque. Ce fichier contient :
"a","b","c"
1,2,3

Si je fais :

exec master..xp_cmdshell 'dir c:\*.txt'
go
SELECT * fROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data
Source=c:\;Extended Properties=Text')...a

Je vois bien le fichier mais le SELECT me donne l'erreur :

Server: Msg 7314, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' does not contain table 'a'. The
table either does not exist or the current user does not have permissions on
that table.
OLE DB error trace [Non-interface error: OLE DB provider does not contain
the table: ProviderName='Microsoft.Jet.OLEDB.4.0', TableName='a'].


Comment résoudre ce problème ?

Merci d'avance.

--

2 réponses

Avatar
Laurent Moreau
Je n'ai pas le temps de tester pour te donner une vrai réponse, mais regarde
l'aide en ligne de la proc:
sp_addlinkedserver

Surtout le paragraphe H:
---------------------------------------
H. Utilisation du fournisseur Microsoft OLE DB pour Jet pour accéder à un
fichier texte
Cet exemple crée un serveur lié pour accéder directement aux fichiers texte,
sans lier les fichiers comme tables dans un fichier .mdb de Microsoft
Access. Le fournisseur est Microsoft.Jet.OLEDB.4.0 et la chaîne du
fournisseur est 'Text'.

La source de données est le nom du chemin d'accès complet au répertoire qui
contient les fichiers texte. Un fichier schema.ini, qui décrit la structure
des fichiers texte, doit se trouver dans le même répertoire que les fichiers
texte. Pour plus d'informations sur la création d'un fichier schema.ini,
reportez-vous à la documentation du moteur de base de données Jet.

--Create a linked server
EXEC sp_addlinkedserver txtsrv, 'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:datadistqry',
NULL,
'Text'
GO......
-------------------------------

Laurent.






"Patrice Scribe" wrote in message
news:
J'ai mis un fichier a.txt sur un disque. Ce fichier contient :
"a","b","c"
1,2,3

Si je fais :

exec master..xp_cmdshell 'dir c:*.txt'
go
SELECT * fROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data
Source=c:;Extended Properties=Text')...a

Je vois bien le fichier mais le SELECT me donne l'erreur :

Server: Msg 7314, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' does not contain table 'a'. The
table either does not exist or the current user does not have permissions


on
that table.
OLE DB error trace [Non-interface error: OLE DB provider does not contain
the table: ProviderName='Microsoft.Jet.OLEDB.4.0', TableName='a'].


Comment résoudre ce problème ?

Merci d'avance.

--




Avatar
Med Bouchenafa [MVP]
Il te manque le schéma de ta base.
Le driver texte voit un répertoire comme une base de données et les fichiers qu'il contient comme
des tables
Mais il faut lui indiquer dans un fichier dénommé "schema.ini" la structure des tables
Fait une recherche sur "schema.ini" sur le site de Microsoft pour avoir la structure de ce fichier

--
Salutations
Med Bouchenafa
TETRASET
75015 Paris

"Patrice Scribe" a écrit dans le message de news:

J'ai mis un fichier a.txt sur un disque. Ce fichier contient :
"a","b","c"
1,2,3

Si je fais :

exec master..xp_cmdshell 'dir c:*.txt'
go
SELECT * fROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data
Source=c:;Extended Properties=Text')...a

Je vois bien le fichier mais le SELECT me donne l'erreur :

Server: Msg 7314, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' does not contain table 'a'. The
table either does not exist or the current user does not have permissions on
that table.
OLE DB error trace [Non-interface error: OLE DB provider does not contain
the table: ProviderName='Microsoft.Jet.OLEDB.4.0', TableName='a'].


Comment résoudre ce problème ?

Merci d'avance.

--