AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Feststellen, ob TTable oder TAdsTable
Thema durchsuchen
Ansicht
Themen-Optionen

Feststellen, ob TTable oder TAdsTable

Ein Thema von FBrust · begonnen am 5. Apr 2005 · letzter Beitrag vom 19. Apr 2005
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

Feststellen, ob TTable oder TAdsTable

  Alt 5. Apr 2005, 17:49
Datenbank: ADS/BDE • Version: 7/5 • Zugriff über: Komponenten
Hallo,

durch einen Umstieg von der BDE auf den Advantage Database Server wird es eine Zeitlang beide Tabellentypen im Programm geben.

Nun gibt es Routinen, bei denen ich unterscheiden muss zwischen einer TTable der BDE und einer TAdsTable.

Wie kann ich denn herausfinden, von welchem Typ eine Tabelle ist?



Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Feststellen, ob TTable oder TAdsTable

  Alt 5. Apr 2005, 18:04
Zitat von FBrust:
durch einen Umstieg von der BDE auf den Advantage Database Server wird es eine Zeitlang beide Tabellentypen im Programm geben.

Nun gibt es Routinen, bei denen ich unterscheiden muss zwischen einer TTable der BDE und einer TAdsTable.
Wie kann ich denn herausfinden, von welchem Typ eine Tabelle ist?
Delphi-Quellcode:
if tabelle17 is TTable then
begin
   // BDE
end
else if tabelle7 is TAdsTable
begin
   // ADS
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Feststellen, ob TTable oder TAdsTable

  Alt 5. Apr 2005, 18:39
ach so einfach?

na dann:

und:


Danke für die Antwort


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Feststellen, ob TTable oder TAdsTable

  Alt 5. Apr 2005, 20:02
oder
if tabelle17.class = TTable then oder
if tabelle17.classname = 'TTablethen
  Mit Zitat antworten Zitat
Quake

Registriert seit: 25. Aug 2003
222 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Feststellen, ob TTable oder TAdsTable

  Alt 16. Apr 2005, 19:26
Habe gerade festgestell, dass es einen Unterschied gibt zwischen shmias und meiner Methode.

z.B.

Angenommen Edit ist ein TEdit

Edit is TEdit -> true
Edit is TWinControl -> true

Edit.Class = TEdit -> true
Edit.Class = TWinControl -> false

bye
  Mit Zitat antworten Zitat
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#6

Re: Feststellen, ob TTable oder TAdsTable

  Alt 16. Apr 2005, 20:47
Zitat von Quake:
Habe gerade festgestell, dass es einen Unterschied gibt zwischen shmias und meiner Methode.

z.B.

Angenommen Edit ist ein TEdit

Edit is TEdit -> true
Edit is TWinControl -> true

Edit.Class = TEdit -> true
Edit.Class = TWinControl -> false

bye
is berücksichtigt auch alle geebrten klassen, .class macht das anscheinend nicht...
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: Feststellen, ob TTable oder TAdsTable

  Alt 16. Apr 2005, 21:41
Vor allem ist die Prüfung auf den string des Klassennamens schon ziemlich ... krass.
Während die normale, lesbare und vom Compiler geprüfte Variante (IS Operator) nur eine klitzekleine Operation durchführen muss, ist bei deiner Variante gleich ein ganzer Stringvergleich fällig.

btw: Leitet die TAdsTable nicht von der TTable ab? Oder haben sie nicht einen kleinsten gemeinsamen Vorfahren, der die benötigten Eigenschaften und Methoden mitbringt?
Dann dürfte es doch ziemlich easy sein nur den im Code zu nehmen.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Feststellen, ob TTable oder TAdsTable

  Alt 16. Apr 2005, 22:04
Zitat von Robert_G:
Vor allem ist die Prüfung auf den string des Klassennamens schon ziemlich ... krass.
Während die normale, lesbare und vom Compiler geprüfte Variante (IS Operator) nur eine klitzekleine Operation durchführen muss, ist bei deiner Variante gleich ein ganzer Stringvergleich fällig.

btw: Leitet die TAdsTable nicht von der TTable ab? Oder haben sie nicht einen kleinsten gemeinsamen Vorfahren, der die benötigten Eigenschaften und Methoden mitbringt?
Dann dürfte es doch ziemlich easy sein nur den im Code zu nehmen.
Die haben TDataSet als Vorfahr. Und deshalb sollten die Funktionen dann auch so programmiert werden.

TDataSet->TBDEDataSet->TDBDataSet->TTable
TDataSet->TAdsExtendedDataSet->TAdsTable
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
678 Beiträge
 
Delphi 12 Athens
 
#9

Re: Feststellen, ob TTable oder TAdsTable

  Alt 19. Apr 2005, 11:37
Zitat von Robert_G:
Leitet die TAdsTable nicht von der TTable ab?
Gott bewahre...den ganzen BDE Quatsch mitschleppen? Was wäre das dann für eine Alternative?
Übrigens: Wir hatten schon oft Anfragen, warum ADS denn die BDE weiterhin benötigt. Die Lösung bestand immer in einer Unit (dbtables), welche die Anwender in der uses-Klausel vergessen haben.
Merke: Wenn BDE-Frei, dann auch alle BDE-Units entfernen! (und weil es so wichtig ist, gleich nochmal ein paar Ausrufezeichen!!!).
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#10

Re: Feststellen, ob TTable oder TAdsTable

  Alt 19. Apr 2005, 11:41
*In Deckung gehe*

sorry, TTable gehört zu den Dingen, die ich freiwillig wohl niemals anrühren werde.
In der Hinsicht bin ich ganz stolz darauf inkompentent zu sein.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 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