Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Datum in Access DB schreiben (https://www.delphipraxis.net/167600-datum-access-db-schreiben.html)

DelphiManiac 8. Apr 2012 11:58

Datenbank: Access • Version: 2010 • Zugriff über: ADO

Datum in Access DB schreiben
 
Hallo,

ich habe eine Tabelle bei der ich mehrere Felder updaten will.
Beim ExecSQL kommt folgende Fehlermeldung beim update auf das Datumsfeld...

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt NSVFertigung.exe ist eine Exception der Klasse EOleException mit der Meldung '[Microsoft][ODBC-Treiber für Microsoft Access]Ungültiger Genauigkeitswert' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------





Delphi-Quellcode:
procedure TFrmGeraeteDaten.btnSaveGerateDatenClick(Sender: TObject);
var
  qryUpdate: TADOQuery;
begin
  ADOQuery1 := TADOQuery.Create(Self);
  ADOQuery1.Connection := ADOConnectionGeraet;
  ADOQuery1.Active := false;
  ADOQuery1.SQL.Text := 'UPDATE fertigung set BEMERKUNG = :bemerk,' +
    'SERIALSAP= :serialsap ' + ',GEFERTIGT_AM = :gefertigt ' +
    ' where serialtube = :serialtube';
  ADOQuery1.Parameters.ParamByName('bemerk').Value := edtBemerkung.Text;
  ADOQuery1.Parameters.ParamByName('serialtube').Value := edtSerialTube.Text;
  ADOQuery1.Parameters.ParamByName('serialsap').Value := edtSerialSAP.Text;
  ADOQuery1.Parameters.ParamByName('gefertigt').Value := now;
  ADOQuery1.ExecSQL;

end;
Was ist denn hier falsch, ich versuche doch ein Datum in ein Datums/Zeitfeld zu schreiben...

Vielen Dank schon mal und Frohe Ostern.

mkinzler 8. Apr 2012 12:10

AW: Datum in Access DB schreiben
 
Welchen Typ hat das Datenbankfeld gefertigt?
Delphi-Quellcode:
ADOQuery1.Parameters.ParamByName('gefertigt').Value := Trunc(now);

DelphiManiac 8. Apr 2012 12:16

AW: Datum in Access DB schreiben
 
Das Feld ist "Datum/Uhrzeit" in Access...
Mit einem Trunc kommt die gleiche Fehlermeldung :-(

haentschman 8. Apr 2012 12:16

AW: Datum in Access DB schreiben
 
Hallo...

NOW ist TDateTime. Ich weiß nicht wie Access ein Datumsfeld behandelt. Normalerweise DateTime. versuche mal statt Value AsDateTime zu benutzen.
Alternativ: http://www.delphipraxis.net/60247-datum-access-db.html

Nur so am Rande... was macht dich so sicher, daß das Datumsfeld die Meldung verursacht ?

DelphiManiac 8. Apr 2012 12:22

AW: Datum in Access DB schreiben
 
Hallo
ADOQuery1.Parameters.ParamByName('gefertigt').AsDa teTime

geht leider nicht, ist dies bei Delphi XE umgestellt worden?

haentschman 8. Apr 2012 12:27

AW: Datum in Access DB schreiben
 
AsDateTime gibt es nicht ? :gruebel: Und AsDate ?

PS: mit jedem Buttonklick erzeugst du eine neue Query welche erst beim Beenden durch die Form freigegeben wird. Wie wäre es mit freigeben innerhalb der Procedure ?

DelphiManiac 8. Apr 2012 12:30

AW: Datum in Access DB schreiben
 
gibt es wohl bei TParameter nicht aber bei FieldByName

haentschman 8. Apr 2012 12:34

AW: Datum in Access DB schreiben
 
Mit der Fehlermeldung gesucht...
http://www.wer-weiss-was.de/theme18/article1664120.html
Sinngemäß:
Der Fehler tritt auf wenn die Daten nicht in die DB passen:
Bsp:
- ungültiges Datum
- Float Wert in Integer
- Text zu lang für Textfeld
usw.

überprüfe mal ob die Texte, welche in den Edits stehen, auch längentechnisch in die Felder passen.

Zitat:

gibt es wohl bei TParameter nicht aber bei FieldByName
ähmmm... wir reden doch über den Parameter, also ParamByName('blubb').AsDate(Time)

Bernhard Geyer 8. Apr 2012 12:51

AW: Datum in Access DB schreiben
 
Und wieso gehst du über ODBC?
Für Access gibt es mit der JET-Engine (bzw. den nachfolger der neueren Access-Versionen) einen nativen ADO/OLE DB-Provider so das ein fehleranfälliger umweg über ODBC nicht nötig ist.

DelphiManiac 8. Apr 2012 13:30

AW: Datum in Access DB schreiben
 
Hallo ich nutze :Microsoft.ACE.OLEDB.12.0

den JET Treiber bekomme ich mit den neuen Access Dateien nicht zum laufen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz