Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Lesen und schreiben aus/in Datenbank (https://www.delphipraxis.net/46462-lesen-und-schreiben-aus-datenbank.html)

allarich 25. Mai 2005 10:12

Datenbank: Paradox • Zugriff über: ODBC

Lesen und schreiben aus/in Datenbank
 
Hallo Forumsmitglieder,

wer kann weiterhelfen ?
Möchte aus Datenbank Inhalte auslesen,verknüpfen und in eine Zelle abspeichern.
Den von mir erstellten Code habe ich angehängt.
Kompilation läuft fehlerfrei. Aber nach Betätigung des Buttons stoppt Programm mit Fehlermeldug.
Wo liegt der Fehler ?

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  Td1,Td2,Td3,Er1: string;
  ZW: real;
begin
  //Table1.DatabaseName:= '.\DB\';
  Table1.TableName:= 'KDDaten';
  Table1.Active:= true;
  Table1.First;
  while not (Table1.Eof) do
  begin
    Td1:= Table1.FieldValues['Stunden'];
    Td2:= Table1.FieldValues['Minuten'];
    Td3:= Table1.FieldValues['Sekunden'];
    ZW:= StrToFloat(Td1)*60+StrToFloat(Td2)+StrToFloat(Td3)/60;
    Er1:= FloatToStr(ZW);
    Table1.Insert;
    Table1.FieldByName('Ges. Minuten').AsString:= Er1;
    Table1.Post;
    Table1.Next;
  end;
end;
MfG
allarich

[edit=Sharky]Delphi-Tags gesetzt und Code formatiert. Mfg, Sharky[/edit]

Dummy 25. Mai 2005 10:22

Re: Lesen und schreiben aus/in Datenbank
 
Hi,
nehme mal an das Programm eine endlosscheife ist.
Wleche Fehlemeldung erhälst du denn?

SubData 25. Mai 2005 11:04

Re: Lesen und schreiben aus/in Datenbank
 
Statt .Insert solltest du .Edit verwenden.
Ich nehme jedenfalls mal an, dass du den Wert editieren und nicht neu einfügen willst :>

Ausserdem kannst du diese Zeile:

Td1:= Table1.FieldValues['Stunden'];

in

Td1 := Table1.FieldByName('Stunden').asFloat;

ändern, dann bräuchtest du die StrToFloat Konvertierung nicht mehr.
Natürlich müsstest du dann Td1 auch gleich als Float / Double definieren, anstelle von String.

Bernhard Geyer 25. Mai 2005 11:06

Re: Lesen und schreiben aus/in Datenbank
 
Du greifst mit Delphi über ODBC auf eine Paradox-Datenbank zu? Ist das korrekt. :gruebel:
Falls ja, greifst Du vermutlich mit der BDE auf ODBC zu. Und den Umweg über ODBC kannst Du dir sparen. Die BDE kann Paradox native ohne den Umweg über ODBC.

SubData 25. Mai 2005 11:16

Re: Lesen und schreiben aus/in Datenbank
 
Versuchs mal so:

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  Td1, Td2, Td3  : Double;
  Zw            : Real;
begin
  //Table1.DatabaseName:= '.\DB\';
  Table1.TableName:= 'KDDaten';
  Table1.Active:= true;
  Table1.First;
  while not (Table1.Eof) do
  begin
    Td1:= Table1.FieldByName('Stunden').asFloat;
    Td2:= Table1.FieldByName('Minuten').asFloat;
    Td3:= Table1.FieldByName('Sekunden').asFloat;
    ZW:= Td1 * 60 + Td2 + Td3 / 60;
    Table1.Edit;
    Table1.FieldValues['Ges. Minuten'] := ZW;
    Table1.Post;
    Table1.Next;
  end;
end;

allarich 26. Mai 2005 09:59

Re: Lesen und schreiben aus/in Datenbank
 
Hallo SubData,

danke für deinen Tip.Ich hatte übersehen daß ich natürlich "Edit"
statt "Insert" verwenden musste !!
Probleme gab es außerdem noch bei der Kunvertierung eines "Blanks".
Nachdem ich '0' gesetzt habe,funktioniert es problemlos.

MfG
allarich


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:04 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