![]() |
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:
MfG
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; allarich [edit=Sharky]Delphi-Tags gesetzt und Code formatiert. Mfg, Sharky[/edit] |
Re: Lesen und schreiben aus/in Datenbank
Hi,
nehme mal an das Programm eine endlosscheife ist. Wleche Fehlemeldung erhälst du denn? |
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. |
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. |
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; |
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 09:16 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