Parser les données séparées par une virgule

dr_jivago2 - 16 févr. 2013 à 12:27
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 31 mars 2013 à 20:14
Bonjour,
Novice dans l'ASP , je demande votre aide :
J'ai un formulaire avec une liste de données à choix multiple EXAM_ID , EXAM_PATIENT, EXAM_ANALYSE ( un patient peut avoir plusieurs analyses)
Quand j'envoie mon formulaire dans la BD access j'ai :
EXAM_ID=1 EXAM_PATIENT = machin , EXAM_ANALYSE= 2, 5, 7

je voudrais plutôt
EXAM_ID 1 EXAM_PATIENT machin EXAM_ANALYSE = 2
EXAM_ID 2 EXAM_PATIENT machin EXAM_ANALYSE = 5
EXAM_ID 3 EXAM_PATIENT machin EXAM_ANALYSE = 7

Merci de votre aide
Cordialement

3 réponses

cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
23 févr. 2013 à 20:30
Faut splitter la chaine et boucler en faisant à chaque fois un INSERT tout en faisant attention aux injections...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
Grand Merci ghuysmans99

mais as-tu une idée de comment faire ?

Cordialement
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
31 mars 2013 à 20:14
Function Pure(S)
'Double les guillemets simples pour empêcher les injections,
'à utiliser À CHAQUE FOIS pour les chaines insérées dans les SQL.
 Pure = Replace(S, "'", "''")
End Function


Dim anz, i, SQL, e_anz, e_pat

e_anz = "2, 5, 7" 'à récupérer du form
e_pat = "machin" 'à récupérer du form

anz = Split(e_anz, ", ")'splitter la chaine
For i = 0 To UBound(anz) 'boucler
 SQL = "INSERT INTO examens(EXAM_PATIENT, EXAM_ANALYSE) VALUES ('" 'à chaque fois un INSERT
 SQL = SQL & Pure(e_pat) & "', " & CInt(anz(i)) & ")" 'en faisant att aux injections
 '[exécuter SQL]
Next 'i

'autres opérations...

Pas testé mais ça devrait marcher en ASP3
C'est je crois la façon la plus simple de le faire.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
Rejoignez-nous