Accueil > Forum > > > > Problème avec ADOQuery.Locate et opération incorrecte!
Problème avec ADOQuery.Locate et opération incorrecte!
mercredi 16 avril 2008 à 14:54:26 |
Problème avec ADOQuery.Locate et opération incorrecte!

othland
|
Bonjour à tous,
j'utilise le résultat d'un ADOQuery.Locate dans un if mais lors de l'exécution, ça m'affiche 'Opération de variant incorrecte'
mon locate est le suivant :
ADOQuery.Locate('Code', Chaine, [])
sachant que chaine et de type string...
j'ai essayé plusieurs méthodes mais ça n'a pas marché.
c'est quoi le problème SVP?
Merci
|
|
mercredi 16 avril 2008 à 17:59:28 |
Re : Problème avec ADOQuery.Locate et opération incorrecte!

othland
|
ReBonjour,
j'ai utilisé toutes les possibilités mais sans succès!
SVP aidez moi!!
merci à vous!
|
|
mercredi 16 avril 2008 à 21:04:55 |
Re : Problème avec ADOQuery.Locate et opération incorrecte!

cantador
|
çà ressemble à un souci de conversion.. ADOQuery.Locate('Code', Chaine, []) Code est vraisemblablement de type integer donc essaie StrToInt(Chaine). cantador 
|
|
jeudi 17 avril 2008 à 09:46:34 |
Re : Problème avec ADOQuery.Locate et opération incorrecte!

othland
|
merci pour la réponse Cantador,
en fait, le champ 'code' est de type : char(10)
et chaine est de type string.
lorsque j'ai essayé :
ADOQuery.Locate('Code', quotedstr(Chaine), []);
ça m'affiche : "une opération en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état"
que dois je faire dans ce cas??
Merci pour votre aide les amis!
|
|
jeudi 17 avril 2008 à 17:37:39 |
Re : Problème avec ADOQuery.Locate et opération incorrecte!

cantador
|
curieux ce message, visiblement il doit y avoir des erreurs ailleurs.. Peut-être la structure.. il vaut mieux mettre la clé primaire en integer.. j'ai retrouvé une ancienne écriture : ADOAccident.Locate('id_accident',65092,[]);
qui fonctionne id-accident est un integer..
cantador
|
|
vendredi 12 décembre 2008 à 07:46:08 |
Re : Problème avec ADOQuery.Locate et opération incorrecte!

softer47
|
bonjour,
moi je rencontre un souci avec locate !
je m'explique...........
je passe par un adoconnection + adodataset + datasource et le code suivant
try
locate ( ' date,id_races', date;id_races , [] ); edit; fieldsbyname('date').value:= date; fieldsbyname('id_race').value:= id_races;
except;
insert; fieldsbyname('date').value:= date; fieldsbyname('id_race').value:= id_races; post;
end;
.......afin de vérifier si l'enregistrement existe ou pas et ou l'insérer ou le modifier
mon problème est que l'enregistrement existe ou pas c'est toujours en "édit" et ça réecrit toujours sur le 1er enregistrement de ma table malgrès locate j'ai un prb de detection d'enregistrement car ça n'insère jamais si nouveau enreg
si quelqu'un a la solution ??
encore merci
|
|
vendredi 12 décembre 2008 à 07:47:42 |
Re : Problème avec ADOQuery.Locate et opération incorrecte!
|
vendredi 12 décembre 2008 à 09:35:24 |
Re : Problème avec ADOQuery.Locate et opération incorrecte!

JeremyLecouvert
|
Salut, Softer47: essaie cette syntaxe: Locate('date;id_races', VarArrayOf([date, id_races]), []). Le 1° paramètre doit être séparé par des ';' et pas des ','. Et dans le cas d'une recherche sur plusieurs champs, le 2° paramètre est un tableau de Variant. ptite suggestion: tu pourrais faire un truc du style: if Locate('date;id_races', VarArrayOf([date, id_races]), []) then begin //on a trouvé: Locate renvoie True et nous positionne sur l'enr. recherché edit; ... end else //on n'a pas trouvé: Locate renvoie False et le curseur du DataSet reste au même endroit begin insert; ... end;
ça te permettra de voir tout de suite (en debug) si tu as trouvé ton enregistrement. Dans ton code tu cherches l'enregistrement, mais si tu ne le trouves pas (Locate renvoie False), tu te mets quand même en Edit pour modifier l'enregistrement courant (celui sur lequel tu étais positionné avant d'appeler Locate, par exemple le premier!). Je pense que ça règlera ton pb. Othland: j'arrive certainement un peu (beaucoup) tard, mais bon... je ne travaille jamais avec des types char, mais à tout zazard, tu pourrais essayer de caster ta variable "chaine" en Variant, ou peut-être en char(10). Voilou! @+.
|
|
vendredi 12 décembre 2008 à 13:27:31 |
Re : Problème avec ADOQuery.Locate et opération incorrecte!

softer47
|
jeremy,
merci de ta réponse mais ma syntaxe est bien celle que tu préconises :
locate('date;id_races',vararrayof([date,id_races]),[]);
donc là c'est bon...............mais même avec if ...then..else......... ça marche pas ( j'avais déja testé )
je comprends pas :(
|
|
vendredi 12 décembre 2008 à 14:14:34 |
Re : Problème avec ADOQuery.Locate et opération incorrecte!

JeremyLecouvert
|
Quand tu dis "ça marche pas", est-ce que ça veut dire que tu ne trouves pas un enregistrement qui devrait y être et que tu passes systématiquement dans la clause else? est-ce que tu as essayé sur plusieurs enregistrements ou c'est toujours le même qui déconne? As-tu essayé avec les options (loCaseInsensitive,...)? Désolé, mais j'ai du mal à cibler ton pb.. et en ce qui concerne la syntaxe, ce n'est pas celle que tu as marquée dans ton post, d'où ma précédente suggestion..
|
|
Cette discussion est classée dans : problème, adoquery, locate, opération, incorrecte
Répondre à ce message
Sujets en rapport avec ce message
Répertoire incorrecte [ par m_cyril1 ]
J'ai réussit à résoudre une partie de mon problème de bases de données, non pas en installant le BDE à partir des CDs de Delphi (Sinon cela oblige
Problème de Locate et AppendRecord avec Delphi 2006 [ par dguehenn ]
Bonjour, Lors du passage de mon application de Delphi 7 à Delphi 2006, deux problèmes sont apparus : Lorsque j'utilise la méthode LOCATE, j'ai des rés
problème de requête [ par pseudoOM ]
Bonjour à tous ! J'ai un problème que j'aimerais résoudre très rapidement. En fait j'ai fais une ADOQuery qui contient ceci :UPDATE tableSET nombre=:n
DBGRID ET GESTION CHAMP TYPE DATETIME [ par ellde ]
Bonjour, Voilà mon problème : j'ai une table paradox qui contient plusieurs champs dont 1 champ de type Date avec champs persistant et avec un editma
Problème pour accéder à la carte graphique en assembler [ par EddiTheHead ]
Bonjour,Je suis en train de faire ma conversion du turbo pascal en delphi et j'essaye de récupérer mes routines.Je suis tombé sur un problème avec un
erreur à l'exécution avec ma base de données [ par pseudoOM ]
Bonjour,j'ai un gros problème. Mon programme tourne super bien sur mon ordi mais une fois que le met sur un autre et que je le lance c'est ok sauf pou
Problème avec ADO [ par moldov ]
Bonjour, alors j'ai une application qui utilise un BD Access avec les pilote JET. J'utilise l'ADO pour communiquer de Delphi a ma BD. Donc j'ai crée p
Problème d'index [ par blinkseb ]
Bonjour à tous, Je possède sur une form différent TImage, alignés en lignes et en colonnes. En sachant que les images sont remplies par lignes,
tronquer un fichier [ par LuckyLuck ]
salut, un léger problème, enfin pas un problème mais plutot une recherche d'optimisation.Ce que je voudrais faire, c'est ne garder qu'une partie d'un
Variables folles [ par titeuf7 ]
Bonjour a tous, voila j'ai un big problème sous un prog que je développe actuellement sous delphi 7.0 je déclare des variables et certaine d'entre-ell
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010TECHDAYS PARIS 2010 : PLAN DE MIGRATION VERS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Arnault Nouvel et Antoine Dongois Le processus à prendre : Apprendre (découvrir la plateforme) Préparer (documenter l'historique et choisir la méthode de MAJ) Test (Test de MAJ) Implémenter (Effectuer la MAJ) Valid...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOURTECHDAYS PARIS 2010 : LA PLEINIèRE DU SECOND JOUR par ROMELARD Fabrice
Après un retour sur l'histoire des TechDays de Paris et le fait que ce soit le plus gros event MS au monde (du fait de sa gratuité), le président de MS France (Eric Boustoullier) a fait une présentation de la vision Microsoft pour les années à venir...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|