Hello,
J'essaie d'utiliser la fonction ODBC BINDPARAMETER.
Avec un exemple simple d'insertion d'un texte dans le champ LastName j'ai toujours le message "LastName ne peut être une chaine vide" (champ non null).
Le code est épuré des controles des fonctions ODBC, le retour est toujours OK sauf pour SQLExecute.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 var sTexte : String; lTexte : Integer; pTexte : Pointer; begin SQLPrepare(hstmt, Pchar('Insert Into Employees(LastName) Values(?)'),SQL_NTS); sTexte := 'Toto'; lTexte := Length(sTexte); pTexte := @sTexte; SQLBindParameter(hstmt,1,SQL_PARAM_INPUT,SQL_C_CHAR, SQL_VARCHAR, lTexte,0, pTexte , 0, iRet); SQLExecute(hstmt);
lTexte contient bien 4, mais iRet a en retour la valeur 0 et du coup la requête insère un champ Null au lieu de Toto.
Une idée ?
La requete "Insert Into Employees(LastName) Values(?)" fonctionne bien directement sous Access (demande d'un paramètre).
Merci !
Partager