2010-08-02 3 views
0

Voici un exemple de code qui a bien fonctionné sur une machine 32 bits (SQL Server 2005) et qui doit être mis à jour pour un serveur 64- peu ... Je sais que c'est un problème courant mais je n'ai pas réussi à trouver comment le réparer!Passer de 32 bits à 64 bits, comment faire fonctionner le serveur lié (sp_addlinkedserver)

DECLARE @sourceFile varchar(255), @testRows int 

    SELECT @sourceFile = @xmlInfo.value('(/SelectFile/DataSource)[1]', 'VARCHAR(100)') 
    EXEC sp_addlinkedserver 'SomeData', 'Excel', 'Microsoft.Jet.OLEDB.4.0', @sourceFile, '', 'Excel 8.0', '' 

    IF @xmlInfo.exist('/SelectFile/DataSource') = 1 
    BEGIN 
    EXEC(' INSERT INTO TableTest 
     SELECT col1_Id, col2, Replace(col3, '' '', '''') 
     FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'', 
      ''Excel 8.0;HDR=Yes;Database='[email protected]+''', [Sheet1$])') 
    SELECT @testRows = @@ROWCOUNT, @totalRows = @totalRows + @@ROWCOUNT 
    END 

Une autre chose que je essayer est de créer un fichier .fmt à partir d'une table, en utilisant l'utilitaire bcp, donc je peux définir le format du fichier en cours de lecture.

Toute aide serait grandement appréciée!

+0

duplication possible de [Passer de la machine 32 bits à la machine 64 bits, comment faire fonctionner le serveur lié] (http://stackoverflow.com/ questions/3389510/move-from-32-bit-to-64-bit-machine-comment-make-linked-server-work) –

+0

Bonjour, Oui, il s'agit d'un doublon, je ne savais pas comment supprimer le précédent! Je veux savoir s'il existe un moyen d'exécuter la procédure système sp_addlinkedserver dans une machine 64 bits, en passant les paramètres mentionnés ci-dessus. J'essaie d'obtenir des données Excel (sourceFile) et de placer les résultats dans une table, dites 'TableTest' Je suis assez nouveau à ce sujet, donc probablement mes questions sont vagues, espérons que ce commentaire le rend un peu plus clair. Merci pour toute aide! – Amy

Répondre

0

Je pense qu'il n'y a toujours qu'un pilote 32 bits pour Excel. Donc, je ne sais pas si vous serez en mesure d'utiliser un serveur lié en utilisant ce pilote. La meilleure solution serait d'importer les données en utilisant l'assistant Importer des données et de sauvegarder le paquet (une des dernières étapes de l'assistant). Vous pouvez ensuite réexécuter le paquet pour actualiser les données. Les outils client sont tous en 32 bits donc il n'y a pas de problèmes en utilisant le pilote 32 bits là

Questions connexes