begin process at 2010 02 09 19:34:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Problème avec ADOQuery.Locate et opération incorrecte!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Membre Club
çà 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

Membre Club

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!

softer47

avec une base access !!
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..

1 2

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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales