ADOQuery Parameters Refresh ParamCheck
bonjour, je débute avec les paramètres dans les requêtes je trouve ça diablement efficace surtout la gestion du type de données!
J'ai un code qui fonctionne mais j'ai quelques questions sur l'utilisation car dans les divers exemples que je trouvais ils n'y avaient pas ce que j'ai dû mettre pour que cela fonctionne, alors si quelqu'un a un avis sur mon travail ça serait sympa de me dire si ça peut être amélioré:ccool:
Code:
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
|
With DBGridCustomAll Do
With ADOQuery Do
Begin
Close;
For I := 0 To NbSet Do
Begin
SQL.Clear;
SQL.Add(strDebutSQL + strNomChamps + strMilieuSQL + strValeurs + strFinSQL);
ParamCheck := True;
Parameters.Refresh;
// C := Parameters.Count; // for debug in rad see in c number of param
For C := 0 To ColumnCount - 1 Do
Begin
If Columns[C].Tag <> -5 Then
Begin
Parameters.ParamByName(':P' + IntToStr(C)).Value := Rows[i].Values[C];
Parameters.ParamByName(':P' + IntToStr(C)).DataType := Columns[C].DataTypeField;
End;
End;
ExecSQL;
ParamCheck := false;
Close;
// ShowMessage(SQL.Text);
fmLoadWait.LoadPosition := I;
End;
End;
End; |
j'ai dû mettre Parameters.Refresh; sinon les paramètres n'étaient pas créés c'est bon?
et j'ai dû mettre aussi ParamCheck := false; sinon au deuxième passage dans la boucle j'avais un message comme quoi les paramètres n'étaient pas trouvés.
est-ce que je dois réaffecté ma requête à chaque boucle? histoire de ne pas mélanger les valeurs en cas de valeur vide
Code:
1 2
| SQL.Clear;
SQL.Add(strDebutSQL + strNomChamps + strMilieuSQL + strValeurs + strFinSQL); |
merci d'avance pour vos précieux conseils:hola:
Je vous mets ma requête:
Code:
1 2 3 4 5 6 7 8 9 10 11
| ---------------------------
gestion_exposant
---------------------------
INSERT INTO [Info exposant print]
([Date d'inscription], [NOM])
VALUES
(:P0, :P1);
---------------------------
OK
--------------------------- |