Mise à jour d'une base de données

nicobara Messages postés 11 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 6 octobre 2004 - 23 sept. 2004 à 17:25
nicobara Messages postés 11 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 6 octobre 2004 - 24 sept. 2004 à 08:02
Bonjour,
je suis en train de développer un petit bout de code en Delphi 7 pour gérer des niveau d'accès utilisateur.
Pour ce faire, j'ai créé une base de données qui regroupe les informations des utilisateurs.
J'utilise un ADOConnection pour me connecter à la base, un ADOTable pour me connecter à la table, un Datasource pour faire le lien avec tout ca.
Pour visualiser la table j'utilise un DBGrid.
Les informations sont des lignes de la tables sont liées à 2 DBEdit et 1 DBCombobox.
Ce que je souhaite c'est pouvoir modifier la table avec les info presentent ds les DBEdit et DBCombobox, mais seulement aprés avec appuyer sur un bouton, hors actuellement les modif faite ds un DBedit sont immediatement repercuté ds le DBGrid (mais pas ds la table). Et là je vois vraiment pas quoi faire, c'est le premier prog que je fais en delphi... ca commence bien :)
Et donc aussi savoir comment mettre à jours la table, je mais le code avec (suis dsl pour la taille du message mais j'essaye d'etre le plus clair possible), j'y ai laissé les methodes que j'ai essayé pour faire la mise à jour de la table, comme ca vous pourrez me dire ou je me suis trompé.
D'avance merci.

///////////////////////////////////////////
// Ouverture de la form
procedure TForm2.FormCreate(Sender: TObject);
var cheminBD, chaineCnx : string;
begin
//Chemin d'accès à la base de données
CheminBD :='I:\gestUtil.mdb';
//Propriètés de connexion
ChaineCNX := 'Provider=Microsoft.Jet.OLEDB.4.0; '+
'User ID=Admin;'+
'Data Source=' + cheminBD + '; ' +
'Mode=Share Deny None;Extended Properties="";';
//Connection à la BdD
ADOConnection1.ConnectionString := chaineCnx;
ADOConnection1.Connected := true;
//Connection à la table
ADOTable1.TableName := 'GestUtilisateur';
ADOTable1.Active := true;
end;

procedure TForm2.FormActivate(Sender: TObject);
var i : integer;
begin
//Init
i :=1;
//Liaison entre DBEdit1 et le champ 'Nom utilisateur' de la base de données
DBEdit1.DataSource := DataSource1;
DBEdit1.DataField :='Nom utilisateur';
//Liaison entre DBEdit2 et le champ 'Mot de passe' de la base de données
DBEdit2.DataSource := DataSource1;
DBEdit2.DataField :='Mot de passe';
//Liaison entre DBComboBox1 et le champ 'Groupe' de la base de données
DBComboBox1.DataSource := DataSource1;
DBComboBox1.DataField :='Groupe';
// Remplissage du combo
for i := 0 to 3 do
begin
DBComboBox1.Items.Add(inttostr(i));
end;
end;

///////////////////////////////////////////
// Appui sur le bouton Button4 => valider
procedure TForm2.Button4Click(Sender: TObject);
begin
//ADOTable1.Refresh;
//ADOTable1.UpdateRecord;
//ADOTable1.Resync(rmExact);
//ADOTable1.UpdateBatch(arcurrent);
DBGrid1.Refresh;
end;

2 réponses

domchap Messages postés 4 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 6 novembre 2004
24 sept. 2004 à 06:11
salut
tu devrais utiliser un edit simple, car des dbedit pointent directement sur la ligne en selection, ainsi tu pouras envoyer la
donnée de l'edit.text dans ta base de donnée aprés avoir cliquer sur ton bouton

si tu veux recevoir la donnée ds l'edit apres avoir choisis une ligne de ton dbgrid, utilise l'evenement onclic du dbgrid

exemple

edit1.text:=IBQLoginDeb.FieldByName('login').AsString

ça c avec ibquery, maintenant je ne c pas si ça marche avec ADOQuery.

DomChap
0
nicobara Messages postés 11 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 6 octobre 2004
24 sept. 2004 à 08:02
Merci bien, je pense que je vais faire comme ca.
Comme les dbedit permettent cette liaison directe avec la base je voulais m'en servir, j'ai encore du mal avec delphi, j'ai encore tro pde reflexe du vb :)
En tout cas merci pour ta réponse
0
Rejoignez-nous