![]() |
Resume Next
Hallo,
als alter Visual Basic-Programmierer vermisse ich bei Delphi die schöne Möglichkeit derF ehlerbehandlung durch einfaches Ignorieren des Fehlers. Ich habe zB eine Zuweisung von Datenbankfeldinhalten an ein Array, sollte hier ein Feld nicht existieren, so soll das vom Programm einfach ignoriert werden. Gibt es da vielleicht doch eine Möglichkeit? :gruebel: Danke Gruß Andreas |
Re: Resume Next
Wenn ein Datenbankfeld nicht besteht ...
Dann sollte doch schon SQL anmeckern das es das Feld nicht gibt. Wie willst du das im Delphi abfangen? |
Re: Resume Next
:oops: jetzt passt es allmählich mehr ins Datenbank-Forum.
ich hab ein paar anweisungen in der art
Delphi-Quellcode:
geht das überhaupt mit SQL? ich wüsste nur
v_data[55] := ttable.fieldbyname('FELDNAME').AsString;
Delphi-Quellcode:
ist allerdings dann im prinzip das gleiche
v_data[55] := tquery.fieldbyname('FELDNAME').AsString;
Gruß Andreas |
Re: Resume Next
Hallo Andreas,
greifst du auf ein nicht vorhandenes Datenbankfeld zu, dann wird eine exception geschmissen, die du auffangen, ignorieren oder vernichten kannst - alles schlechter Stil in deinem Fall. Besser du berücksichtigst in deinem Code bereits die Tatsache, dass ein Feld fehlen könnte. Alle Zugriffskomponenten bieten die Möglichkeit sich über die tatsächlich vorhandenen Felder zu informieren. Zur Not hilft auch das:
SQL-Code:
Grüße vom marabu
SELECT * FROM table WHERE 1 = 0
|
Re: Resume Next
Hi,
es gibt immer 2 Möglichkeiten. Man verhindert eine Exception durch sinnvollen Code oder man benutzt das Delphi eigene Exeption - Handling. Damit kann ich auch eine sogenannte stille Exception benutzen:
Delphi-Quellcode:
Cu, Frank
with Query1 do
begin // Verhindern einer Exception if FindField('FELDNAME') <> nil then v_data[55] := fieldbyname('FELDNAME').AsString; try v_data[56] := fieldbyname('FELDNAME2').AsString; except // stille Exception end end; |
Re: Resume Next
naja, der code ist noch aus den anfangstagen meines vorgängers, vielleicht sollte ich ihn doch einfach ein bißchen umschreiben. :gruebel:
dann kommen die feldnamen halt zuerst auch in ein array, das wird dann durchgegangen und geguckt, ob das feld existiert, bevor es auszulesen versucht wird. |
Re: Resume Next
Das ist durchaus die bessere Lösung.
Alles andere is zu unsicher |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 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