Encore un pb d'execution... [Résolu]

Signaler
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007
-
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007
-
Salut!Certains penseront que j'ai tout le temps des pb...Et c'est pas fo!
Bon cette fois un message qui dit "Access Violation in module Application.exe" s'affiche...Voilà le code de la fiche que je construit...Heu...La Table participant a un champ Id qui s'incrémente seul...:

unit NewRecord;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, DB, ADODB;

type
  TRegister = class(TForm)
    Masc: TCheckBox;
    Femi: TCheckBox;
    Sexe: TLabel;
    ChoixEpreuve: TLabel;
    Brass: TCheckBox;
    RelBrass: TCheckBox;
    Craw: TCheckBox;
    RelCrawl: TCheckBox;
    Titre: TLabel;
    Categorie: TLabel;
    Categories: TDBLookupComboBox;
    Nom: TLabel;
    Prenom: TLabel;
    DateNaissance: TLabel;
    Adresse: TLabel;
    Telephone: TLabel;
    Club: TLabel;
    Connexion: TADOConnection;
    Save: TButton;
    EditNom: TEdit;
    EditPrenom: TEdit;
    EditDateNais: TEdit;
    EditAddr: TEdit;
    EditTel: TEdit;
    EditClub: TEdit;
    Add: TADOQuery;
    ParCategorie: TADOTable;
    LesCategories: TDataSource;
    ParCategorieCategorie: TWideStringField;
    LesParticipants: TDataSource;
    AddNom: TWideStringField;
    AddPrenom: TWideStringField;
    AddSexe: TWideStringField;
    AddCategorie: TWideStringField;
    AddDateNaissance: TDateTimeField;
    AddAdresse: TWideStringField;
    AddTelephone: TWideStringField;
    AddClub: TWideStringField;
    AddNoDossard: TIntegerField;
    AddDateEnregistrement: TWideStringField;
    procedure SaveClick(Sender: TObject);
    procedure MascClick(Sender: TObject);
    procedure FemiClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Register: TRegister;

implementation

{$R *.dfm}

procedure TRegister.FemiClick(Sender: TObject);
begin
  if Femi.Checked then Masc.Checked:=False
end;

procedure TRegister.MascClick(Sender: TObject);
begin
  if Masc.Checked then Femi.Checked:=False
end;

procedure TRegister.SaveClick(Sender: TObject);
var Sexe, Categoria, strNoDossard : string;
    NoDossard:integer;
begin
  if Masc.Checked then Sexe:= Masc.Caption
                  else Sexe:=Femi.Caption;
                  ShowMessage(Sexe);
  if Categories.KeyValue<>null then begin
                                      Add.Parameters.ParamValues['Categorie']:=Categories.KeyValue;
                                      Categoria:= String(Add.Parameters.ParamValues['Categorie']);
                                    end;
  Add.SQL.Clear;
  randomize;
  NoDossard:=random(20);
  strNoDossard:=String(NoDossard);
  Add.SQL.Add('INSERT INTO Participants(Nom,Prenom,Sexe,Categorie,DateNaissance,Adresse,Telephone,Club,NoDossard,DateEnregistrement) Values ("'+EditNom.Text+'","'+EditPrenom.Text+'","'+Sexe+'","'+Categoria+'","'+EditDateNais.Text+'","'+EditAddr.Text+'","'+EditTel.Text+'","'+EditClub.Text+'",'+strNoDossard+',"'+DateToStr(Now)+'");');
  Add.Open;
end;

end.

4 réponses

Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
re,

mais t'as plus ta violation d'acces. non?

"m'affiche une erreur d'accès à la base de données!"

1. donc c'est un autre problème. non?
2. Quel message? (je suis pas devin)
3. sinon, les DB c'est pas ma spécialité. Mais il ne te manque pas un .execSQL ? (aussi, je ne vois pas le code de connection. mais une fois de plus, les DB c'est pas ma spécialité)
4. en passant. regarde QuotedStr.
5. Vérifie que ton fichier de DB est bien fermé (cad qu'il n'est psa ouvert sous acces ou autre prog.)

A+

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
salut,

sans avoir tout lue t'as déjà ça de faux:
strNoDossard:= String(NoDossard);
rempalce par
strNoDossard :=IntToStr( NoDossard);
A+

Loda

PS: INDIQUE OU est l'erreur STP ! C'est plus facile que de deviner ce qui peut clocher.
<hr size ="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

Mais ça marche toujours pas...Ca m'affiche une erreur d'accès à la base de données!
Messages postés
44
Date d'inscription
mercredi 13 juin 2007
Statut
Membre
Dernière intervention
9 août 2007

Merci en fait la solution était bien de mettre .ExecSQL!!!