Bonjour,
quand j'ai migré la base de données Paradox vers SQL server dans mon programme Delphi 6 un message d'erreur : identificateur non declaré : 'Set Key'
comment je peux résoudre ce problème ?
Version imprimable
Bonjour,
quand j'ai migré la base de données Paradox vers SQL server dans mon programme Delphi 6 un message d'erreur : identificateur non declaré : 'Set Key'
comment je peux résoudre ce problème ?
Bonjour;
on voulant migrer ma base de données de paradox vers adodb (base de données Sql) dans le programme delphi de l'application et aprés le basculment de la base de données lors de la compliation du programme une erreur apparait lors de la compliation :
identificateur non déclaré :'Set Key'
Il ne te reste plus qu'à nous fournir la portion de code signalée fautive par le compilateur pour que nous puissions essayer de t'aider à résoudre le problème.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 if bd.decompte.FieldValues['pris_charg']='O' THEN begin bd.decompte.Open; bd.decompte.SetKey; // l'erreur se déclenche à ce niveau bd.decompte.Fields[0].AsString:=querymis.FieldValues['num_ordmis']; then begin bd.lg_decompte.SetKey; bd.lg_decompte.Fields[0].AsString:=dbedit3.Text; bd.lg_decompte.Fields[1].AsString:='A'; if bd.lg_decompte.GotoKey then begin bd.lg_decompte.Edit; bd.lg_decompte.FieldValues['codfrai']:='A'; bd.lg_decompte.FieldValues['nbre']:=1; bd.lg_decompte.FieldValues['mont_unit']:='2400,00'; bd.lg_decompte.FieldValues['mont_tot']:=(bd.lg_decompte.FieldValues['mont_unit']*bd.lg_decompte.FieldValues['nbre'])*25/100; bd.lg_decompte.Post; end; end;
Il est certain que la communication des types de bd et de son membre decompte serait un plus pour l'aide à la résolution du problème, puisque la teneur du message d'erreur indique clairement que SetKey n'est pas reconnu comme une méthode de bd.decompte...
Bonjour,
a mon avis SetKey est inutile et tout ce code serait certainement bien mieux remplacé par un ordre SQL !
comment on peu tester une valeur si bd.decompte n'est pas déjà ouvert !Code:
1
2
3
4 if bd.decompte.FieldValues['pris_charg']='O' THEN begin bd.decompte.Open;
remplaçable par une requête avec 2 paramètresCode:
1
2
3
4
5
6
7
8
9
10
11 bd.lg_decompte.Fields[0].AsString:=dbedit3.Text; bd.lg_decompte.Fields[1].AsString:='A'; if bd.lg_decompte.GotoKey then begin bd.lg_decompte.Edit; bd.lg_decompte.FieldValues['codfrai']:='A'; bd.lg_decompte.FieldValues['nbre']:=1; bd.lg_decompte.FieldValues['mont_unit']:='2400,00'; bd.lg_decompte.FieldValues['mont_tot']:=(bd.lg_decompte.FieldValues['mont_unit']*bd.lg_decompte.FieldValues['nbre'])*25/100; bd.lg_decompte.Post; end;
avec 2 instructions pour les paramètres et une pour exécuter la requête (execsql)Code:UPDATE LG_DECOMPTE SET CODEFRAI='A',NBRE=1,MONT_UNIT=2400.00,MONT_TOT=:MT WHERE CHAMPCLE1='A' AND CHAMP0=:C1