2009-10-16 8 views
0

Je voudrais publier quelques données d'un serveur sql 2k aux bases de données msaccess. Je voudrais faire donner une table fournissant datatransformation informations, par exemple:Comment exporter des tables depuis le serveur sql vers un accès ms à la volée?

tablenameOnServer | pathToPub 
------------------------------------------------------ 
Clients    | D:\Data\Pub1\ClientData1.mdb 
Orders    | D:\OtherData\Pub\Sales.mdb 

Le fichier mdb donné doit être créé (ou un vide copié bien sûr) et la table doit être créée chaque fois que la le script s'exécute. Bien sûr, je n'ai pas besoin d'une solution complète, mais certains pointeurs comme où commencer sont les bienvenus. Je pensais que j'utiliser SSIS pour cela, mais je suis nouveau pour elle et je voudrais savoir où je commence à mieux afin d'éviter une trop grande perte de temps:

  • Dois-je utiliser SSIS avec BIDS (VS2008), puis-je lire des données dans un paquet et créer des tableaux à la volée? Est-ce que j'utilise C# et manipule et crée des paquets dans le code?
  • Ou qu'est-ce que je fais de mieux? Le SSIS est-il la solution évidente de toute façon?

Dans tous les cas: quelques conseils pour me commencer serait la bienvenue ...

MISE À JOUR: Cette question porte sur la publication de données, il peut être livré sur CD par exemple. Il ne s'agit pas de créer un lien vers un serveur SQL.

Répondre

0

La solution la plus simple consiste simplement à lier la table du serveur SQL dans l'accès. Ensuite, vous pouvez voir les données en temps réel.

+0

+1 pour les tables sql link. Ne créez pas une autre base de données si vous n'avez pas à le faire. – bastianneu

+0

Ils doivent être créés, basé sur le contenu d'une table, j'espérais que je l'ai déclaré clairement. – Peter

+0

@batianneu: Je dois évidemment, il est la publication – Peter

0

Vous pouvez créer une base de données Access pour ce faire assez facilement.

Voici un algorithme de base

  • Dans l'accès, créez une table liée pointant vers votre table.
  • créer une requête d'accès pour filtrer les données en fonction de vos critères appelés NewQuery
  • Utilisez VBA pour créer une nouvelle base de données NewDB
  • export votre NewQuery avec la structure et les colonnes du NewDB
+0

Cela semble un peu trop simpliste, car je n'ai qu'un seul tabel lié à mon info-table, et j'ai toujours besoin de lier par programme toutes les autres tables avec le 'tablenameOnServer', mais ça vaut le coup si rien d'autre ne se présente. Si tout se passe bien, je vous le fais savoir et accepte votre réponse. tx – Peter

+0

vous pouvez lier par programme les tables dans VBA –

0

Si vous voulez garder les paquets SSIS, je ferais un paquet SSIS de modèle et ensuite j'utiliserais les objets SSIS de C# pour créer les paquets. J'ai fait ceci pour commencer des paquets qui sont plus tard adaptés aux besoins du client. Sinon, si vous ne gardez pas les paquets après qu'ils soient générés et ne vont pas utiliser beaucoup de fonctionnalités SSIS (consignation, etc.), je considérerais faire tout ça depuis C# (ou autre langage), car SSIS n'est pas un excellent outil pour les gestionnaires de connexion (source ou destination) qui changent. A partir de C#, vous pouvez simplement lire le schéma, créer la table dans Access avec les types et les colonnes correspondants et la remplir.

Questions connexes