IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

mapping fichier XML et bdd oracle


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut mapping fichier XML et bdd oracle
    Bjr ,

    Je voudrai avoir des détails sur comment intégrer des données XML dans un bdd oracle c#.
    merci par avance.

    cdlt.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    tu pourrais etre plus clair sur tes besoins là car deja j'ai peu de comprendre looool

    XML c'est pas SQL... donc quel est le but ?
    - insérer et stocker, dans une base Oracle, des données XML genre un noeud..., un graphe complet servant à ton programme?
    - programmer Oracle avec XML ?

    Ensuite c pas la BD Oracle qui est C#, mais l'applicatif que tu développe et qui utilise la BD Oracle qui est développé en C#... c'est pas pareil... faut rester clair.
    Quoi qu'il en soit il est impossible de répondre à ta question sans plus de précision...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    Ce que je voudrai c'est insérer et stocker les données d'un document XML (noued, graphe complet, bref un fichier xml vraiment complet ) dans une bdd Oracle en utilisant un code c#.
    j'espère que c'est plus clair là

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    oui c'est plus clair...

    deux voies s'ouvrent alors... soit tu es un gros barbare, et tu sauvegarde le xml dans une chaine puis stocke directement la chaine dans la BD,

    ou tu aime la finesse, et tu "serialise" chaque noeud de ton graphe XML et tu les stocke dans la BD directement dans leur format serialisé, reste à déterminer quel type de serialisation est plus interessant... binaire, ou XML

    quoi qu'il en soit, le principe n'est pas compliké

    une fois que tu as déterminé koi faire et comment faire, si tu as plusieurs lignes (enregistremnt car tu à serialisé les noeuds)

    tu stocke ca dans une représentation de ta table physique en mémoire grace aux objets ADO => DataTable

    donc tu prend un datatable, tu détermine les différentes colonnes en travaillant avec la propriété Columns de ton datatable, et une fois le schéma défini.

    tu créer chaque ligne grace à l'objet datatable qui permet de créer une ligne préparamètré avec le format de table.
    et dans chaque ligne tu affecte les valeurs de colonnes si yen a plusieurs

    ensuite tu créer un
    OracleAdapter adapter;

    auquel tu fourni une commande OracleCommand dans la propriété InsertCommand de l'adapter.
    cette commande contient une instruction genre

    insert into tabletrucmuche values (#p1, #p2, #p3)
    si 3 paramètres par exemple

    ensuite tu mappe les paramètres sur les colonne de la table

    et une fois tout ce basard configuré...

    adapter.update(datatable);
    il s'agit bien d'un update et pas d'un fill !!!

    ca c'est le cas ou ta N lignes genre ton xml etait gigantesque avec plus de 1000 noeuds, faire les milles insertions n'est pas interessant et plus lent que d'utiliser cette méthode qui va créé un lot SQL et l'exécuter, car si tu le fait manuellement en faisant :

    OracleCommand cmd = new OracleCommand("INSERT INTO ('truc....', 'bidule...')", connection);
    cmd.ExecuteNonQuery();

    c'est plus long !!! car il faudra le répeter pour chaque ligne en changeant la requete à chaque fois.
    chaque exécution se fait hors lot SQL, sans préparation de l'instruction, d'ailleurs préparer l'instruction n'aurait aucun sens dans la mesure ou elle va changer pour chaque ligne...

Discussions similaires

  1. [Forms] mapping fichier XML et bdd oracle
    Par moneyinthebank dans le forum Forms
    Réponses: 0
    Dernier message: 08/08/2007, 17h12
  2. [JXyDiff | XMLUnit] Comparaison de fichiers XML en BdD
    Par ghohm dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 02/07/2007, 13h42
  3. [BdD] Gros fichier XML (500mo) => BDD : Quelle technique ?
    Par Masterlud dans le forum XQUERY/SGBD
    Réponses: 10
    Dernier message: 02/05/2007, 13h31
  4. [XSLT] afficher fichier xml venant d'oracle
    Par emperreur dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 05/03/2007, 09h41
  5. transoformation de fichier xml en bdd
    Par atb dans le forum Bases de données
    Réponses: 2
    Dernier message: 05/05/2005, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo