-
ADOQuery SQL update
Windows XP | Delphi 7 Enterprise | ADOQuery components
La commande SQL suivante génère un message d'erreur :
UPDATE DOSSIER SET I_DB_ID=1001 WHERE DOS_ID=938;
Message d'erreur :
ADOQuery1: CommandText ne renvoie pas un ensemble de résultats.
Quel est le problème?
La commande suivante fonctionne bien :
SELECT * FROM DOSSIER WHERE DOS_ID=42 AND DOS_OWNER=33100;
-
Salut,
qu'est-ce que tu veux faire exactement ? (je demande ça car il y a peut-être d'autres moyens que celui que tu as choisi...)
@+
-
ça ressemble à une utilisation d'un Open à la place d'un ExecSQL ; C'est ce dernier qu'il faut écrire pour une requête action.
-
Réponse à cmen76 ...
BINGO!
C'est exactement ça!
J'ai utilisé l'instruction Open à la place de l'instruction ExecSQL.
Question : Pourquoi peut ont exécuter une requête commencent par SELECT et pourquoi pas une requête commencent par UPDATE avec l'instruction Open?
Merci en tout cas pour l'aide. :wink:
-
très simple :
Open, permet de récupérer un Dataset (ensemble de données fetchées depuis la base) ; cette commande doit donc obligatoirement se rattacher à un ordre sql de sélection d'enregistrements --> select
ExecSQL demande au SGBD d'exécuter l'ordre SQL sans demander de retour particulier (si ce n'est le nombre d'enregistrements impactés par l'ordre sql) ; si l'ordre sql est un select, le sgbd l'exécute sans problème... dans le vide, sans renvoyer les données, mais ça ne le fait pas planter
Ne pas oublier le tag résolu si c'est le cas :wink: