gebu34
Messages postés118Date d'inscriptionsamedi 9 décembre 2006StatutMembreDernière intervention17 novembre 2009
-
30 mai 2007 à 11:17
gebu34
Messages postés118Date d'inscriptionsamedi 9 décembre 2006StatutMembreDernière intervention17 novembre 2009
-
31 mai 2007 à 07:00
Bonjour à tous,
Un petit problème que je n'avais pas encore subis.
J'utilise des compo ADO avec base Access.
DTMA est le nom de mon module de données.
Pour cet exemple je travaille sur une table "TypePC" qui possède 3 champs.
NewEnreg est un boolean qui m'indique si je suis en mode Nouveau ou Modification.
La connection de ADOQuery est permanente dans DTMA (peut-être là que sa blesse)
Lorsque je fais une Modif (Edit), tout fonctionne.
Lorsque je fais Nouveau (Append), rien ne se passe.
Pas d'erreur, mais pas de nouveau enregistrement.
Voici la proc d'enregistrement.
procedure TFtabletypepc.B_EnregistrerClick(Sender: TObject);
begin
if NewEnreg = True then begin
CRITERE := 'SELECT * FROM TypePC';
DTMA.ADOQRmaj.Active := False;
DTMA.ADOQRmaj.ConnectionString := ''; //par précaution
DTMA.ADOQRmaj.Parameters.Clear; //par précaution
DTMA.ADOQRmaj.SQL.Clear;
DTMA.ADOQRmaj.SQL.Add(CRITERE);
DTMA.ADOQRmaj.Active := True;
end else begin CRITERE :'SELECT * FROM TypePC WHERE Ind' + TInd.Caption;
DTMA.ADOQRmaj.Active := False;
DTMA.ADOQRmaj.ConnectionString := '';
DTMA.ADOQRmaj.Parameters.Clear;
DTMA.ADOQRmaj.SQL.Clear;
DTMA.ADOQRmaj.SQL.Add(CRITERE);
DTMA.ADOQRmaj.Active := True;
With DTMA.ADOQRmaj do begin
if NewEnreg = True then Append else Edit;
FieldByName('Ind').AsInteger := StrToInt(TInd.Caption);
FieldByName('TypePC').AsString := TypePC.Text;
FieldByName('Comment').AsString := Comment.Text;
Post;
end;
end;
DTMA.ADOQRmaj.Active := False;
end;
Pour Info, DTMA.ADOQRmaj sert aussi à ouvrir la table, la trier, remplir une grille.
Chaque fois elle est clos avec DTMA.ADOQRmaj.Active := False;