AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit JOIN

Ein Thema von sebi87 · begonnen am 10. Jul 2008 · letzter Beitrag vom 10. Jul 2008
Antwort Antwort
sebi87
(Gast)

n/a Beiträge
 
#1

Problem mit JOIN

  Alt 10. Jul 2008, 15:35
Datenbank: Firebird • Version: 1.5 • Zugriff über: ZeosAccess
Hallo Delphianer,

ich hab hier ein Problem mit einem JOIN. Ich will Daten aus 2 Tabellen in einem Grid Darstellen und Bearbeiten

Die Daten hole ich über eine Query mit
SELECT * FROM Kunde K JOIN Bestellung B ON K.kdkey=B.kdkey; Das funktioniert auch soweit ganz gut.

Das Problem ist nur wenn ich Daten ändern will, bekomme ich eine Fehlermeldung, dass in einer zusammengesetzeten Datenmenge keine Änderungen gemacht werden können.

Wie kann ich dies lösen? Oder muss ich es einfach über ein anderes SQL-Statment machen?


Danke.

Grüßle
Sebastian
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Problem mit JOIN

  Alt 10. Jul 2008, 15:52
Verwende eine Updateobjekt (UpdateSQL) mit der Update-Anweisung.
Markus Kinzler
  Mit Zitat antworten Zitat
sebi87
(Gast)

n/a Beiträge
 
#3

Re: Problem mit JOIN

  Alt 10. Jul 2008, 16:19
Kannst du hierzu ein Beispiel Posten, ich habe noch nie mit einem UpdateObjekt gearbeitet.

Danke
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Problem mit JOIN

  Alt 10. Jul 2008, 16:22
http://www.delphi-treff.de/tutorials...rebird/page/8/
Markus Kinzler
  Mit Zitat antworten Zitat
sebi87
(Gast)

n/a Beiträge
 
#5

Re: Problem mit JOIN

  Alt 10. Jul 2008, 16:36
Das heißt ich verwende dann eine Query um die Daten in dem DBGrid anzuzeigen und mit dem UpdateObjekt das der Query zugeordnet ist ändere ich dann den entsprechenden Datensatz.

Hab ich das soweit richtig verstanden?

Wie kann ich dann jetzt wenn ich in dem Grid einen Datensatz ändere das mit dem UpdateObjekt in die DB schreiben?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Problem mit JOIN

  Alt 10. Jul 2008, 17:03
Das UpdateSQL-Objekt wird über die Eigenschaft .UpdateObject mit dem Query verbunden
Markus Kinzler
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Problem mit JOIN

  Alt 10. Jul 2008, 17:15
Eine Alternative ist...

ZConnection->ZQuery->DataSetProvider->ClientDataSet->DataSource->DBGrid

+

im OnAfterPost + OnAfterDelete:
Delphi-Quellcode:
if ApplyUpdates(0) = 0 then
  ClientDataSet.Refresh;
Dann kann über die Feldliste in der ZQuery für jedes Feld über die ProviderFlags entschieden werden ob diese nur lesend oder schreibend zur Verfügung stehen. Dort sind dann keine SQL-Anweisungen mit Parametern zu schreiben, dies geht (fast) wie von selbst.
  Mit Zitat antworten Zitat
sebi87
(Gast)

n/a Beiträge
 
#8

Re: Problem mit JOIN

  Alt 10. Jul 2008, 17:46
Hmm wie gesagt, ich habe in die Richtung noch gar nie etwas gemacht. Aber die Lösung mit dem UpdateObject scheint mir für das was ich brauche richtig zu sein.

Wenn ich das jetzt verbunden habe muss ich dann nur noch den Updatestring in das Entsprechende Feld eintragen?

Ich will nur ein Feld Updaten/Ändern wie muss ich das dann machen??
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Problem mit JOIN

  Alt 10. Jul 2008, 17:52
Im Skript nur diese Feld ansprechen
update <Tabelle> set <Feld> = :<Feld>;
Markus Kinzler
  Mit Zitat antworten Zitat
sebi87
(Gast)

n/a Beiträge
 
#10

Re: Problem mit JOIN

  Alt 10. Jul 2008, 18:06
Vielen Dank.

Funktioniert so wunderbar.

Man lernt hier einfach immer wieder viel Dazu.

Grüßle

Sebastian
  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 13:57 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