Comme le titre l'indique, j'essaye d'importer un file FoxPro dbf dans le server sql en utilisant openrowset. Au début, j'ai essayé d'exporter le file DBF dans un file xls et de l'importer en utilisant l'assistant Import / Export. Cela fonctionne plutôt bien normalement, mais il y a un champ qui contient parfois une très longue string, et cette string est tronquée à 4096 caractères lors de l'export de la dbf vers xls.
J'ai trouvé un vieux post avec des instructions sur la façon de le faire en utilisant openrowset.
Quand j'essaie la première réponse:
select * from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver; SourceDB=\\path\; SourceType=DBF', 'select * from TABLE.DBF')
J'ai l'erreur:
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified". Msg 7303, Level 16, State 1, Line 1 Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".
Quand j'essaie la deuxième réponse:
select * from openrowset('VFPOLEDB', '\\Path\';'';'', 'select * from TABLE.DBF')
J'ai l'erreur:
Msg 7403, Level 16, State 1, Line 1 The OLE DB provider "VFPOLEDB" has not been registered.
J'ai essayé d'save les files OLE * .dll manuellement avec regsvr32, mais seulement certains d'entre eux ont fonctionné. Sur ole32, oleacc, oleaut32 et oleprn j'ai eu un message de succès. Sur oleacchooks, oleaccrc, oledlg, et oleres j'ai eu cette erreur:
The module "oleacchooks" was loaded but the entry-point DllRegisterServer was not found. Make sure that "oleacchooks" is a valid DLL or OCX file and then try again
Après quelques searchs j'ai essayé d'installer le componet, mais quand j'ai essayé d'installer le file msi pour FoxPro ( trouvé ici ), j'ai eu cette erreur:
An error occurred while processing the last operation. Error code 80110408 - Error occurred reading the application file The event log may contain additional troubleshooting information.
Donc, je suis officiellement perdu ici. Est-ce que quelqu'un a des suggestions sur comment faire fonctionner openrowset, ou une autre façon d'importer le file dbf?
Pat, vous pouvez utiliser DBF Commander Pro pour cette tâche.
Téléchargez-le , installez-le, puis click Fichier -> Exporter vers un SGBD. Dans la window apparaît click le button Construire afin de build la string de connection: select MS OLEDB Provider pour SQL Server, puis choisissez votre server dans la list, fournir le login et le mot de passe, select une database, click OK:
Dans la window Exporter vers un SGBD, select la table de destination dans laquelle vous souhaitez importer le file DBF source, puis click Exporter.
Plus d'informations sur l'import et l'export DBF à une database, vous pouvez find ici .
PS L'application a un essai gratuit entièrement fonctionnel période de 20 jours.
Essayez d'utiliser VFPOLEDB.1 en tant que fournisseur. Vous pouvez rencontrer des problèmes de version de pilote.