Encore un pb d'execution...

Résolu
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007 - 29 juin 2007 à 13:55
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007 - 2 juil. 2007 à 16:22
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

cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
2 juil. 2007 à 09:28
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.
3
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
29 juin 2007 à 14:33
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.
0
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
29 juin 2007 à 16:19
Mais ça marche toujours pas...Ca m'affiche une erreur d'accès à la base de données!
0
Guenky Messages postés 44 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 9 août 2007
2 juil. 2007 à 16:22
Merci en fait la solution était bien de mettre .ExecSQL!!!
0
Rejoignez-nous