dj_cue
Messages postés6Date d'inscriptionjeudi 23 février 2006StatutMembreDernière intervention 5 février 2007
-
2 févr. 2007 à 01:16
dj_cue
Messages postés6Date d'inscriptionjeudi 23 février 2006StatutMembreDernière intervention 5 février 2007
-
5 févr. 2007 à 16:07
slt tt le monde !
voila je suis debutant en delphi, je suis entrain de faire mon 1er programme, et je cherche comment veriffier 2 données a partir d'un maskedit sur une base de donnée oracle.
voici le resumé :
la table "user" contien :
nom_utilisateur =====> le nom d'utilisateur
passe =====> le mot de passe
code =====> 1 pour admin, 2 pour invité
la fiche contien :
maskedit1 ====> nom d'utilisateur
maskedit2 ====> mot de passe
bouton ====> bouton OK pour accedé a l'application
alors je veux :
1- verifier le nom d'utilisateur et le mot de passe
2- si le les données existe sur la table
3- avoire le code qui les precede (1 ou 2)
si 1 : form1.show
si 2 : form2.show
voila j'espere que g ete clair
merci d'avance a tous de m'aidé et bon courage pour vos programmes
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 4 févr. 2007 à 12:26
Salut,
Pour t'expliquer, je vais supposer que ta fiche principale s'appelle Form1 et que tes composants TTable, TDataSource ont été placés sur cette fiche (ce qui n'est pas l'idéal pour entrer un mot de passe, mais enfin...). Idem pour les MaskEdit et les BitBtn.
Tu as une base de données avec comme nom de champs : 'nom_utilisateur', 'passe', 'code'.
ex : 'Albert', 'XKG23', '1'. Je suppose que ton champ 'code' est de type numérique entier.
Tu insères dans le code de Unit1 (l'unité de Form1) la fonction suivante :
function TForm1.CheckUser(UserName, UserPassWord: string): integer;
begin
Result:= -1; // valeur renvoyée si nom non trouvé ou mot de passe incorrect
TUser.First; // on se met sur le premier enreg de la table
// on va rechercher dans la table le nom d'utilisateur.
// on emploie pour cela la fonction Locate qui renvoie true si trouvé.
if TUser.Locate('Nom_utilisateur', UserName, []) then // on a trouvé l'enregistrement
begin
// on regarde si le mot de passe est correct en consultant la valeur du champ 'passe'
// FieldByName('passe').asStr renvoie en string la valeur du champ 'passe'
if TUser.FieldByName('Passe').asString = UserPassWord then
// le mot de passe est correct
// la fonction renvoie alors la valeur du champ 'code' en valeur numérique(1,2,3...)
Result:= TUser.FieldByName('Code').asInteger
else
// le nom est bon, mais pas le mot de passe
ShowMessage('Mot de passe incorrect');
end
else
// le nom utilisateur n'est pas trouvé
ShowMessage('Nom utilisateur inconnu');
end;
Tu dois déclarer cette fonction dans la section private de Form1
type
TForm1 = class(TForm)
...
private
function CheckUser(UserName, UserPassWord: string): integer;
Tu as créé un évenement OnClick pour ton BitBtn4 (bouton Ok)
procedure TForm1.BitBtn4Click(Sender: TObject);
var
R: integer;
begin
R:= CheckUser(MaskEdit1.Text, MaskEdit2.Text);
case R of
1 : Form2.Show; // code administrateur
2 : Form3.Show; // code invité
end;
end;
Voilà, je ne peux pas être plus clair. Consulte l'aide Delphi sur TTable ou Locate... pour avoir des infos supplémentaires.
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 2 févr. 2007 à 09:36
Salut,
Voici une fonction qui recherche le nom et vérifie le mot de passe. Si tout est Ok, elle renvoie le code associé, sinon elle renvoie -1.
function TForm1.CheckUser(UserName, UserPassWord: string): integer;
begin
Result:= -1;
Table1.First;
if Table1.Locate('Nom_utilisateur', UserName, []) then
begin
if Table1.FieldByName('Passe').asString = UserPassWord then
Result:= Table1.FieldByName('Code').asInteger
else
ShowMessage('Mot de passe incorrect');
end
else
ShowMessage('Nom utilisateur inconnu');
end;
exemple d'appel :
procedure TForm1.Button1Click(Sender: TObject);
var
R: integer;
begin
R:= CheckUser(MaskEdit1.Text, MaskEdit2.Text);
case R of
1 : ...
2: ....
-1: ....
end;
end;
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 3 févr. 2007 à 17:47
Salut,
Je veux bien t'expliquer plus en détail, mais dis-moi d'abord si tu emploies un composant TTable (unit dbtables) pour te connecter à ta base de données et si la connection est ok.
dj_cue
Messages postés6Date d'inscriptionjeudi 23 février 2006StatutMembreDernière intervention 5 février 2007 4 févr. 2007 à 10:23
bonjours, tout dabord merci de m'aidé car t le seul a repondre a mon aide.
j'utilise un composant "Ttable" et un autre "Tdatasource" mon application se connecte tres bien a la base de donnees.
donc :
MaskEdit1: TMaskEdit ===========> nom d'utilisateur
MaskEdit2: TMaskEdit ===========> mot de passe
BitBtn4: TBitBtn ===========>ok
BitBtn1: TBitBtn ===========>Annuler
DataSuser: TDataSource
Tuser: TTable
voila tout.
et encore merci pour ton aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?