Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit ADO und timestamp (https://www.delphipraxis.net/166653-probleme-mit-ado-und-timestamp.html)

Bernhard Geyer 23. Feb 2012 15:16

AW: Probleme mit ADO und timestamp
 
Ich sehe grad das steht was mit Postgre.

Ich würde darauf Tippen das der ADO-Provider (u.U. auch der Delphi-Wrapper) hier ein paar Fehler mit PostgreSQL hat.

Ich würde aber lieber native Zugriffskompos wie von DevArt verwenden. Hier ist die Problemdichte geringer als bei verwendung von ADO (und evtl. zusätzlich auch noch ODBC).

Und als Argument gegen ADO gibts noch: Microsoft hat ADO/OLE DB abgekündigt. Sollte nicht mehr verwendet werden. Mann soll doch wieder auf das "gute alte" ODBC zurück gehen.

haentschman 23. Feb 2012 15:16

AW: Probleme mit ADO und timestamp
 
Puh... dann bin ich ratlos :( Wie war nochmal die Felddefinition in der DB ?

Wäre statt ADO Zeos als Zugriff möglich ? Ein Versuch wäre es wert...

willyxv 23. Feb 2012 15:36

AW: Probleme mit ADO und timestamp
 
Hmm ok danke, werd wohl schaun das ich zeos installiert bekomme und es damit noch mal versuchen.

shmia 23. Feb 2012 15:43

AW: Probleme mit ADO und timestamp
 
Lass doch mal die doppelten Anführungszeichen weg:
Delphi-Quellcode:
procedure TForm1.timerTimer(Sender: TObject);
var aktdatetime : tdatetime;
begin
  aktdatetime := now;

// In Datenbank speichern
  sql.SQL.Text := 'INSERT INTO ' + SQLtabelle + ' (obtime, value) VALUES(:obtime, :value)';

Assert(sql.Parameters.Count = 2);
Assert(sql.Parameters.ParamInfoAvailable);

  sql.Parameters.ParamByName('obtime').Value := aktdatetime;
  sql.Parameters.ParamByName('value').Value := aktwert;
  sql.ExecSQL;
end;
Doppelte Anführungszeichen für Tabellen- und Feldnamen werden nicht benötigt solange du "saubere" Namen wählst, die nicht gegen die Regeln verstossen.
Ausserdem ist der Strichpunkt ma Ende der SQL-Anweisung nicht nötig und auch der sql.SQL.Clear wird nicht gebraucht.
Die Strategie ist: alles weglassen, was den Parser verwirren könnte.

Bummi 23. Feb 2012 16:07

AW: Probleme mit ADO und timestamp
 
ich kenn e mich nicht mit PostGres aus, aber

TDateTime ist ein Double laut

http://www.teialehrbuch.de/Kostenlos...atentypen.html

ist Timestamp dies nicht (oder zumindest nicht offensichtlich)


TIMESTAMP 8 Bytes von 4713 v.u.Z. bis 1465001 u.Z. Datum und Zeit

willyxv 24. Feb 2012 11:38

AW: Probleme mit ADO und timestamp
 
Vielen Dank für die Hilfe,

es scheint wirklich an der ado-connection zu liegen.

Ich hab es jetzt mit Zeos gelöst und es funktioniert einwandfrei, auch ohne das man die parameter extra definieren muss. Es ist nur etwas nervig, dass man eine dll für postgre mitgeben muss und diese auch noch unterschiedlich für 32 und 64 bit systeme ist.

MfG Willy


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr.
Seite 2 von 2     12   

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