![]() |
Datenbank: MS Access :-) • Version: BDE • Zugriff über: BDE
Existiert ein Feldname einer TQuery ?
kann man eigendlich feststellen ob ein bestimmter Feldname in der TQuery Existiert.
In der Registry kann man z.B. per
Delphi-Quellcode:
ermitteln ob eine value existiert. Geht das auf per
registry.valueexists('feld')
Delphi-Quellcode:
???
TQuery.ValueExists('feldname')
:P euer Andreas |
Re: Existiert ein Feldname einer TQuery ?
Du könntest es mit Query.FieldList.Find('Feldname') machen, wenn das Result NIL ist, hat er ein entsprechendes Feld nicht in der Query gefunden.
|
Re: Existiert ein Feldname einer TQuery ?
Hallo Andreas,
musst du fürchten, dass sich der Tabellenaufbau zwischen zwei Programmstarts verändert hat? In dem Fall solltest du zu Beginn des Programms prüfen, dass der Aufbau deinen Erwartungen entspricht. Das geht mit den Methoden der Database-Komponente: GetTableNames() und GetFieldNames(). Grüße vom marabu |
Re: Existiert ein Feldname einer TQuery ?
Hallo spacewolf,
Delphi-Quellcode:
mfg
if Query1.FindField('Fldname') = nil then begin
// Feld fehlt end; eddy |
Re: Existiert ein Feldname einer TQuery ?
danke Leute das funzt super !!! :bounce1: :hello: :hello: :party:
|
AW: Existiert ein Feldname einer TQuery ?
Aber wie gebe ich denn dann an in welcher Tabelle er das Feld suchen soll ?
|
AW: Existiert ein Feldname einer TQuery ?
Delphi-Quellcode:
query1.sql.text := 'select * from InDerTabelleWirdDasFeldGesucht';
query1.open; if Query1.FindField('Feldname') = nil then begin // Feld fehlt end; |
AW: Existiert ein Feldname einer TQuery ?
Habe es jetzt so gelöst
Code:
Procedure Tform1.UpgradeBetreiber;
var Tabname : String; begin Try ztable1.TableName := 'Betreiber'; Tabname := ztable1.TableName; ztable1.Active := true; if ztable1.Fields.FindField('Webseite') = nil then Begin // Feld erzeugen zquery1.SQL.Text := 'ALTER TABLE '+Trim(TABNAME)+' ADD COLUMN Webseite TEXT'+ ';'; zquery1.ExecSQL ; End; if ztable1.Fields.FindField('Support') = nil then Begin // Feld erzeugen zquery1.SQL.Text := 'ALTER TABLE '+Trim(TABNAME)+' ADD COLUMN Support TEXT'+ ';'; zquery1.ExecSQL ; End; Ztable1.active := false; except End; end; |
AW: Existiert ein Feldname einer TQuery ?
Zitat:
|
AW: Existiert ein Feldname einer TQuery ?
Nahezu jedes DBMS bietet irgendwie Zugriff auf virtuelle Tabellen mit Datenbankinformationen.
für MS Access z.B.
SQL-Code:
SELECT NOT EXISTS(SELECT * FROM sys.columns WHERE name = 'columnName' AND object_id = OBJECT_ID('tableName'))
Viele bieten aber inzwischen auch "allgemeine" im SQL standardisierte VIEWs mit Zugriff auf die systemeneigenen Daten. Hierfür wäre das z.B. information_schema.columns ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 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 by Thomas Breitkreuz