AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datum in DB (Firebird) speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Datum in DB (Firebird) speichern

Ein Thema von Ati · begonnen am 19. Dez 2005 · letzter Beitrag vom 19. Dez 2005
Antwort Antwort
Ati

Registriert seit: 16. Okt 2003
Ort: Gelsenkirchen
406 Beiträge
 
Delphi 3 Professional
 
#1

Datum in DB (Firebird) speichern

  Alt 19. Dez 2005, 12:16
Datenbank: Firebird • Version: 1.5 • Zugriff über: Zeos
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:
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+''');';
Kommt aber nur ne Fehlermeldung.
Ich weiß das ich nichts weiß

Sokrates
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Datum in DB (Firebird) speichern

  Alt 19. Dez 2005, 12:53
Warum schreibst Du ein Insert-Statement in den Source ? Das läßt man sein Dataset machen und fertig.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Datum in DB (Firebird) speichern

  Alt 19. Dez 2005, 12:55
Hi,

hier ein kurzer Ausschnitt aus meinem Quelltext:

Delphi-Quellcode:
                SQL.Text := 'INSERT INTO TBLIPRAW (INTOBJECTID, STRTRANS, ' +
                            'DTDATE, DTTIME) ' +
                            ' VALUES (' +
                            QuotedStr(intTostr(intID)) + ',' +
                            QuotedStr(strNumber) + ',' +
                            QuotedStr(strDate) + ',' +
                            QuotedStr(strTime) + ');';
"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:

QuotedStr(DateToStr(erfdat)) Hoffe, das hilft Dir weiter.

Generell empfehle ich Dir, anstatt der vielen Hochkommas "QuotedStr()" zu verwenden, erspart das Nachzählen

Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Ati

Registriert seit: 16. Okt 2003
Ort: Gelsenkirchen
406 Beiträge
 
Delphi 3 Professional
 
#4

Re: Datum in DB (Firebird) speichern

  Alt 19. Dez 2005, 13:00
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
Ich weiß das ich nichts weiß

Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Datum in DB (Firebird) speichern

  Alt 19. Dez 2005, 13:03
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
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Datum in DB (Firebird) speichern

  Alt 19. Dez 2005, 13:14
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
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Ati

Registriert seit: 16. Okt 2003
Ort: Gelsenkirchen
406 Beiträge
 
Delphi 3 Professional
 
#7

Re: Datum in DB (Firebird) speichern

  Alt 19. Dez 2005, 13:23
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!!
Ich weiß das ich nichts weiß

Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.
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