AGB  ·  Datenschutz  ·  Impressum  







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

Subquery

Ein Thema von khh · begonnen am 6. Mai 2010 · letzter Beitrag vom 6. Mai 2010
Antwort Antwort
Seite 1 von 2  1 2      
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#1

Subquery

  Alt 6. Mai 2010, 10:55
Datenbank: Firebird • Version: 2.1 • Zugriff über: zeos
hallo zusammen,
mit:
SQL-Code:
select * from artprod p , artikel a
where p.artikel_id =a.artikel_id
order by p.lieferdatum desc;
fülle ich ein db-grid
nun lässt das Grid aber Änderungen nur zu, wenn die Daten aus einer einzigen Tabelle stammen.
Ich hab irgendwo gelesen dass es auch mit inner- oder outer-join funktionieren soll

Leider kenn ich mich da in der (relativ neuen) Syntax nicht aus, da wir bisher alles über Subquerys umgesetzt haben.

Danke für eure Hilfe.

Gruss KHH
Karl-Heinz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Subquery

  Alt 6. Mai 2010, 11:05
Ein impliziter Join ist immer ein Inner Join
SQL-Code:
select
    a*, p.*
from
    artprod p
        join artikel a on a.artikel_id =p.artikel_id
order by
    p.lieferdatum desc;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

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

Re: Subquery

  Alt 6. Mai 2010, 11:36
Zitat von khh:
SQL-Code:
select * from artprod p , artikel a
where p.artikel_id =a.artikel_id
order by p.lieferdatum desc;
fülle ich ein db-grid
nun lässt das Grid aber Änderungen nur zu, wenn die Daten aus einer einzigen Tabelle stammen.
Ich hab irgendwo gelesen dass es auch mit inner- oder outer-join funktionieren soll
H
ob's in Lazarus geht, weiß ich nicht ... aber in Delphi würde ich in diesem Fall Lookup-Felder nehmen.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Subquery

  Alt 6. Mai 2010, 11:46
Zitat von joachimd:
Zitat von khh:
SQL-Code:
select * from artprod p , artikel a
where p.artikel_id =a.artikel_id
order by p.lieferdatum desc;
fülle ich ein db-grid
nun lässt das Grid aber Änderungen nur zu, wenn die Daten aus einer einzigen Tabelle stammen.
Ich hab irgendwo gelesen dass es auch mit inner- oder outer-join funktionieren soll
H
ob's in Lazarus geht, weiß ich nicht ... aber in Delphi würde ich in diesem Fall Lookup-Felder nehmen.

die query mit dem join funktioniert zwar richtig um das Grid zu füllen, ein Ändern ist aber leider auch so nicht möglich.

---Cannot update a complex query with more then one table--

muss ich mir die Sache mit den Lookupfeldern wohl mal ansehen
Karl-Heinz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Subquery

  Alt 6. Mai 2010, 12:04
Hast du es mal mit einem UpdateObjekt versucht?
Markus Kinzler
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Subquery

  Alt 6. Mai 2010, 12:25
Zitat von mkinzler:
Hast du es mal mit einem UpdateObjekt versucht?
nee, gibts dazu wo ein Beispiel?
Karl-Heinz
  Mit Zitat antworten Zitat
borwin

Registriert seit: 14. Sep 2006
Ort: Rostock
72 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Subquery

  Alt 6. Mai 2010, 12:34
Welche Werte von welcher Tabelle werden denn geändert?
Du brauchst ja für jeder Tabelle ein eigenes Update.
In der Komponente kann nur ein Update angesprochen werden.
Wenn alles in einen Rutsch gehen soll, brauchst Du eine SP in der DB.
Der übergibst Du alle Parameter und die führt dann die Updates nacheinander aus.

Gruß Borwin
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Subquery

  Alt 6. Mai 2010, 12:37
Zitat von borwin:
Welche Werte von welcher Tabelle werden denn geändert?
Du brauchst ja für jeder Tabelle ein eigenes Update.
In der Komponente kann nur ein Update angesprochen werden.
Wenn alles in einen Rutsch gehen soll, brauchst Du eine SP in der DB.
Der übergibst Du alle Parameter und die führt dann die Updates nacheinander aus.

Gruß Borwin
geändert werden soll ein Feld in der Haupttabelle,
heisst aus der Subquery brauch ich nur die Artikelnummer und -bezeichnung zur Anzeige im Grid.
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
172 Beiträge
 
Delphi 12 Athens
 
#9

Re: Subquery

  Alt 6. Mai 2010, 12:49
Wenn du Zeos nutzt, kannst du TZUpdateSQL verwenden.

Einfach auf die Form packen und in der Query bei UpdateObject auswählen.
Die Kompo besitzt auch einen UpdateSQl-Editor. Da kannst du dir bequem deine
Statements zusammen klickern.
Micha
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Subquery

  Alt 6. Mai 2010, 12:52
Zitat von rapante:
Wenn du Zeos nutzt, kannst du TZUpdateSQL verwenden.

Einfach auf die Form packen und in der Query bei UpdateObject auswählen.
Die Kompo besitzt auch einen UpdateSQl-Editor. Da kannst du dir bequem deine
Statements zusammen klickern.
ja das versuch ich gerade
nach dem schema
update artprot set menge = ??? aber wie bekomme ich den Bezug zu dem geänderten feld?
Karl-Heinz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 01:24 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