AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Existiert ein Feldname einer TQuery ?
Thema durchsuchen
Ansicht
Themen-Optionen

Existiert ein Feldname einer TQuery ?

Ein Thema von spacewolf · begonnen am 25. Nov 2005 · letzter Beitrag vom 3. Okt 2018
Antwort Antwort
Seite 2 von 3     12 3      
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#11

AW: Existiert ein Feldname einer TQuery ?

  Alt 30. Sep 2018, 18:13
Prinzipiell ist das richtig, aber leider nicht so wirklich einheitlich umgesetzt.

Wenn man Software nur für eine bestimmte Datenbank schreibt, ist das klar der bessere Weg.

Muss man "allgemeinverbindlich" sein, hilft leider nur der Weg über 'ne mehr oder weniger sinnvolle Krücke.

Das select * from Tabelle hat den Nachteil: Bei vielen Daten in der entsprechenden Tabelle kann das schon was dauern. Man sollte also die Abfrage einschränken. Da gäbe es z. B.:
SQL-Code:
select first 1 * from tabelle;
select top 1 * from tabelle;
select * from tabelle where rownum <= 1;
select * from tabelle limit 1;
-- eventuell können dashier ja alle:
select * from tabelle where 1 = 2;
Irgendwie nach Jahrzehnten immernoch ein leidiges Thema
  Mit Zitat antworten Zitat
kmartin

Registriert seit: 2. Mär 2018
2 Beiträge
 
Delphi 10.3 Rio
 
#12

AW: Existiert ein Feldname einer TQuery ?

  Alt 30. Sep 2018, 18:51

SQL-Code:
-- eventuell können dashier ja alle:
select * from tabelle where 1 = 2;
Irgendwie nach Jahrzehnten immernoch ein leidiges Thema
Die letzte Lösung verwende ich in der Regel sehr gerne. Weiteres Problem zwischen verschiedenen DBMS ist die Frage, wie non Standard Tabellennamen verwendet werden.
Rechteckige Klammer oder doppelte Anführungszeichen.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Existiert ein Feldname einer TQuery ?

  Alt 30. Sep 2018, 20:09
Weiteres Problem zwischen verschiedenen DBMS ist die Frage, wie non Standard Tabellennamen verwendet werden.
Rechteckige Klammer oder doppelte Anführungszeichen.
Was meinst Du damit? Jede Datenbank hat die Tabellen(namen) die verwendet werden. Die kann man mögen oder nicht (gleiches gilt für die Zugriffskomponenten).

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#14

AW: Existiert ein Feldname einer TQuery ?

  Alt 30. Sep 2018, 21:28
Ich denke er meint Tabellennamen mit nicht alphanumerischen Zeichen aus dem ASCII Raum, also so was wie
Select * from Oma's Küchentricks
Select * from [Oma's Küchentricks] (Access)
Select * from ´Oma's Küchentricks´ (mySQL)
Select * from "Oma's Küchentricks" (Oracle)
usw.

Ich würde da dann kuechentricks drauß machen und eine Spalte für den Urheber (Oma oder andere) anlegen.
Gruß, Jo
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
109 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#15

AW: Existiert ein Feldname einer TQuery ?

  Alt 1. Okt 2018, 01:06
Meine Erfahrung ist es auch das es von DB zu Db verschieden ist.
Dies hier war ein Beispiel der sqlite ich nutze aber oft auch die Firebird. Ich meine das es da erhebliche Unterschiede gibt.
Ich habe die Sqlite für eine kleine Verwaltungssoftware genutzt die normal nur von einem Platz aus bedient wird. Sqlite ist glaube ich gelesen zu haben nicht so richtig Mehrplatz fähig... aber dafür echt leicht zu handeln
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Existiert ein Feldname einer TQuery ?

  Alt 1. Okt 2018, 07:24
Moin,

also ich kann mir im Moment kein in der Praxis relevantes Beispiel vorstellen, bei dem ich zur Laufzeit der Software noch Tabellenstrukturen anpassen müsste ... das muss doch vorher geklärt sein, maximal noch während der Entwicklung - oder?

Freilich - über die Prüfung der Felder, so wie Ihr es vorgestellt habt mit der Abfrage der FIELDS-Informationen ist das schon ok.

Grüße - und einen schönen Montag und ne gute Woche!
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.211 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Existiert ein Feldname einer TQuery ?

  Alt 1. Okt 2018, 08:17
also ich kann mir im Moment kein in der Praxis relevantes Beispiel vorstellen, bei dem ich zur Laufzeit der Software noch Tabellenstrukturen anpassen müsste
Ich schon.

Software ist nichts statisches, sondern entwickelt sich. Sei es, weil die Kunden neue Anforderungen haben (Wir brauchen hier noch die Bezeichnung in Englisch!), sei es weil sich die Welt ändert (gesetzliche Vorschriften). Möglicherweise hat auch der Softwarehersteller eine coole Idee, die bei einem Update eingebracht werden soll.

Für mich ist es eher genau umgekehrt: Es ist davon auszugehen, dass sich die Tabellenstrukturen ändern werden.
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
599 Beiträge
 
Delphi XE6 Enterprise
 
#18

AW: Existiert ein Feldname einer TQuery ?

  Alt 1. Okt 2018, 09:07
Moin,

also ich kann mir im Moment kein in der Praxis relevantes Beispiel vorstellen, bei dem ich zur Laufzeit der Software noch Tabellenstrukturen anpassen müsste ... das muss doch vorher geklärt sein, maximal noch während der Entwicklung - oder?
Naja wie TigerLilly schon schrieb, es ändert sich nicht bloß die Software, sondern auch die Datenbank im Laufe der Jahre. Wir haben dafür bei unseren Kunden eine extra Software, die diese Änderungen vornimmt. Als erstes wird natürlich gecheckt, ob noch sonst wer in der Datenbank angemeldet ist - dann wird der Vorgang abgebrochen mit einer Meldung a la "User 'Meier' noch im Programm" - und ansonsten gehts los, wie beschrieben: Felder testen und ggfs. abändern (z.B. Strings verlängern), löschen oder neu hinzufügen.

Im "normalen Betrieb" der Software wird dann aber nichts mehr angepasst.
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Existiert ein Feldname einer TQuery ?

  Alt 1. Okt 2018, 09:35
Hallo,

das ist natürlich klar, aber wenn sich die Anforderung ändert, ändert sich neben der DB natürlich auch das Programm - aber dann sind wir ja wieder an der Weiterentwicklung ...

Und ganz allgemein: Wir bauen die DB in der Regel mit den Tools, die dafür zuständig sind: MS SQL Server Management Studio, IBM System i Navigator oder meinetwegen auch mit dem tollen DBeaver. Aber aus meiner (Anwendungs-)Software heraus, hab ich das quasi noch nie benötigt. Und "Data driven software" halte ich persönlich doch eher für schwierig.

Greez
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#20

AW: Existiert ein Feldname einer TQuery ?

  Alt 1. Okt 2018, 09:41
Wohl war, aber dann sollte auch bekannt sein, in welcher View/Tabelle die Feld/Tabellen-Namen zu finden sind.
Die vorgestellte Methode ist mMn nur sinnvoll, wenn man eine Oberfläche hat, die keine Information über die darunter liegende Datenbank hat.
Außerdem gibt es Schnittstellen (ADO zB) die mit einem speziellen Befehl Informationen über die darunter liegende DB liefern.

Grüße
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 22:04 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