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 :

Erreur lors de la restauration d'un fichier doc


Sujet :

C#

  1. #1
    Membre habitué Avatar de isarian
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 268
    Points : 161
    Points
    161
    Par défaut Erreur lors de la restauration d'un fichier doc
    A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
    erreurSystem.Data.SqlClient.SqlException: String or binary data would be truncated.
    The 'RestaurerFichier' procedure attempted to return a status of NULL, which is not allowed. A status of 0 will be returned instead.
    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
    at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
    at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
    at EZOS.BACKUPRESTORE.DOTNET.Class1.restaurer(Int32 fId, Int32 numversion) in D:\Cédric\Projet\Projet 14 Avril 2008\Scruter\Class1.cs:line 379
    Voila la l'erreur que j'obtiens quand j'essaie de restorer un fichier Doc.

    Mon application utilise filesystemwatcher pour voir les changement sur un dossier, fichier et ses sous dossiers.

    Cela marche nikel pour fichier .txt mais le fichier doc pose probleme.

    Il faut savoir que le fichier doc quand on modifier ou utilise il fait des fichier caché ~quelquechose.doc, et wrl0001.tmp, je gere bien le fait qu'il sauve bien le bon fichier, et tout. Mon problème se situe lors de la restauration.

    Quand je clique sur restaurer le fichier doc je recois l'erreur (indiqué en Quote) mais voila je comprends l'erreur, normalement cela devrait marché comme un fichier txt non? ou du fait que le .doc utilise un autre codage faudra faire d'une autre manière?

  2. #2
    Membre habitué Avatar de isarian
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 268
    Points : 161
    Points
    161
    Par défaut
    j'ai oublié de mettre mon code de la procédure restaurer cela peut aider ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
      public void restaurer(int fId, int numversion) 
            {
                SqlConnection myConnection = new SqlConnection(connectionString);
                SqlCommand myCommand = myConnection.CreateCommand();
                myConnection.Open();
                try
                { 
                    string path;
     
                    myCommand.CommandText = "RestaurerFichier";
                    myCommand.CommandType = CommandType.StoredProcedure;
     
                    SqlParameter FichierId = new SqlParameter();
                    FichierId.ParameterName = "@FichierId";
                    FichierId.SqlDbType = SqlDbType.Int;
                    FichierId.Value = fId;
     
                    myCommand.Parameters.Add(FichierId);
     
                    SqlParameter FichierVersion = new SqlParameter();
                    FichierVersion.ParameterName = "@numversion";
                    FichierVersion.SqlDbType = SqlDbType.Int;
                    FichierVersion.Value = numversion;
     
                    myCommand.Parameters.Add(FichierVersion);
     
                    SqlParameter FichierData = new SqlParameter();
                    FichierData.ParameterName = "@FichierData";
                    FichierData.SqlDbType = SqlDbType.VarBinary;
                    FichierData.Size = 16000;
                    FichierData.Direction = ParameterDirection.Output;
                    myCommand.Parameters.Add(FichierData);
     
                    myCommand.ExecuteNonQuery();
                    SqlCommand sqlcom2 = myConnection.CreateCommand();
                    sqlcom2.CommandText = "SELECT FichierNom FROM Fichiers WHERE FichierId=" + fId;
                    SqlDataReader sqldata = sqlcom2.ExecuteReader();
                    while (sqldata.Read())
                    {
                        Restore chemin = new Restore();
                        path = (chemin.DirectoryToRestore+ sqldata.GetString(0));
                        SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                        saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
                        saveFileDialog1.FilterIndex = 2;
                        saveFileDialog1.FileName = sqldata.GetString(0);
                        saveFileDialog1.InitialDirectory = @"C:/";
                        if (File.Exists(path))
                        {
                            File.Delete(path);
     
                            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                            {
                                FileStream f = new FileStream((saveFileDialog1.FileName), FileMode.CreateNew);
                                byte[] data = (byte[])FichierData.Value;
                                StreamWriter wText = new StreamWriter(f);
                                f.Write(data, 0, data.Length);
                                f.Close();                         
                            } 
                        }
                        else
                        {
                            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                            {
                                FileStream f = new FileStream((saveFileDialog1.FileName), FileMode.CreateNew);
                                byte[] data = (byte[])FichierData.Value;
                                f.Write(data, 0, data.Length);
                                f.Close();
                            }
                        }                   
                    }              
                }

  3. #3
    Membre habitué Avatar de isarian
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 268
    Points : 161
    Points
    161
    Par défaut
    Personne n'aurait une petite idées pour voir ou et quel porblème se serait?

    Est ce que c'est l'insertion des données dans la table qui pourrait posé un problème ou alors lors de la restauration.

    Merci d'avance pour l'aide apporter

Discussions similaires

  1. Erreur lors de la lecture d'un fichier
    Par akremb22 dans le forum Delphi
    Réponses: 14
    Dernier message: 11/04/2007, 15h15
  2. erreur lors de la restauration d'une BD
    Par lalyly dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/11/2006, 09h04
  3. Réponses: 4
    Dernier message: 08/11/2006, 18h28
  4. Réponses: 3
    Dernier message: 29/10/2006, 23h35
  5. [VB.NET]Erreur lors de la Création d'un fichier XML
    Par ZbergK dans le forum Windows Forms
    Réponses: 3
    Dernier message: 10/10/2006, 14h01

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