Hallo!

> Hallo,
>
> wer kann mir bei unserem ASP-Problem weiterhelfen.

Ist wohl eher ein SQL-Problem, oder?

> Ich habe eine Abfrage aus 2 Tabellen, wobei die 2.Tabelle 18 mal mit
der 1.
> Tabelle verkn�pft wird. Dies geht aber nur bis zu einer
Verkn�pfungstiefe
> von 10 Tabellen gut. Sobald die 11. oder weitere Tabellen dazukommen,
> liefert die ASP-Abfrage keine Daten mehr.
> Was k�nnte das Problem sein????

Bis zu 32 Tabellen k�nnen "problemlos" verkn�pft werden, allerdings ist
ein INNER JOIN innerhalb eines OUTER JOIN nicht m�glich.

Du versuchst hier doch nur, mehrere Datens�tze der zweiten Tabelle in
eine Zeile mit der ersten zu packen. Abgesehen davon, dass das eine
Menge Schreibarbeit ist, gibt es wesentlich elegantere M�glichkeiten:

1. Benutze ein hierarchisches Recordset

ConnectionString = "Provider=MSDATAShape;Data Provider=SQLOLEDB;..."

rs.Open "SHAPE   {select * from Ausfuehrungen} as A" & _
        "APPEND ({select * from Materialien  } as B" & _
        "RELATE  ... TO ...) as subrecords", _
        ConnectionString, adOpenStatic, adLockReadOnly, adCmdText
do while not rs.Eof
   ...
   set rs1 = rs.Fields("subrecords").value
   do while not rs2.Eof
      ...
   loop
loop

Die erste Tabelle erh�lt also eine neue Spalte "subrecords", in der die
Zeilen der zweiten Tabelle als Recordset enthalten sind.

2. Benutze Sub-Selects

select * from Ausf�hrungen,
       (select ZeichNR from Materialien where MatNr = ...) as ...,
       (select MATGRP  from Materialien where MatNr = ...) as ...,
       ...
Das sind dann zwar mehr als 18 Subselects, weil Du jedes Feld einzeln
holen musst, aber die Ausf�hrung ist wesentlich schneller, weil ja die
Datenbank gar nicht erst versucht, eine Kreuztabelle zu erstellen.

3. Mach ein "ordentliches" Datenbankdesign
;-)
Die ketzerische Anmerkung, die ich mir nun doch nicht verkneifen konnte.
Bei solchen SQL-Statements kommt es fr�her oder sp�ter zu einem schweren
Unfall.

Dar�ber hinaus empfiehlt es sich - wie immer -, die Abfrage in der
Datenbank Schritt f�r Schritt zu entwickeln und in ASP/VBScript mit
Parametern abzurufen. Das klappt dann ganz viel schneller.

Freundliche Gr��e
Joachim van de Bruck





| [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