Hallo,

> -----Urspr�ngliche Nachricht-----
> Von: Joachim van de Bruck [mailto:[EMAIL PROTECTED]]
> Gesendet: Montag, 4. Februar 2002 21:48
> An: ASP Datenbankprogrammierung
> Betreff: [aspdedatabase] AW: WG: AW: Join Problem
>
>
> Hallo!
>
> Deine Haupttabelle ist "Bestellungen". Dort willst Du �ndern bzw.
> einf�gen. Also:
>
> SELECT ...
> FROM   Bestellungen RIGHT JOIN Produkte ON ...
> WHERE  ...

O.K. das hatte ich schon hingekriegt.

>
> ... liefert auf jeden Fall alle Produktdaten, auch wenn keine
> Bestelldaten vorhanden sind, oder
>
> SELECT ...
> FROM   Bestellungen LEFT JOIN Produkte ON ...
> WHERE  ...
>
> Liefert nur dann Produktdaten, wenn Bestelldaten vorhanden sind, sowie
> bestellte Produkte, die es vielleicht gar nicht gibt. ;-) In dem Fall
> w�re dann vielleicht doch ein INNER JOIN angebracht.
>
> Mit einem ClientSide-Cursor m�sstest Du jetzt auf jeden Fall Deine
> Bestelldaten einf�gen und �ndern k�nnen. Client-Side-Cursor bedeutet,
> dass ADO die Kontrolle �bernimmt, also wenn die Datenbank ein Feature
> nicht unterst�tzt, macht ADO einen Wordaraound. Dazu greift ADO auf
> Properties zu:
>
> Das Property "UNIQUE TABLE" wird in ADO verarbeitet und nicht in der
> Datenbank. Deshalb steht auch dazu nichts in der T-SQL-Dokumentation.
> Aber in der MSDN w�rdest Du eine ganze Menge dazu finden (Knowledge
> Base, ...). Dort findest Du auch Informationen zum Property "UPDATE
> RESYNC", was Du ggf. ben�tigst, damit ADO die Daten aus der verkn�pften
> Tabelle resynchronisiert.

Naja. Ich baue die DB in ACCESS auf. Damit meine ich ich mache die ganze DB
inkl. den Formularen dort.
Ich wei� nicht ob ich den Cursor also in Access setzen kann ....

>
> > EIne Frage die nun bleibt:
> >
> > Wie schaffe ich es, da� ich nicht nur die Tabelle Produkt angezeigt
> bekomme,
> > sondern z.B. die Tabelle ProduktKategorie
> (ProduktKategorie.KategorieID =
> > Produkt.ProduktKategorie) miteinbeziehen kann?
>
> Bei einem weiteren JOIN m�sstest Du wahrscheinlich mit "UNIQUE TABLE"
> arbeiten, aber vielleicht kannst Du ja die Felder einzeln einbauen,
> indem Du anstelle eines Spaltennamens ein komplettes Sub-SELECT
> einsetzt:
>
> SELECT ...,
>        (SELECT ProduktKategorie.Name
>         FROM   Produktkategorie
>         WHERE  ...),
>        ...
> FROM   Bestellungen LEFT JOIN
>        Produkte ON ...
>
> Im Sub-Select kannst Du die Verkn�pfung �ber die Where-Klausel
> herstellen. Das ist kein echter JOIN, aber mitunter sogar performanter.

JUBEL :-))) Mann da w�re ich glaube ich erst in 10 Jahren drauf gekommen.
Das geht sehr gut


>
> Auf keine Fall w�rde ich eine 3-stufige Verkn�pfung mit egal welcher
> Datenbank aktualisieren wollen. Ich bevorzuge da die "sichere" Methode
> mit mehreren SELECTs oder mit einem hierarchischen Recordset oder mit
> Stored Procedures, aber ich vermute jetzt, dass Du keine Web-Applikation
> schreibst, sondern eine VB- oder VBA-Applikation, stimmst? Im Web machst

Genau. Ich mache ein Access Projekt mit VBA.
Der Kunde bezahlt nur das und ich will erst wenn ich es so am laufen habe
vielleicht
ein VB - Projekt machen.
Ich habe mir zwar eine Webapplikation gew�nscht (Da kenn ich mich besser
aus, bzw. wei� wie ich es da "hinkriege". Leider wollte der Kunde nicht
darauf einsteigen :-(

> Du ja kein UPDATE direkt auf das Recordset, das Du f�r die Anzeige der
> Werte ben�tigst.
>
> Freundliche Gr��e
> Joachim van de Bruck
>


Vielen Dank Joachim! Du hast mir echt geholfen UND ich habe etwas mehr vom
SQL gelern (Join und so), da� ich in Zukunft sicher h�ufiger verwenden werde
:-)

Gru� Mansur
>
>
> | [aspdedatabase] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
> | Sie k�nnen sich unter folgender URL an- und abmelden:
> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
>


| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp

Antwort per Email an