Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Existiert ein Feldname einer TQuery ? (https://www.delphipraxis.net/57690-existiert-ein-feldname-einer-tquery.html)

spacewolf 25. Nov 2005 09:02

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:
registry.valueexists('feld')
ermitteln ob eine value existiert. Geht das auf per

Delphi-Quellcode:
TQuery.ValueExists('feldname')
???

:P euer Andreas

dfried 25. Nov 2005 09:13

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.

marabu 25. Nov 2005 09:46

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

eddy 25. Nov 2005 10:28

Re: Existiert ein Feldname einer TQuery ?
 
Hallo spacewolf,

Delphi-Quellcode:
if Query1.FindField('Fldname') = nil then begin
  // Feld fehlt
end;
mfg
eddy

spacewolf 25. Nov 2005 17:34

Re: Existiert ein Feldname einer TQuery ?
 
danke Leute das funzt super !!! :bounce1: :hello: :hello: :party:

joehd 30. Sep 2018 10:59

AW: Existiert ein Feldname einer TQuery ?
 
Aber wie gebe ich denn dann an in welcher Tabelle er das Feld suchen soll ?

Delphi.Narium 30. Sep 2018 11:05

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;

joehd 30. Sep 2018 12:20

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;

joehd 30. Sep 2018 12:21

AW: Existiert ein Feldname einer TQuery ?
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1414520)
Delphi-Quellcode:
query1.sql.text := 'select * from InDerTabelleWirdDasFeldGesucht';
query1.open;
if Query1.FindField('Feldname') = nil then begin
  // Feld fehlt
end;

Danke das ist auch Cool !und wieder so einfach wenn man drauf kommt ...

himitsu 30. Sep 2018 16:06

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
https://www.mssqltips.com/sqlservert...schemacolumns/
https://www.postgresql.org/docs/9.5/...a-columns.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 Uhr.
Seite 1 von 3  1 23      

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