JScript/Boucle

Résolu
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 mars 2008 - 23 janv. 2007 à 12:13
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 - 23 janv. 2007 à 14:26
Voila je voudrai faire un insert dans une table a partir d'un fichier txt

le problème qu j'ai est dans la boucle qu j'utilise elle me renvoi le numéro mais pas la valeur de la donnés exemple 0,1,2,3,4,5,6
ci dessous la partie du code qui pose probléme  je vous de m'aider c'est urgent

var rs = new ActiveXObject("ADODB.Recordset"); 
while (!ts.AtEndOfStream) {
   strFil += ts.ReadLine() + NewLine;  //C'est pour lire  les lignes qui sont dans le fichier .txt
}  
  var ele  =strFil.split("
");  // C'est pour mettre les donnés du ficher .txt dans une variable et éliminer le signe <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

for ( var s  in ele) {  
      result=conn.Execute("INSERT INTO help VALUES ('"+ s+"')");
       Response.Write(s); //Ca me retourne 01234567 et non la valeur des donnés  est la le probléme
  }
  
  ts.Close();
conn.Close();
v = null;
conn = null;

7 réponses

cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
23 janv. 2007 à 13:00
Bonjour




si j'ai bien compris le prob, pourquoi ne pas faire :

var ele =new Array();
while(!ts.atEndOfStream)
    {
    ele.push(ts.readLine();
    }

puis ensuite, comme indiqué par Bul.

ou encore mieux :

while(!ts.atEndOfStream)
    {
    conn.Execute("INSERT INTO help VALUES ('"+ ts.readLine() +"')");   
    }

Cordialement
Roro webDev
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 janv. 2007 à 12:24
Bonjour,

for ( var s=0;s<ele.length;s++ )
{
    gérer ele[s]
}  

peut-être ?
mais ce serait bien d'avoir le contenu de strFil !

<hr />                                Cordialement             Bul         [mon Site]     [M'écrire]<hr />
0
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 mars 2008
23 janv. 2007 à 12:46
C'est un fichier .txt qui contient les lignes suivantes:
bonjour
bonsoir
merci
-------------
quand je lie ces donnés avec
while (!ts.AtEndOfStream) {
   strFil += ts.ReadLine() + NewLine; 
}  

il me renvoi
bonjour
bonsoir
merci
-------------mais quand je les insert on mettant ma requête dans la boucle il me les insert  sous le format ci-dessous<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

------------------------------------

bonjour

bonjour
bonsoir

bonjour
bonsoir
merci

----------------------------------------------
while (!ts.AtEndOfStream) {
   strFil += ts.ReadLine() + NewLine;  
  result=conn.Execute("INSERT INTO help VALUES ('"+ strFil +"')");
}
  
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 janv. 2007 à 13:02
Bonjour,
    ° c'est quoi NewLine ?
    ° on peut lire tout le fichier en une seule instruction ( ts.ReadAll(); )
    ° tu es sûr de la syntaxe du INSERT TO ? il ne faut pas des ' qui entourent
          les données par exemple ?



<hr />                    Cordialement            Bul         [mon Site]     [M'écrire]<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Dellys Messages postés 95 Date d'inscription mercredi 26 octobre 2005 Statut Membre Dernière intervention 24 mars 2008
23 janv. 2007 à 13:05
J'ai utilisé la deuxième solution et ça marche au Top
Merci infiniment et bonne journée
0
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
23 janv. 2007 à 14:13
Bonjour




NewLine, a priori, c'est un "retour chariot" (je ne connaissais pas !!). Pour la syntaxe du insert : les ' y sont ('faut de bonnnes loupes, je te l'accorde). 2 possibilités pour la syntaxe :

insert into table values ('blabla1', 'blabla2', )   

ou alors, pour etre plus précis :

insert into table (champs1, champs2, champs3) values (valeur1, valeur2, valeur3)

les côtes sont indispensables pour les champs texte, alpha, etc... Pas pour les valeurs numériques (encore que ça doit dépendre du SGBD)

Cordialement
Roro webDev
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
23 janv. 2007 à 14:26
Bonjour,
    bien joué Roro, je n'avais pas compris
       où il fallait en venir... ta 2ème solution éclaire la finalité.
<hr />                                Cordialement                Bul         [mon Site]     [M'écrire]<hr />
0
Rejoignez-nous