Einzelnen Beitrag anzeigen

juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
142 Beiträge
 
Delphi XE5 Professional
 
#1

Problem mit Devart MyDac

  Alt 10. Nov 2019, 12:48
Datenbank: MySql • Version: MariaDB • Zugriff über: MyDac
Hallo Gemeinde,

Delphi 10.3 Community Edition.
Windows 10
Devart MyDac 10.0.1
Datenbank MySql MariaDB

bin am verzweifeln.
Die Procedure hat immer funktioniert und jetzt nicht mehr.
Will ein Feld (Systole) in der Tabelle vital ändern.
Geht aber nicht.

Delphi-Quellcode:
          Form1.MyCommand1.SQL.Clear;
          Form1.MyCommand1.SQL.Add('UPDATE vital SET Systole=:Sys WHERE Nachname=:Nac AND Vorname=:Vor AND Geburtsdatum=:Geb AND Datum=:Dat AND Uhrzeit>=:Uhr1 AND Uhrzeit<=:Uhr2');
          Form1.MyCommand1.ParamByName('Sys').Name:='Sys';
          Form1.MyCommand1.ParamByName('Sys').DataType:=ftInteger;
          Form1.MyCommand1.ParamByName('Sys').Value:=e3sys;
          Form1.MyCommand1.ParamByName('Nac').Name:='Nac';
          Form1.MyCommand1.ParamByName('Nac').DataType:=ftString;
          Form1.MyCommand1.ParamByName('Nac').Value:=e3nn;
          Form1.MyCommand1.ParamByName('Vor').Name:='Vor';
          Form1.MyCommand1.ParamByName('Vor').DataType:=ftString;
          Form1.MyCommand1.ParamByName('Vor').Value:=e3vn;
          Form1.MyCommand1.ParamByName('Geb').Name:='Geb';
          Form1.MyCommand1.ParamByName('Geb').DataType:=ftDateTime;
          Form1.MyCommand1.ParamByName('Geb').Value:=e3geb;
          Form1.MyCommand1.ParamByName('Dat').Name:='Dat';
          Form1.MyCommand1.ParamByName('Dat').DataType:=ftDateTime;
          Form1.MyCommand1.ParamByName('Dat').Value:=e3dat;
          Form1.MyCommand1.ParamByName('Uhr1').Name:='Uhr1';
          Form1.MyCommand1.ParamByName('Uhr1').DataType:=ftDateTime;
          Form1.MyCommand1.ParamByName('Uhr1').Value:=h8;
          Form1.MyCommand1.ParamByName('Uhr2').Name:='Uhr2';
          Form1.MyCommand1.ParamByName('Uhr2').DataType:=ftDateTime;
          Form1.MyCommand1.ParamByName('Uhr2').Value:=h9;
          Form1.MyCommand1.Execute;
          if SqlRet then
          begin
SqlRet ist der Rückgabewert (Result) aus TForm1.MyCommand1AfterExecute(Sender: TObject; Result: Boolean);
SqlRet ist TRUE

Der Wert Systole in Datenbank ist vorher und nachher 135.
Wert e3sys (im Parameter sys) ist aber 137
Alle anderen Paramerterwerte sind in Ordnung.
Nach Execute ist der Wert Systole in Datenbank immer noch 135.

Hat jemand eine Idee was das ist?
Oder wie man das testen kann?

Danke und Gruß
Jürgen
Jürgen Linder
  Mit Zitat antworten Zitat