Blog d'un développeur .NET
Article tagué SQL Server
Import d’un fichier csv dans une table SQL Server
18/10/09
Un petit pense-bête bien connu : comment importer le contenu d’un fichier *.csv dans une table SQL Server ?
INSERT [dbo].[Customer]
FROM 'D:\customers.csv'
WITH
(
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
GO
Bref… article écrit pour me permettre de retrouver facilement ce bout de code pour des usages futurs
Installation de TFS, suite et fin
1/06/09
Les péripéties de mon installation de Team Foundation Server 2008 continuent…
L’installation s’est bien déroulée, mais…. la procédure de création des bases de données pour le SQL Server & SQL Analysis a foiré : je n’avais pas de tables dans mon Analysis Server, ce qui entraîne donc de grosses erreurs pour obtenir la liste des tâches restantes. Voici donc comment j’ai résolu le problème :
- Recréer tout le cube de TFS (remplacer Domain\blablabla par les bons utilisateurs, et localhost par le nom de votre serveur) :
setupwarehouse -o -s Server -d TfsWarehouse -c Warehouseschema.xml -a Domain\TfsService -ra Domain\TfsReports -v -mturl http://Server:8080 -rebuild - Suivre les étapes Thomas Jaskula dispo ici
Et hop, plus d’erreur et cette fois-ci mon TFS fonctionne.
Installer VSTFS 2008 SP1 sur SQL Server SP1
1/06/09
Pour tout ce qui concerne la sauvegarde de données, je suis un grand un flemmard. Ajoutons à cela le fait que j’apprécie tout de même le fait de pouvoir faire du contrôle de version sur mes projets, et un minimum de gestion de projet….. cela donne une envie d’installer Visual Studio Team Foundation Server 2008.
Je récupére donc mon vieux pc portable (Pentium M 1,6Ghz ; 2Go de ram) et installe les pré-requis :
- Windows Server 2008 SP2
- IIS7 + options de compatibilités IIS6
Petite remarque au passage : FTP7 a été mis à jour en FTP7.5 et le module URL Rewrite est passé en version 1.1, plus d’infos sur http://www.iis.net - SQL Server 2008 SP1
On arrive au moment critique : l’installation de VSTS. Première farce, la version 2008 RTM n’est pas compatible SQL Serv 2008. Il est donc nécessaire de télécharger le SP1 de VSTS 2008 et de le fusionner à l’install de VSTS avec la procédure suivante fournie par MS:
- Téléchargez le SP1 sur le site Web Microsoft et enregistrez la mise à jour dans un dossier sur l’ordinateur local (nommé <sp1 dir>)
- À partir des fichiers d’origine du DVD de Team Foundation Server, copiez le dossier AT à un emplacement sur l’ordinateur local (je nommerai cet emplacement <local AT>).
- Ouvrez une fenêtre d’invite de commandes et tapez la commande suivante (<sp1 extract> est le dossier d’extraction du service pack) :
<sp1 dir>/TFS90SP1-KB949786-ENU /extract:<sp1 extract> - Créez le dossier <tfs merged> qui contiendra l’installation fusionnée, puis exécuter la commande suivante :
msiexec /a <local AT>vs_setup.msi /p <sp1 extract>TFS90sp1-KB949786.msp TARGETDIR=<tfs merged>
Petite note : <tfs merged> doit être un chemin absolu, les autres peuvent être des chemins relatifs.
Et donc là tout content, vous exécutez l’installation…… Et vous obtenez une magnifique erreur qui vous indique que votre instance d’SQL Server 2008 n’est pas compatible avec TFS. Youpi \o/
En fouillant un peu sur le web, j’ai réussi à trouver une solution :
- Dans le dossier <tfs merged>, ouvrez le fichier : Hcpackage.xml
- Cherchez :
<WQL namespace= »\.rootMicrosoftSqlServerComputerManagement10″ query= »SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName=’[%VSTF_SERVICENAME_MSSQL%]‘ AND PropertyName=’VERSION’ AND PropertyStrValue>=’10.00.1433′ AND PropertyStrValue LIKE ’10.00.%’ » action= »= » count= »0″ />Remplacez par :
<WQL namespace= »\.rootMicrosoftSqlServerComputerManagement10″ query= »SELECT * FROM sqlserviceadvancedproperty WHERE ServiceName=’[%VSTF_SERVICENAME_MSSQL%]‘ AND PropertyName=’VERSION’ AND PropertyStrValue>=’10.00.1433′ AND PropertyStrValue LIKE ’10.%’ » action= »= » count= »0″ /> - Cette entrée est présente deux fois dans le fichier, donc relancez la recherche afin de bien modifier les 2 occurences.
- Cherchez :
<MsiProductVersionCheck prodid= »[%SQLServer2008%] » action= »< » version= »10.1″ />
Remplacez par :
<MsiProductVersionCheck prodid= »[%SQLServer2008%] » action= »< » version= »10.2″ /> - Sauvegardez Hcpackage.xml
- Lancez le setup présent dans <tfs merged> et …….. oh miracle, tout s’installe
Voilà, il m’a donc fallu une bonne journée pour trouver cette solution.
Obtenir les coordonnées géographique d’une région
14/05/09
Pour les besoins d’un petit projet, il me faut les coordonnées géographique des régions administratives françaises. Le but final étant de créer des calques sur les maps Virtual Earth.
Dans un premier temps, j’ai cherché un webservice qui me fournirait ces données. Pas de chances, je n’en ai pas trouvé et me suis donc rabattu sur la solution suivante : une base données sous SQL Server 2008 contenant les calques de mes régions au format Geometry. Voici donc la méthode que j’ai utilisé.
Etape 1 : Récupérer les régions administratives sur GEO Data Portal
Rien de plus simple :
- aller sur le site : http://geodata.grid.unep.ch/
- dans le formulaire de recherche, taper le mot clé : administrative boundaries
- sélectionner les données : Administratives Boundaries – First Level (ESRI), puis cliquer sur Envoyer
- une map apparaît, choisir l’onglet download, puis le format ESRI ShapeFile et lancer le téléchargement (fichier zip)
Etape 2 : Ajouter nos données à SQL Server 2008
Là encore c’est easy :
- Télécharger les SQL Spatial Tools ici
- Décompresser le zip contenant notre fichier ESRI Shapefile
- Décompresser le zip des SQL Spatial Tools et exécuter le programme Shape2SQL.exe
- On rentre les données de connexion à notre BDD, puis on va chercher notre fichier .shp contenant nos shapes des régions
Important : ne pas oublier de cocher « Set SRID » avec la valeur 4326 - Les données sont importées dans notre SQL Server 2008
Tout ça, c’est bien mignon, mais je ne veux que les régions administratives françaises.
Etape 3 : Un peu de requêtage SQL
Pour supprimer toutes les régions, hors françaises, nous allons utiliser l’outils SqlSpatial fournit dans les SQL Spatial Tools. On lance le programme, on se connecte à notre base de données, et on vérifie que nos données soit bien présentes (nom de ma table : adminbound) :
FROM adminbound
Sur la map, on peut alors voir le découpage régional administratif de tous les pays. Maintenant nous n’allons conserver que la France. Pour cela, on va créer une vue qui contiendra les ID de toutes les régions non françaises) :
SELECT ID AS my_key
FROM adminbound
WHERE CNTRY_NAME <> 'France'
Puis supprimer toutes les occurences de la vue dans notre table adminbound :
WHERE EXISTS (SELECT *
FROM v1
WHERE adminbound.ID = v1.my_key)
On vérifie que nous n’avons plus que la France avec une requête classique :
Nos régions françaises apparaissent, on peut donc supprimer la vue :

Régions Françaises
Et voilà, il ne reste plus qu’à servir de cela pour le projet
Mise à jour du 20/09/2009 :
Il semblerait que le lien de téléchargement du fichier zip contenant les coordonnées spatiales des régions administratives (cf Etape 1) soit actuellement indisponible. En analysant un peu l’url, j’ai pu le récupérer. Merci Samuel pour cette remarque :)
Mise à jour du 20/10/2009 :
Le fichier est à nouveau disponible ici.