Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Aktuelles Datum in die DB speichern? (https://www.delphipraxis.net/173501-aktuelles-datum-die-db-speichern.html)

OrNEC 28. Feb 2013 12:54

Datenbank: SQLite • Version: 3 • Zugriff über: SimpleDelphi-Wrappers von Tim Anderson

Aktuelles Datum in die DB speichern?
 
Hallo,

ich versuche schon seit einer Stunde das aktuelle Datum in die DB zu speichern aber es gelingt mir irgendwie nicht. Hier der Code:

Delphi-Quellcode:
    // Tabelle media füllen
    sSQL := 'INSERT INTO media(mediatitle, description, status, isbn, publicationyear, insertdate,';
    sSQL := sSQL + 'fk_place_id, fk_publisher_id, fk_author_id, fk_category_id, fk_language_id, fk_entleiher_id, edition) VALUES ("'+TitleEdit.Text+'",';
    sSQL := sSQL + '"'+ DescriptionMemo.Text +'",';
    sSQL := sSQL + '"'+ IntToStr(status) +'",';
    sSQL := sSQL + '"'+ ISBNEdit.Text +'",';
    sSQL := sSQL + '"'+ PublicationyearEdit.Text +'",';
    sSQL := sSQL + '"'+ Date('now') +'",'; // <---- hier der Fehler
    sSQL := sSQL + '"'+ IntToStr(Integer(PlaceComboBox.Items.Objects[PlaceComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(PublisherComboBox.Items.Objects[PublisherComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(AuthorComboBox.Items.Objects[AuthorComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(CategoryComboBox.Items.Objects[CategoryComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(LanguageComboBox.Items.Objects[LanguageComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ IntToStr(Integer(EntleiherComboBox.Items.Objects[EntleiherComboBox.ItemIndex])) +'",';
    sSQL := sSQL + '"'+ EditionEdit.Text +'");';
Hab schon das Datum mit DateToStr konvertiert und alles mögliche versucht, aber es will nicht irgendwie. Kann mir da vllt jemand weiter helfen?

Danke!

Edit:
Die Fehlermeldung lautet: [DCC Fehler] NewMediaForm.pas(333): E2034 Zu viele Parameter

DeddyH 28. Feb 2013 13:00

AW: Aktuelles Datum in die DB speichern?
 
Falls die verwendeten Komponenten/Klassen/Units parametrisierte Statements unterstützen, solltest Du diese nutzen.

OrNEC 28. Feb 2013 13:01

AW: Aktuelles Datum in die DB speichern?
 
Zitat:

Zitat von DeddyH (Beitrag 1205400)
Falls die verwendeten Komponenten/Klassen/Units parametrisierte Statements unterstützen, solltest Du diese nutzen.

Hast du vllt ein Beispiel?

mkinzler 28. Feb 2013 13:01

AW: Aktuelles Datum in die DB speichern?
 
Der Datumsstring hat anscheinend nicht das richtige Format. Ich würde, auch unabhängig von diesem Problem, zum Einsatz von (SQL-)Parametern raten.

OrNEC 28. Feb 2013 13:04

AW: Aktuelles Datum in die DB speichern?
 
Zitat:

Zitat von mkinzler (Beitrag 1205403)
Der Datumsstring hat anscheinend nicht das richtige Format. Ich würde, auch unabhängig von diesem Problem, zum Einsatz von (SQL-)Parametern raten.

Also mit Insert klappt alles wunderbar, hier der Code:

Delphi-Quellcode:
// media Tabelle füllen
sSQL := 'INSERT INTO media(fk_author_id, mediatitle, description, status, isbn,';
sSQL := sSQL + 'edition, publicationyear, insertdate, fk_publisher_id, fk_place_id, fk_category_id, fk_language_id, fk_author_id, fk_entleiher_id) VALUES (1, "Java", "Das ist die Beschreibung!", 1,';
sSQL := sSQL + '"3-3434-78", 3, 2012, Date("now"), 1, 1, 1, 1, 1, 1);';

mkinzler 28. Feb 2013 13:04

AW: Aktuelles Datum in die DB speichern?
 
Zitat:

Zitat von OrNEC (Beitrag 1205402)
Zitat:

Zitat von DeddyH (Beitrag 1205400)
Falls die verwendeten Komponenten/Klassen/Units parametrisierte Statements unterstützen, solltest Du diese nutzen.

Hast du vllt ein Beispiel?

SQL-Code:
INSERT INTO media(mediatitle, description, status, isbn, publicationyear, insertdate,';
    sSQL := sSQL + 'fk_place_id, fk_publisher_id, fk_author_id, fk_category_id, fk_language_id, fk_entleiher_id, edition) VALUES ( :Mediatitle, :description, ... ;
Delphi-Quellcode:
...
Query.ParamByName(':insertdate').Value := Now;
...

OrNEC 28. Feb 2013 13:06

AW: Aktuelles Datum in die DB speichern?
 
Ich arbeite mit SQLite, da ist es nicht so einfach mit den Querys.

Bernhard Geyer 28. Feb 2013 13:08

AW: Aktuelles Datum in die DB speichern?
 
Zitat:

Zitat von OrNEC (Beitrag 1205408)
Ich arbeite mit SQLite, da ist es nicht so einfach mit den Querys.

Ist genau so einfach!
Wenn es nicht einfach ist liegt es an der gewählten und an dieser Stelle unzulänglichen komponenten wenn diese keine parametrisierten Abfragen unterstützt.

Aphton 28. Feb 2013 13:08

AW: Aktuelles Datum in die DB speichern?
 
Benütze bitte Format(), bitte!

Ich hab mich auch vor einiger Zeit damit gequält - deshalb hab ich einfach ne Konvertier Funktion für DateTime geschrieben, die ich dann als String abspeichere!

mkinzler 28. Feb 2013 13:10

AW: Aktuelles Datum in die DB speichern?
 
Zitat:

Zitat von OrNEC (Beitrag 1205408)
Ich arbeite mit SQLite, da ist es nicht so einfach mit den Querys.

Kommt auf die verwendeten Komponenten an. Mit UniDAC sollte es z.B. funktionieren.

Im 2. Fall hast du keine "" um das Datum.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr.
Seite 1 von 4  1 23     Letzte »    

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