Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Behandlung von fehlenden Feldern in DBASE oder ADO (https://www.delphipraxis.net/60083-behandlung-von-fehlenden-feldern-dbase-oder-ado.html)

Detlef 2. Jan 2006 21:40

Datenbank: DBASE • Zugriff über: Table-Komponente

Behandlung von fehlenden Feldern in DBASE oder ADO
 
Hallo,
ich habe eine Datenbank, die sich monatlich micht nur im den
Feldinhalten sondern auch in der Feldstruktur ändert. Ich füge
z. Bsp in diesem Monat ein neues Feld ein, daß es in den Monaten
davor noch nicht gab. Nun bekomme ich natürlich Fehler beim
Zugriff auf den Stand voriger Monate. Ich möchte in solchen
Fällen einfach das Feld leer lassen und weiter machen. Geht das
mit Exception-Behandlung und wenn ja, wie oder geht das anders ?

Herzliche Grüße an die Delphianer!

Detlef

marabu 2. Jan 2006 22:11

Re: Behandlung von fehlenden Feldern in DBASE oder ADO
 
Hallo Detlef,

Zitat:

Zitat von Detlef
Ich möchte in solchen Fällen einfach das Feld leer lassen und weiter machen. Geht das
mit Exception-Behandlung und wenn ja, wie oder geht das anders ?

Wenn es wirklich eine Datenbank wäre und nicht eine dBase-Tabelle, dann wäre das Datenmodell fehlerhaft. Normalerweise werden die Daten so modelliert, dass genau dein Problem (Strukturänderung als Betriebsfall) nicht auftritt. Auch wenn du jetzt deine Anwendung nicht beschrieben hast, möchte ich doch behaupten, dass sich auch dein Problem durch eine 1:n Beziehung lösen lässt.

Grüße vom marabu

eddy 3. Jan 2006 08:33

Re: Behandlung von fehlenden Feldern in DBASE oder ADO
 
Hallo Detlef,

ich vermute mal, Du redest von einem von Dir selbst geschriebenen Programm, bei dem Du manuell neue Felder Deiner Datenbank hinzugefügt hast, die beim Nutzer Deiner Software aber noch fehlen.

Das Fehlen oder Vorhandensein von Feldern läßt sich mit

Delphi-Quellcode:
 if TTable.FindField('Feldname') <> nil then ....
feststellen und darauf reagieren.

Falls Du von falschen Feldinhalten redest, kannst Du an kritischen Stellen im Programm ja vorher eine Prüfung der Werte vornehmen, damit es z.B. nicht zur Division durch Null und damit zu einer Fehlermeldung kommt.

Wie man Felder während der Laufzeit einer Datenbank hinzufügt, hatten wir hier auch schon irgendwann mal im Forum (das ging zwar um Paradox-DB, aber das es unter ADS ebenfalls funktioniert, sollte es wohl mit dBase auch gehen).

mfg
eddy

Nachtrag: Feld einfügen


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