![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: Zeos
Datum in DB (Firebird) speichern
Mahlzeit,
es mag vielleicht komisch klingen, aber ich schaffe es nicht ein Datum in einer DB zu speichern. Hintergrund ist das das Datum und die Uhrzeit mitgespeichert werden soll, wenn ein Datensatz eingegeben wurde. Die Feldeigenschaften in der DB sind auf Date und Time eingestellt. Ich hatte es so versucht:
Delphi-Quellcode:
Kommt aber nur ne Fehlermeldung.
var erfdat:TDate;
zeit:TTime; begin erfdat:=date; zeit:=time; qrMain.Sql.Clear; Insert into table (vim, ls, erfdat,erfasser) Values ('''+vim.text+''','''+ls.text+''',+datum+,'''+erf.text+''');'; |
Re: Datum in DB (Firebird) speichern
Warum schreibst Du ein Insert-Statement in den Source ? :shock: Das läßt man sein Dataset machen und fertig.
|
Re: Datum in DB (Firebird) speichern
Hi,
hier ein kurzer Ausschnitt aus meinem Quelltext:
Delphi-Quellcode:
"strDate" ist hierbei ein einfacher String, z. B. '19.12.05', "strTime" entsprechend '12:33', d. h. Du kannst auch, um bei Deinem Beispiel zu bleiben, folgendes schreiben:
SQL.Text := 'INSERT INTO TBLIPRAW (INTOBJECTID, STRTRANS, ' +
'DTDATE, DTTIME) ' + ' VALUES (' + QuotedStr(intTostr(intID)) + ',' + QuotedStr(strNumber) + ',' + QuotedStr(strDate) + ',' + QuotedStr(strTime) + ');';
Delphi-Quellcode:
Hoffe, das hilft Dir weiter.
QuotedStr(DateToStr(erfdat))
Generell empfehle ich Dir, anstatt der vielen Hochkommas "QuotedStr()" zu verwenden, erspart das Nachzählen :mrgreen: Gruß Frank |
Re: Datum in DB (Firebird) speichern
Verstehe leider Deine Antwort nicht so ganz (bin ja auch noch nicht so fit in DB-Programmierung). Ich kenne es jedenfalls nur so das nach dem Befüllen der einzelnen Felder das ganze per Insert-Befehl in der DB gespeichert wird. Bin aber auch immer offen für was neues.
Ach ja benutze D3 Pro+Zeos 5.5 @FBrust werde das mal so ausprobieren |
Re: Datum in DB (Firebird) speichern
Hi,
ich würde ein Feld vom Typ TimeStamp anlegen. Damit reicht es, wenn du als DEFAULT CURRENT_TIMESTAMP angibst. Somit steht das Datum und die Zeit automatisch drin. Gruß, Frank |
Re: Datum in DB (Firebird) speichern
Hi,
ich mache nichts anderes als Du, in Deinem Quelltext oben fehlt vor der Insert-Anweisung noch ein SQL.Text := , d. h. zuerst wird der SQL-Text der Abfrage mit SQL.Clear gelöscht, dann wird ein neuer Text zugewiesen. Dein Statement müsste also lauten:
Delphi-Quellcode:
erfdat := date;
zeit := time; qrMain.Sql.Clear; qrMain.SQL.Text := 'Insert into table (vim, ls, erfdat,erfasser) Values (' + QuotedStr(vim.text) + ', ' + QuotedStr(ls.text) + ', ' + QuotedStr(DateToStr(datum) + ' ,' + QuotedStr(erf.text) + ');'; qrMain.ExecSQL; Gruß Frank Edit: Grammatik korrigiert |
Re: Datum in DB (Firebird) speichern
Schon klar. Hatte diesen kleinen Zusatz ja auch dabei habe ihn nur nicht geschrieben. Habe zur Zeit noch ein paar Problemchen deswegen kann ich noch nicht sagen ob alles funktioniert. Das Problem ist das eine komplette Reklamation aus insgesamt 17 Felder besteht. Bei der Meldung werden allerdings nur 11 ausgefüllt und das speichern dieses "halben" Datensatzes klappt noch nicht. Werde da also ein bischen experimentieren müssen!!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz