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

 Delphi Discussion :

Erreur d'excution sur intranet


Sujet :

Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Points : 132
    Points
    132
    Par défaut Erreur d'excution sur intranet
    bonjour

    j'ai une erreur sur le code ci-dessous lorsque j'utilise des liens intranet à la variable server1

    erreur :exception class EinoutErrorwhith message'I/O error 32' process stoped.

    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
    procedure tform1.appel ( dEncours, dFin : TDatetime;server1:string);
    var
      Info   : TSearchRec; i:Integer;F:textfile; S: TStringList;  k,l:string;
     begin
     while dEncours < dFin do
      begin
       If FindFirst(server1+ FormatDateTime('MDD',dEncours),faAnyFile,Info)=0 Then
    
       Begin
          Repeat
          If Not((Info.Attr And faDirectory)=0)
           Then ListBox2.Items.Add(Info.FindData.cFileName)
          Else ListBox1.Items.Add(Info.FindData.cFileName);
          Until FindNext(Info)<>0;
        End;
       dEncours := dEncours + 1;
       FindClose(Info);
      end;
        application.ProcessMessages;
       for i:=0 to (listbox1.Items.Count-1) do
        begin
         listbox1.Items.Strings[i];
         assignfile(f,ExtractFilePath(Server1)+listbox1.Items.Strings[i]) ;
         Showmessage(ExtractFilePath(Server1)+listbox1.Items.Strings[i]);
         FileMode:=0;
         reset(f);
      S := TStringList.Create;
    repeat
       readln(f,l);
       s.Delimiter:='^';
       s.DelimitedText:=L;
       adoIVR1.Insert;
       K:=S[0] ;
       adoIVR1.FieldByName('JOURS').AsString:=K[4]+K[5]+K[3]+K[1]+K[2]+K[6]+K[7]+K[8];
       adoIVR1.FieldByName('HEURE').AsString:=s[1];
       adoIVR1.FieldByName('A').AsString:=s[2];
       adoIVR1.FieldByName('NOM_AP').AsString:=s[3];
       adoIVR1.FieldByName('CHA').AsString:=s[4];
       adoIVR1.FieldByName('SUBNO').AsString:=s[8];
       adoIVR1.FieldByName('JOURS1').AsString:=K[4]+K[5]+K[3]+K[1]+K[2]+K[6]+K[7]+K[8];
        adoIVR1.FieldByName('EXTERNE').AsString:=S[20];
       adoIVR1.FieldByName('EXTERNE1').AsString:=S[21];
        adoIVR1.FieldByName('Transfer_Ns').AsString:=S[35];
       adoIVR1.Post;
     until eof(F)  ;
          CloseFile(F);
     S.Free;
     end ;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
     var
     Info   : TSearchRec; f:TextFile;
    
    begin
      ListBox1.Items.Clear;
      ListBox2.Items.Clear;
        if CheckBox1.Checked then
       Appel(DateTimePicker1.Date,DateTimePicker2.Date,'\\172.17.9.14\Logdata\f1);
    
    
       showmessage ('Fin d''Export');
     end;
    comment je peux corriger l'erreur ?

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 426
    Points : 24 790
    Points
    24 790
    Par défaut
    Ce code est confu et illisible !
    Tu pourrais séparer la création du Listing de la lecture\écriture DB
    Utilise un TFileStream en lecture seule !
    sinon modifie temporairement FileMode, normalement un ResetText est censé être en lecture seule !

    Ton fichier est-il garanti que tu ne tente pas de l'ouvrir pendant qu'il est en cours d'écriture par un autre programme ?

    il ne faut pas utiliser mais ...

    utilise try except pour faire les autres fichiers, tu relanceras le traitement pour les fichiers qui n'ont pu être traité !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    c'est quoi un "lien intranet" ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Membre habitué
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    c'est quoi un "lien intranet" ?

    je veux dire sous un réseau local \\IP_Adresse\Rep\

  5. #5
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut
    Citation Envoyé par ShaiLeTroll Voir le message
    Ton fichier est-il garanti que tu ne tente pas de l'ouvrir pendant qu'il est en cours d'écriture par un autre programme ?
    +1
    I/O Error 32, il me semble que c'est une violation de partage sur le fichier.

    C'est donc par là qu'il faut creuser.

    @+

  6. #6
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    @Salut,

    Il manquerai pas un '\' à ton chemin ? ou un de trop ?

    Car tu envoi cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Appel(DateTimePicker1.Date,DateTimePicker2.Date,'\\172.17.9.14\Logdata\f1);
    à server1

    donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If FindFirst(server1+ FormatDateTime('MDD',dEncours),faAnyFile,Info)=0 Then
    ce qui donnerait :
    \\172.17.9.14\Logdata\f1112011 (par exemple)


    Bye

  7. #7
    Membre habitué
    Homme Profil pro
    J'aime la programmation avec Delphi
    Inscrit en
    Avril 2011
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : J'aime la programmation avec Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 227
    Points : 132
    Points
    132
    Par défaut
    J’ai 8 serveurs apparemment il y a un serveur qui bloque l’extrait des données malgré que j’ai le privilège !! et le chemin est juste.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Erreur d'exécution sur certains filtres en mode runtime
    Par joeyr dans le forum Runtime
    Réponses: 2
    Dernier message: 25/05/2012, 12h14
  2. Erreur d'exécution sur requête
    Par cluster26 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 13/05/2011, 21h36
  3. erreur d'excution sur autre ordi
    Par miharbi dans le forum Débuter
    Réponses: 5
    Dernier message: 25/08/2009, 11h00
  4. Erreur d'exécution sur procédure stockée
    Par BMZied dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/06/2008, 09h39
  5. Réponses: 5
    Dernier message: 04/01/2008, 10h55

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