begin process at 2010 02 10 09:42:43
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Base de données

 > 

Autre

 > 

Comment éviter les erreurs de clé en SQL


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

Comment éviter les erreurs de clé en SQL

mercredi 27 août 2008 à 11:44:51 | Comment éviter les erreurs de clé en SQL

Jenojen

Bonjour,

J'aimerais savoir comment éviter d'enregistrer deux fois les mêmes données lorsqu'on passe par le SQL. En gros j'ai un bouton derrière lequel y a du SQL (insert into...) et j'aimerais qu'avant d'exécuter  je puisse vérifier que les données que je veux entrer ne sont pas dèja dedans pour éviter les erreurs avec les clés primaires. En gros un truc qui vérifie dans la table que le clé primaire n'y soit pas déja.

Merci de me répondre.
mercredi 27 août 2008 à 13:32:45 | Re : Comment éviter les erreurs de clé en SQL

WhiteHippo

Membre Club
Réponse acceptée !
Bonjour

Ce sujet concerne plutot le SQL que Delphi. Il serait bon d'aller voir sur le forum associé au SQL (voir ici)

N.B. Ce sujet est un sujet récurrent. Faut utiliser le moteur de recherches!!

Cordialement.

"L'imagination est plus importante que le savoir." Albert Einstein
mercredi 27 août 2008 à 16:00:56 | Re : Comment éviter les erreurs de clé en SQL

cantador

Membre Club

@Jenojen:

Si tu utilises une clé primaire auto-incrémentale, ce souci est réglé automatiquement (sans ajout de ligne de code)
Aucun numéro crée ne peut se retrouver ultérieurement.

cantador

mercredi 27 août 2008 à 18:11:27 | Re : Comment éviter les erreurs de clé en SQL

WhiteHippo

Membre Club
Bonsoir Cantador

"sans ajout de ligne de code" soit ! mais en modifiant alors la structure de la base de données ...

Cordialement.

"L'imagination est plus importante que le savoir." Albert Einstein
mercredi 27 août 2008 à 18:34:43 | Re : Comment éviter les erreurs de clé en SQL

cantador

Membre Club
3 secondes..

cantador
mercredi 27 août 2008 à 19:11:59 | Re : Comment éviter les erreurs de clé en SQL

WhiteHippo

Membre Club
Allez après j'arrete

>3sec....
Tout dépend de la façon dont la gestion de la base a été faite et de la profondeur d'imbrication et des liens de celle-ci dans un système existant déjà bien ancré. Remettre en cause la structure d'une base de données peut engendrer beaucoup, voir même beaucoup trop de modifications, si la conception intiale a été mal faite.

P.S. Je sais que je ne t'apprend rien, mais cette remarque pourra toujours servir à Jenojen   


"L'imagination est plus importante que le savoir." Albert Einstein
mercredi 27 août 2008 à 19:20:38 | Re : Comment éviter les erreurs de clé en SQL

Jenojen

Ma base de données a été faite sur de très bonnes bases vu qu'elle a été faite sur base du dico donné par le prof donc pas de soucis de ce coté la. Mais je sèche toujours quant à vérifier si les données que je veux rentrer ne se trouvent pas déja dans ma table. De plus la proposition de champ incrémenté ne tient pas ici, étant donné que ce qui sert de clé primaire à ma table tparier ici en l'occurence est une clé extérieure.

J'ai juste besoin d'un code qui puisse véirifer que les données que je veux enregistrer par une requête sql ne sont pas dèja présentes dans ma db parce que si je les ajoute mais quelles sont dèja présentes (clé primaire oblige) alors le prog plante tout simplement.
mercredi 27 août 2008 à 19:54:28 | Re : Comment éviter les erreurs de clé en SQL

WhiteHippo

Membre Club
Je te donne une piste :
Tu peux rechercher si un enregistrement existe par un "SELECT * FROM MaBaseDeDonnée WHERE (Champ1=Valeur)"  Si la requête ne te renvoit rien c'est que l'enregistrement n'est pas présent dans la base, sinon après soit tu modifies l'enregistrement existant soit tu avertit l'utilisateur et tu ne changes rien.

P.S. Je te conseille de nouveau d'aller voir sur le forum SQL.

Cordialement.

"L'imagination est plus importante que le savoir." Albert Einstein
mercredi 27 août 2008 à 20:05:48 | Re : Comment éviter les erreurs de clé en SQL

Jenojen

Merci pour ta réponse.

J'ai été voir mais j'ai pas trouvé si tu sais me rediriger vers un lien qui explique ça je t'en serais reconnaissant. J'ai créé mon propre topic sur la question mais sans succès et la méthode que tu m'expliques ici, j'en avais tenté un ersatz mais je ne savais pas comment appliquer cette requète et comment recevoir la réponse.
En gros j'avais l'idée mais pas la facon de faire.
Peux tu spécifier un peu plus ton aide ou me renvoyer vers un topic qui explique ça au mieux?

Merci d'avance.

 sql.text:= ('select idcheval from tparier where idcheval = ' +dm.tparticiper.fieldbyname('idcheval').asstring); 
mercredi 27 août 2008 à 20:16:44 | Re : Comment éviter les erreurs de clé en SQL

WhiteHippo

Membre Club

Il ne faut pas oublier les guillemets, créés par la fonction QuotedStr :
sql.text:= 'SELECT * FROM tparier WHERE idcheval ='+QuotedStr(dm.tparticiper.fieldbyname('idcheval').asstring);  

Il faut penser à utiliser le moteur de recherche !!!
http://search.codes-sources.com/r.aspx?r=select&s=15

Cordialement.


"L'imagination est plus importante que le savoir." Albert Einstein


1 2

Cette discussion est classée dans : données, sql, erreurs, clé, éviter


Répondre à ce message

Sujets en rapport avec ce message

probleme de base de données [ par apoke ] Mon problème est très délicat et difficile à expliquer mais je ferai de mon mieux:Voilà, dans ma base de données (access) j'ai une table "matériel" et Récupérer la clé d'un enregistrement [ par freeman44 ] Alors voila : J'exécute une requête SQL lors du clik sur un bouton: "Insert into tblEvaluateur values(nomEvaluateur, prenomEvaluateur)" Ca marche tres Base de données SQL [ par kiddru ] Comment peut-on lire 2 bases de données SQL différentes avec le même Query ou le Datasource?L'option "Duplex" dans le printerSettings de QReport ne se Envoyer des données dans un DBChart par SQL [ par louiwahl ] Je voudrais ajouter les données obtenues par 'AVG(Toto) as Toto'dans un DBChart par 'Serie1.Add(Toto)Si quelqu' un peut m'aiderMerciLouis SQL, requete sur les types de données ! [ par benumiit82 ] Bonjour,comment questionner une base de données en SQL pour connaitre le type de données d'un des champs.Par exemple je voudrais faire ceci (en pseudo Pertes de données avec Batchmove [ par oluha ] BonjourJ'ai un gros problème avec les batchmoves. Je m'en sers dans mon programme pour transferer une table d'Access vers SQL Server puis d'SQL Server Base de données et serveur SQL/MYSQL, etc...... [ par zorville34 ] Bonsoir Je suis en train de voir comment écrire une application ou il y a une base de données type access ou autres pouvant être accèder par plusieur Erreur SQL [ par stu76 ] Bonsoir tout le monde,Je vous sollicite une fois de plus car j'ai besoin d'un coup de pouce, . Je travaille sur un projet dans lequel j'utilise des ba Importation des données vers une base SQL [ par othland ] slt tlm;j'ai un peripherique qui génère un journal d'évènements, j'ai sauvegardé ce même journal dans mon disque dur sous format txt.j'ai , ensuite, i pouvez vous me montrer comment on travaille avec un ADODataSet? [ par othland ] Bonjour tout le monde,je sais que c'est une question bizarre mais bon!j'ai beau chercher de sources utilisant un ADODataSet avec un dbgrid sur une bas


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

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,749 sec (3)

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