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