Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a) (https://www.delphipraxis.net/24031-mysql-left-join-%3D-problem-deplhi7-mysql-4-1-1a.html)

206HDI 14. Jun 2004 14:50


mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
Hallo
Ich habe folgende Abfrage per dbexpress ausgeführt:
SELECT * FROM eo_order_pos AS a LEFT JOIN eo_article AS b ON (a.article_number=b.article_number) WHERE a.order_id='1858580'
das Ergebnis ist einwandfrei :) doch wenn ich die Artikelnummer (a.article_number) ändere ein ApplyUpdates(0) ausführe und wenn ich dann ein Refresh ausführen will kommt eine Fehlermeldung ich müsse vor dem Refresh ein ApplyUpdates ausführen. Wenn ich dann dann CancelUpdates gefolgt von einem Refresh ausführe sind ALLE Artikel in der Tabelle eo_order_pos mit der "alten" article_number auf die "neue" article_number geupdatet. Die Tabelle eo_order_pos hat als Index eine Spalte pos_id und bei der Tabelle eo_article ist der Index die Spalte article_number funktioniert das mit mySQL nicht? Mit Access und *schnell duck* VB hatte es damals funktioniert ???

206HDI 15. Jun 2004 13:25

Re: mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
Kennt das Problem niemand? Oder funktioniert das bei eucht?

shmia 15. Jun 2004 13:39

Re: mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
Zitat:

Zitat von 206HDI
SQL-Code:
SELECT * FROM eo_order_pos AS a LEFT JOIN eo_article AS b ON (a.article_number=b.article_number) WHERE a.order_id='1858580'

Problem: das Feld article_number taucht 2 Mal im Dataset auf. Du müsstest die Felder genauer angeben:
SQL-Code:
SELECT a.*, b.artikelbezeichnung, b.[weitereFelder] FROM eo_order_pos AS a LEFT JOIN eo_article AS b ON (a.article_number=b.article_number) WHERE a.order_id='1858580'
Ausserdem darfst du nur Felder aus Tabelle eo_order_pos (=a.*) updaten.

206HDI 15. Jun 2004 19:31

Re: mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
Habe die Abfrage wiefolgt geändert:
Delphi-Quellcode:
SELECT a.*, b.article_name FROM eo_order_pos AS a LEFT JOIN eo_article AS b ON (a.pos_article_number=b.article_number) WHERE a.order_id='1858580'
:( aber funktioniert leider immer noch nicht bitte bitte helft mir das ganze Programm hängt an der einen Sache ... und ich weiss nicht mehr weiter habe alles mögliche durchprobiert :drunken:

206HDI 18. Jun 2004 12:20

Re: mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
Oder kann es daran liegen das ich "nur" die Personal Version habe?

Generalissimo 18. Jun 2004 12:34

Re: mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
Zitat:

Ausserdem darfst du nur Felder aus Tabelle eo_order_pos (=a.*) updaten.
Genau das ist der Punkt. Nimm ein Dataset und bau dir die genaue updateroutine auf eine tabelle

206HDI 18. Jun 2004 14:50

Re: mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
THX Also geht das Update der Abfrage nicht selbst wenn ich nur die Felder der Tabelle a ändere ... wie mache ich eine updateroutine am besten?

Generalissimo 18. Jun 2004 15:10

Re: mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
Nein geht nicht, auch wenn du nur die Felder aus "a" änderst. Da es eine verknüpfte Abfrage war, weiß nun das Update nicht wo es ändern soll, es sei denn du machst folgendes:

SQL-Code:
update eo_order_pos
set
  pos_article_number = :pos_article_number
where
  pos_article_number = :OLD_pos_article_number;
Das unter ModifySQL im Dataset-Kompo eintragen.

206HDI 19. Jun 2004 12:32

Re: mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
Erst mal Danke an alle die sich die Mühe gemacht haben mit zu helfen :)

Zitat:

Das unter ModifySQL im Dataset-Kompo eintragen.
Also ich habe ein Client-Dataset und ein SQLDataset ich nehme an ich muss es im SQLDataset eintragen doch ich finde ModifySQL nicht. Sollte es einen Menupunkt im Object Inspector sein?

Generalissimo 19. Jun 2004 20:15

Re: mySQL + Left Join = problem? (Deplhi7 / mySQL 4.1.1a)
 
kann auch UpdateSQL oder so ähnlich heißen. Bei IBX-Kompos hies das so. Sorry.
Du kannst das selbe aber auch mit ner UpdateSQL Kompo hinbekommen. Müsste eigentlich überall dabei
sein.

Was für Zugriffkompos nutzt du denn?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 Uhr.
Seite 1 von 2  1 2      

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