Bonjour à tous,
Je n'arrive pas à faire ma requete apres pas mal de différentes méthodes.
voici le bout de code
// Ici on recherche les composants à exclure
L'erreur se situe en rouge sur le code.
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 For n := StringGridSemaine.ComponentCount-1 downto 0 do // Le faire Absolument à l'envers Begin if StringGridSemaine.Components[n] is TShape then Begin if StringGridSemaine.Components[n].Tag <> -1000 then Begin if LeftStr(StringGridSemaine.Components[n].Name,1) = 'P' then TachesRefName := TachesRefName + Droite('PANEL',StringGridSemaine.Components[n].Name)+ ','; if LeftStr(StringGridSemaine.Components[n].Name,1) = 'X' then TachesRefNameX := TachesRefNameX + QuotedStr(Droite('X',StringGridSemaine.Components[n].Name))+ ','; end; end; end; // On retire la dernière virgule en bout de chaine TachesRefName := StrCoupeADroite(TachesRefName,1); TachesRefNameX := StrCoupeADroite(TachesRefNameX,1); // showmessage(TachesRefName + #13+#10 + TachesRefNameX); If TachesRefName <> '' then // Cas où le planning n'est pas vide dans cette semaine Begin Sql.Clear; Sql.Add('Select * From Calendrier '); Sql.Add('Where DateDebut>= :xDebut AND DateDebut<= :xFin ' ); Sql.Add('And NumEdit not in ('+TachesRefName+') '); Sql.Add('And Name not in (:xName)'); Parameters.ParamByName('xDebut').Value := FormatDateTime('dd/mm/yyyy',DateDebut); Parameters.ParamByName('xFin').Value := FormatDateTime('dd/mm/yyyy',DateFin); Parameters.ParamByName('xName').Value := TachesRefNameX;
J'ai essayé sans passer par Parameters avec ou sans QuotedStr avec ou sans ajout d'un guillemet, rien y fait.
L'objectif :
Name est te type String dans ma base
TacheRefNameX est de type String
exemple de valeur de TacheRefNameX
'PANEL10086','PANEL10085'
mais la recherche dans la base se fait sur tous ces carateres au lieu de respecter 'PANEL10086' à exclure et 'PANEL10085' à exclure, en fait la requete tente d'exclure la valeur 'PANEL100086','PANEL100085'
Comment concatener correctement, pour qu'il integre chaque valeur séparer par une virgule. normalement je le fait avec des guillemets en access met là meme avec des guillements rien n'y fait.
quand pensez-vous
Partager