Rechercher : dans
Par :

Xml sql bcp

Dernière réponse le 6 mai 2008 à 15:03:44 ranianwayra, le 23 avr 2008 à 16:58:00 
 Signaler ce message aux modérateurs

Bonjour,
j'essaye d'importer des donées stockées dans un fichier xml vers ma base de données sql server 2005, je connais la structure du fichier et ça correspond exactement à celle de ma bd, j'utilise vb.net
g trouvé des informations sur l'utilitaire bcp, mais je le comprends pas vraiment
puvez vous m'expliquer comment ça marche?
des bouts de code si c possible,
sinon y a pas d'autres méthodes
parce que là je bloques

merci de répondre

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « xml sql bcp » dans :
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
Gestion des paramètres SQL VoirSQL présente un certain nombre de paramètres au niveau d'Oracle qu'il est possible de visualiser à travers la commande : SHOW ALL Pour modifier la valeur d'un paramètre il suffit d'utiliser la commande : SET NOM_PARAM VALEUR
Sauvegarde automatique d'une BDD sous SQL EXPRESS 2005 VoirSi vous vous voulez automatiser une sauvegarde d'une base de données sous SQL server express, il existe une solution simple grâce à un fichier .bat. Créez un nouveau fichier texte. Ce fichier doit contenir les informations suivantes: SET...
Télécharger DriveImage XML VoirDriveImage XML est un programme permettant de faire des images du système (partitions et lecteurs logiques) à des fins de sauvegarde, à la manière de Norton Ghost. Ce programme permet : De créer des images des lecteurs logiques et des...
Introduction à XML VoirPrésentation de XML XML (entendez eXtensible Markup Language et traduisez Langage à balises étendu, ou Langage à balises extensible) est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises. Il s'agit effectivement...
SQL - Création de table VoirLe SQL, comportant un langage de définition de données (LDD), permet de créer des tables. Pour cela, il utilise le couple de mots clés CREATE TABLE. La création de tables Le création de tables se fait à l'aide du couple de mots-clés CREATE...
Mise en page de XML avec XSL VoirIntroduction à XSL XML est un langage de structuration des données, et non de représentation des données. Ainsi XSL (eXtensible StyleSheet Language) est un langage recommandé par le W3C pour effectuer la représentation des données de documents XML....

1

Charles, le 23 avr 2008 à 18:40:34

Salut,

Il y à un très bon article sur ce sujet, sur le XML avec sql server ici : http://rudi.developpez.com/sqlserver/tutoriel/xquery/

Sinon tu peu aussi regarder les tutoriels :
- SQL Server : http://sqlserver.developpez.com/cours/
- XML : http://xml.developpez.com/cours/
- VB.NET : http://dotnet.developpez.com/cours/?page=vbnet

Répondre à Charles

2

ranianwayra, le 25 avr 2008 à 17:57:33

Merci bcp Charles,
enfin g réussi à rédiger un bout de code pour résoudre le pb, le voila:



Imports System
Imports System.Data
Imports System.Data.SqlClient
Public Class Form2

Private Sub ImportData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ImportData.Click

'create a dataSet
Dim dataSetXml As DataSet
Dim dataTableXml As DataTable
Dim connString, sqlCmd, tableName As String
Dim i, x As Integer
Dim conn As SqlConnection
'Load the xml file into a dataSet
'DataSetXml.ReadXml(httpContext.Current.Server.MapPath(textB­oxXml.Text));
dataSetXml.ReadXml(textBoxXml.Text)
'Get the first table in the DataSet
dataTableXml = dataSetXml.Tables(0)
'verify the table contains data
If (dataTableXml.Rows.Count > 0) Then
'cerate an sql connection
connString = TextBoxSql.Text
conn.Open()
'create a temporary table in the dataBase
'use the xml file's name for the temporary table
tableName = TextBoxXml.Text.Substring(0, TextBoxXml.TextLength - 4)
'make the create table SQL command by iterating throught the xml file's coulumns
'This way the dataBase columns will have the same name as the xml file
sqlCmd = "create table #" + tableName + "("
For i = 0 To dataTableXml.Columns.Count
'this adds columns as string type with a length of 100
sqlCmd = sqlCmd + dataTableXml.Columns(i).ColumnName.ToString() + "char(100),"
Next
'remove the last ","
sqlCmd = sqlCmd.Substring(0, sqlCmd.Length - 1) + ")"
'create and exute the create table command
Dim command As SqlCommand(sqlCmd,conn)
Command(sqlCmd, conn).ExecuteNonQuery()
'iterate rows in the dataTable
For Each dr As DataRow In dataTableXml.Rows
'create the sql insert command for each row
sqlCmd = "insert into [" + tableName + "] ("
'iterate the dataTable columns
For i = 0 To dataTableXml.Columns.Count
'add the column name
sqlCmd = sqlCmd + dataTableXml.Columns(i).ColumnName.ToString() + ","
Next
'remove the last ","
sqlCmd = sqlCmd.Substring(0, sqlCmd.Length - 1) + ") values ("
'iterate the dataTable columns
For x = 0 To dataTableXml.Columns.Count
'add the column value for this row
sqlCmd = sqlCmd + "'" + dr(x).ToString().Replace("'", "''") + "'"
Next
sqlCmd = sqlCmd.Substring(0, sqlCmd.Length - 1) + ");"
'create and execute the insert command
Dim command As SqlCommand(sqlCmd,conn)
Command(sqlCmd, conn)
Next
End If
End Sub
End Class




l'affichage ne serait pas agréable, désolée, j'espère qu' un gentil modérateur le prendra en charge
Bref, il ya qd même des erreurs (2 principales qui consernent l'objet command)
si vous découvrez la solution merci de m'informer
le code a un autre incovénient c qu'il n'est pas modulaire, j'essayerai de le faire plus tard

je suis débutante en codage et j'apprécierai tout conseil de la part des menmbres

à bien tôt ;)

Répondre à ranianwayra

3

ranianwayra, le 26 avr 2008 à 10:11:12

Bonjour,

voila une rectification à faire dans le code:

il faut remplacer la ligne de commande : "Command(sqlCmd, conn) " qui figure deux foix dans le code par ces 3 lignes:

command.Connection = conn
command.CommandText = sqlCmd
command.ExecuteNonQuery()
ainsi il n'ya plus d'erreurs de syntaxe
maintenant il faut vérifier le travail
je dois d'abord m'en sortir avec la chaine de connection
je vous tiens au courant si ça marche
et j'attends vos commentaires et conseils

à+

Répondre à ranianwayra

4

 ranainwayra, le 6 mai 2008 à 15:03:44

Bonjour,
encore pas de commentaires! dommage
en fait g un autre problème dans ce code c en relation avec la structure du fichier xml que je dois importer dans ma base.
g besoin d'acéder aux neouds enfants aussi pour en extraire des données, saviez vous comment le faire
Merci de répondre

Répondre à ranainwayra