AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Wie macht das TTable-Object das?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie macht das TTable-Object das?

Ein Thema von MPirnstill · begonnen am 6. Jan 2006 · letzter Beitrag vom 9. Jan 2006
Antwort Antwort
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#1

Wie macht das TTable-Object das?

  Alt 6. Jan 2006, 11:29
Datenbank: MS-SQL-SERVER • Version: 2000 • Zugriff über: BDE
Hi Leute!

Ich bastele gerade so ein bißchen um und ändere dabei auch manche TTable in TQuery. Jetzt hab ich damals (anno domini) auch noch mit dem Feld-Editor gearbeitet und bei der TTable ein Lookup-Feld benutzt.

Wenn ich jetzt den SQL meiner TQuery so schreibe, daß die Namen aufgrund der ID im Datensatz gleich mitgelesen werden, kann ich diese Query natürlich nicht mehr updaten, da dabei ja immer nur eine Tabelle im SQL vorkommen darf.

Wie funktioniert das bei der TTable, daß die die Lookup-Info zurück gibt, man aber trotzdem zurückschreiben kann? Und wie kann ich das bei der TQuery realisieren?

Gruß

P.S.: Alles in Delphi 2.0
Micha
Ich habe fertig!

DP - hier werden Sie geholfen!
  Mit Zitat antworten Zitat
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Wie macht das TTable-Object das?

  Alt 6. Jan 2006, 11:39
Ich bin mir nicht sicher, wie die BDE das handhabt, da ich meistens mit den ADO-Komponenten arbeite.

Nehmen wir an ich habe folgende Query:

SQL-Code:
SELECT
          Tabelle1.Feld1,
          Tabelle1.FK,
          Tabelle2.Beschreibung
     FROM
          Tabelle1 INNER JOIN Tabelle2 ON Tabelle1.FK = Tabelle2.PK
Mit FK meine ich den Foreign-Key und mit PK den Primary-Key.

Ich habe dann so etwas, wie ein Lookup-Feld: das DataSet, das ich erhalte hat sowohl den Schlüssel, als auch die dazu passende Beschreibung aus Tabelle2 zurückgegeben.

Wenn z.B. das Objekt Query1 dieses ausführt kann ich ohne weiteres folgendes machen:

Delphi-Quellcode:
Query1.Edit;
Query1.FieldByName('FK').AsInteger := 2;
Query1.Post;
ausführen. Wenn ich dann Query1 refreshe, wird auch das Beschreibungsfeld automatisch neu geladen.

Gruß,
Dominik
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: Wie macht das TTable-Object das?

  Alt 6. Jan 2006, 12:04
@Dominik

Danke erstmal für deine Antwort!

Es geht mir jedoch darum, daß ich die Query dann auch weiterhin updaten kann. Und nach meiner Erfahrung kann man keine Query updaten bei der mehr als eine Tabelle in der FROM-Klausel vorkommt.

Es ist mir klar das ich die Daten, auch gleich mit den entspr. Lookup-Info anzeigen kann, nur dann kann ich eben meine Query nicht zurückschreiben, was allerdings bei einer TTable mit einem Lookup-Feld funktioniert.

Darum wollte ich wissen wie das da gehandhabt wird.

Gruß
Micha
Ich habe fertig!

DP - hier werden Sie geholfen!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Wie macht das TTable-Object das?

  Alt 6. Jan 2006, 12:14
UpdateSql verwenden. Einer TQuery Komponente kann über die Eigenschaft UpdateObject ein Instanz von TUpdateSQL zugeordnet werden.
Einem Objekt dieses Typs kann du dann Querystrings für Insert, Update, Delete konfigurieren.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von MPirnstill
MPirnstill

Registriert seit: 19. Jul 2004
Ort: Burgdorf
197 Beiträge
 
Delphi XE8 Enterprise
 
#5

Re: Wie macht das TTable-Object das?

  Alt 9. Jan 2006, 06:58
Zitat von mkinzler:
UpdateSql verwenden. Einer TQuery Komponente kann über die Eigenschaft UpdateObject ein Instanz von TUpdateSQL zugeordnet werden.
Einem Objekt dieses Typs kann du dann Querystrings für Insert, Update, Delete konfigurieren.
Das hab ich ja, aber müssen diese SQL-Anweisungen im UpdateSQL nicht auch zu dem Select in meiner TQuery passen und dementsprechend dürfte sich die SQL-Anweisung in meinem TQuery auch nur auf eine Tabelle beziehen, da sie ja sonst nicht update-fähig ist, oder? Und wenn das so ist, wie bekomme ich dann den zu meinem FK gehörigen Wert rein.

Die TTable müßte es doch eigentlich genauso machen, doch wie behandelt das TTable-Objekt die Lookup-Felder aus dem Feld-Editor?

Gruß
Micha
Ich habe fertig!

DP - hier werden Sie geholfen!
  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 11:35 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