locked
INSERTION D'UN GRAND NOMBRE DE DONNEES RRS feed

  • Question

  •  

    Bonjour,

     

    J'ai un probleme au niveau de l'insertion de mes données sous SQL SERVER Express Edition.

    En effet, je developpe en ASP.NET (C#) et j'ai parse un document XML contenant certaines informations que je veux integrer à ma base de données.

     

    J'ai reussi à integrer une premiere partie à ma base de données où les informations n'eatient que des string 'de petits formats" (une dizaine de lettres voire une vingtaine).

     

    Le problème est qu'aprés, j'ai voulu integrer une autre partie de mon fichier XML dans ma base de données sachant que cette partie est de l'information en format texte et qu'il correspnd à une description (DONC une centaines de cararctères par information). Ces informations sont stockés dans une variable string que j'arrive à afficher (jusque là tout va bien !!!).

     

    Mais lorsque je veux integrer le tout dans ma base de données, cela ne le fait que pour une partie (les 35 premiers noeuds de mon fichier XML) sacahnt qu'il y a prés d'un milliers de noeuds dans mon fichier !!!!!

     

    Et l'erreur qu'il m'affiche est imcomprehensible pour moi (qui n'a pas l'habitude d'utiliser SQL SERVER Express Edition)) :

     

      

    Server Error in '/Savoirs' Application.


    Syntaxe incorrecte vers 'Safe'.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
    Exception Details: System.Data.SqlClient.SqlException: Syntaxe incorrecte vers 'Safe'.

    Source Error:

    Line 122:                        cn.Open();
    Line 123:                        SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
    Source File: c:\Inetpub\wwwroot\Savoirs\ParseXML.aspx    Line: 123
    Stack Trace:
    [SqlException (0x80131904): Syntaxe incorrecte vers 'Safe'.]
       System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +857370
       System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +734982
       System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
       System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1838
       System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +31
       System.Data.SqlClient.SqlDataReader.get_MetaData() +62
       System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +297
       System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +886
       System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +132
       System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
       System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +122
       System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) +62
       ASP.parsexml_aspx.page_load(Object sender, EventArgs E) in c:\Inetpub\wwwroot\Savoirs\ParseXML.aspx:123
       System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
       System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +34
       System.Web.UI.Control.OnLoad(EventArgs e) +99
       System.Web.UI.Control.LoadRecursive() +47
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1061

    Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42

     

    Voilà...

    J'ai pensé à un problème de taille memoire de ma table mais je ne sais pas comment la modifier ou un probleme au niveau de la pile vu que je lui envoie une succession de requêtes NON-STOP (et ça je ne sais pas gerer aussi !!!)

     

    Si quelqu'un a une idée là dessus ou a déjà un bout de réponse -> Merci de me la faire parvenir !!!!

    MERCI d'avance.

    mardi 22 juillet 2008 13:14

Réponses

  • Bonjour,

     

    Exception Details: System.Data.SqlClient.SqlException: Syntaxe incorrecte vers 'Safe'.

    Ce message n'a rien a voir avec la pile si ca peut te rassurer Wink

    Je suppose que tu as dans ton XML un text qui contient le mot "Safe" et que juste avant tu as un caractére spécial (saut de ligne, apostrophe, ...) non ?

    Pourrais-tu nous dire un peu la structure de la table et du XML ?

     

    Je pencherai pour 2 possibilités :

    - Si tu as des sauts de ligne dans ton XML, ca pourrais poser problème lors de l'insertion en base, un petit replace par \n pourrais peut-être suffir

    - Si tu généres du code SQL a la main (requête insert into) ca pourrais aussi venir de caractére style ' dans les chaines de description....

    Tu pourrais aussi nous fournir un peu plus de détail sur la facon dont tu fais l'insert (parse du fichier XML puis génération de code SQL pour les insert ; procédure stocké ; autre...)

     

    Cordialement,

         Stéphane

    mardi 5 août 2008 16:28
  •  DarkAngel_FR A écrit:

    Bonjour,

     

    Exception Details: System.Data.SqlClient.SqlException: Syntaxe incorrecte vers 'Safe'.

    Ce message n'a rien a voir avec la pile si ca peut te rassurer

    Je suppose que tu as dans ton XML un text qui contient le mot "Safe" et que juste avant tu as un caractére spécial (saut de ligne, apostrophe, ...) non ?

    Pourrais-tu nous dire un peu la structure de la table et du XML ?

     

    Effectivement, il y a une erreur syntaxique près du mot Safe (En anglais : Incorrect syntax near XXXX), c'est la première place ou je regarderais!

    vendredi 15 août 2008 15:00

Toutes les réponses

  • Bonjour,

     

    Exception Details: System.Data.SqlClient.SqlException: Syntaxe incorrecte vers 'Safe'.

    Ce message n'a rien a voir avec la pile si ca peut te rassurer Wink

    Je suppose que tu as dans ton XML un text qui contient le mot "Safe" et que juste avant tu as un caractére spécial (saut de ligne, apostrophe, ...) non ?

    Pourrais-tu nous dire un peu la structure de la table et du XML ?

     

    Je pencherai pour 2 possibilités :

    - Si tu as des sauts de ligne dans ton XML, ca pourrais poser problème lors de l'insertion en base, un petit replace par \n pourrais peut-être suffir

    - Si tu généres du code SQL a la main (requête insert into) ca pourrais aussi venir de caractére style ' dans les chaines de description....

    Tu pourrais aussi nous fournir un peu plus de détail sur la facon dont tu fais l'insert (parse du fichier XML puis génération de code SQL pour les insert ; procédure stocké ; autre...)

     

    Cordialement,

         Stéphane

    mardi 5 août 2008 16:28
  •  DarkAngel_FR A écrit:

    Bonjour,

     

    Exception Details: System.Data.SqlClient.SqlException: Syntaxe incorrecte vers 'Safe'.

    Ce message n'a rien a voir avec la pile si ca peut te rassurer

    Je suppose que tu as dans ton XML un text qui contient le mot "Safe" et que juste avant tu as un caractére spécial (saut de ligne, apostrophe, ...) non ?

    Pourrais-tu nous dire un peu la structure de la table et du XML ?

     

    Effectivement, il y a une erreur syntaxique près du mot Safe (En anglais : Incorrect syntax near XXXX), c'est la première place ou je regarderais!

    vendredi 15 août 2008 15:00