Bonjour à tous,
Voici mon problème : j'ai une erreur incompatibilité de type lors d'une recherche SQL avec un pattern saisi dans une cellule.
A noter que lorsque ce pattern fait un mot ou deux mot je n'ai aucun soucis.
Cette erreur apparait lorsque mon pattern comporte plus de 2 mot.
Voici le code VBA :
En amont de cela j'execute sur la variable pattern les fonction trim, clean, replace chr(10) par "" et replace chr(13) par "".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 .CommandText = Array( _ "select distinct T1.dbid,T1.id,T1.titre,T1.severite,T17.login_name from Defect T1,users T17 where T1.responsable = T17.dbid " _ , _ Chr(10) & "" & Chr(13) & " and T1.dbid <> 0 " _ , _ Chr(10) & "" & Chr(13) & " and T1.lot = '" & lot & "' " _ , _ Chr(10) & "" & Chr(13) & " and ( T1.TITRE like '%" & CStr(pattern) & "%' or instr(T1.DESCRIPTION_ANALYSE, '" & CStr(pattern) & "') <> 0 or instr(T1.DESCRIPTION_TRAITEMENT, '" & CStr(pattern) & "') <> 0 or instr(T1.NOTES_LOG, '" & CStr(pattern) & "') <> 0 ) " _ , Chr(10) & "" & Chr(13) & " order by T1.severite ASC")
A noter que la requete SQL déduite executée dans SQL dev fonctionne parfaitement :
A noter que lorsque mon code VBA se trouve juste emputé de l'expression suivant alors tout fonctionne parfaitement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 select distinct T1.dbid,T1.id,T1.titre,T1.severite,T17.login_name from Defect T1,users T17 where T1.responsable = T17.dbid and T1.dbid <> 0 and T1.lot = 'toto' and ( T1.TITRE like '%Integration Framework bidon%' or instr(T1.DESCRIPTION_ANALYSE, 'Integration Framework bidon') <> 0 or instr(T1.DESCRIPTION_TRAITEMENT, 'Integration Framework bidon') <> 0 or instr(T1.NOTES_LOG, 'Integration Framework bidon') <> 0 ) order by T1.severite ASC
Enfin à noter que NOTES_LOG est un clob, mais cela ne devrait pas changer la donne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 instr(T1.NOTES_LOG, '" & CStr(pattern) & "') <> 0
Voici quelques exemples de pattern :
- Integration Framework bidon ==> KO
- Integration Framework catalog ==> KO
- integration framework catalog ==> KO
- pattern avec mots ==> OK
- integration framework cata ==> KO
- pattern avec moooots ==> OK
- pattern aaavec moooots ==> OK
- patttern aaavec moooots ==> OK
- pattttern aaavec moooots ==> OK
- patttttern aaavec moooots ==> OK
- patttttern aaavec mooooots ==> KO
- integration framework cat ==> OK
Ainsi je vois qu'au dela de 25 caractères cela ne passe plus...
Est ce que quelqu'un a une idée ?
Merci
Partager