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
