Bonjour à tous,

J'ai un sérieux problème avec mon application que j'ai développée avec delphi 7 et oracle 9i en utlisant les composants Dbexpess pour l'accèes à la base de données.
Voici la structure d'une de mes tables.

Nom NULL ? Type
----------------------------------------- -------- -------------
ESSENCE_ID NOT NULL VARCHAR2(30)
SITE_ID NOT NULL VARCHAR2(30)
PRODUCTEUR_ID NOT NULL VARCHAR2(30)
TAUX_TAXE NOT NULL NUMBER
DATE_ACHAT DATE
MARTEAU VARCHAR2(10)
DATE_PV_COMP DATE
NUM_PIECE VARCHAR2(10)
CHOIX_ESSENCE VARCHAR2(10)
DEFRAIS_ESSENCE VARCHAR2(10)
VOLUME_ACHAT NUMBER(10,2)
NBRE_RONDINS NUMBER(4).


Lorsque je saisis DATE_ACHAT et DATE_PV_COMP je reçois le message : ORA-01861 : le littéral ne concorde pas avec le format chaine de caractères.

Mon code est le suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
procedure TFMAJACHATS_OK_OZ.ValiderClick(Sender: TObject);
begin
 with SqlQuery1 do
        begin
          Close;
          with Sql do
          begin
            //DateAchat.Format:=FormatDateTime('yyyy/mm/dd', Date) ;
 
            Clear;
            Add('INSERT INTO ACHATS_ESSENCES');
            Add('  (SITE_ID,ESSENCE_ID,PRODUCTEUR_ID,DATE_ACHAT,TAUX_TAXE,NUM_PV_ACHAT,CHOIX_ESSENCE'
            +',VOLUME_ACHAT,MARTEAU,DEFRAIS_ESSENCE,NBRE_RONDINS,TYPE_ACHAT)');
            DateSeparator:='/';
            DecimalSeparator:='.';
            Add('  VALUES ('''+ Site.Text+''','''+ Essence.text+''','''+Producteur.text
            +''','''+FormatDatetime('yyyy/mm/dd',DateAchat.Date)+''','''+Taux.text //FormatDateTime('yyyy/mm'ddd',DateAchat.Date)
            +''','''+NumPV.Text+''','''+Choix.Text+''','''+Volume.Text+''','''+Marteau.Text
            +''','''+Defraichis.Text+''','''+NbreRond.Text+''','''+TypeAchat.text+''')');
            DecimalSeparator:=',';
            DateSeparator:='/';
          end;
 
          Try
            //if not Module_Stock.SQLconnect.InTransaction then
           // Module_Stock.SQLconnect.StartTransaction(gTD);
            ExecSql;
            //Module_Stock.SQLconnect.Commit(gTD);
            ShoWmessage('Enregistrement bien effectué...');
           Module_stats.ClientDACHATS_OK_OZ.Refresh;
          except
          on e:exception do
           MessageDlg(e.Message,mtInformation,[mbOk],0);
         end;
       end;      
end;

Quelqu'un peut-il m'aider?
end;