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,
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.
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre 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 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...
Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
. Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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ètres
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part UPDATE LG_DECOMPTE SET CODEFRAI='A',NBRE=1,MONT_UNIT=2400.00,MONT_TOT=:MT WHERE CHAMPCLE1='A' AND CHAMP0=:C1
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager