![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() Morgen!
Also ganz einfach, ich lese per stored procedure aus einer Tabelle am SQL-Server Daten in ein Dataset ein. Diese gebe ich dann mit einem Repeater in einer Webform aus. Jetz möchte ich aber nur zb. jeweils 10 Einträge pro Seite haben, also muss ich entweder: - per SQL Statement limitieren - das Dataset verkleinern - oder den Repeater ein Start und Endwert beibringen Fragt sich nur, wie ich das mache ![]() Meine bisherigen Ideen: Ich kann ein pseudo limit in sql basteln (SELECT top 10 * FROM bla WHERE id not in (SELECT top 10 id FROM bla) - gefällt mir einerseits nicht, anderseits brauch ich ein paar Daten aus der ersten Zeile der Tabelle (gut, die liesen sich auch anders auslesen). Ich kann im Dataset alle Reihen einzeln löschen, die ich nicht haben will. Ja, mehr ist mir leider nicht eingefallen. Am liebsten wärs mir ein Resize vom Dataset zu machen zb von Wert 10-20, alle anderen wegwerfen oder dem Repeater eine Start- und Endposition angeben - nur geht das? und wie? Hoffe, dass mich irgendjemand versteht ![]() mfg Thomas |
![]() |
![]() |
![]() |
#2 |
Senior Member
![]() Registriert seit: 02.11.2002
Beiträge: 179
|
![]() nö nö, besser das problem an der wurzel anpacken. mysql kann das ohnehin vorbildlich: SELECT x FROM y WHERE z LIMIT offset, rowcount. und offset bzw. rowcount kannst du der stored procedure ja als parameter übergeben.
____________________________________
It\'s not a bug... It\'s a feature! You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro) |
![]() |
![]() |
![]() |
#3 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() ja mysql kann das, nur ms-sql nicht
![]() SELECT top 10 * FROM bla WHERE id not in (SELECT top 10 id FROM bla) werds wahrscheinlich aber eh so machen (müssen)... mfg Thomas |
![]() |
![]() |
![]() |
#4 |
Master
![]() |
![]() Lässt sich leider nicht anders lösen ...
Siehe hier http://www.aspheute.com/artikel/20000403.htm ist zwar classic asp, aber vergleichbar... LG Joerg |
![]() |
![]() |
![]() |
#5 |
Senior Member
![]() Registriert seit: 02.11.2002
Beiträge: 179
|
![]() sorry, nicht genau gelesen. beim MS SQL nehm ich immer
SET ROWCOUNT 100; aber das ist natürlich auch nicht besser oder schlechter als TOP.
____________________________________
It\'s not a bug... It\'s a feature! You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro) |
![]() |
![]() |
![]() |
#6 |
Master
![]() Registriert seit: 13.08.2003
Beiträge: 624
|
![]() nachdem es bei dem Geschichtl um Beiträge/Seite (ala Forum) ging, hab ich das über ein blätterbares Datagrid gelöst - mal schaun wie lang sich das bewährt
![]() mfg Thomas |
![]() |
![]() |
![]() |
#7 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() am besten, wie von den vorpostern direkt im sql statement lösen - geht zwar auch, dass man bei der fill-methode des dataset objects eine anzahl angibt, sollte man aber nicht verwenden, da hier erst clientseitig eine einschränkung gemacht wird.
also z.b. 100 sätze übertragen, aber dann nur 10 angezeigt. bevorzugte lösung kommt halt auch immer auf die datenmenge an, mit der du zu tun hast. fg -hannes |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|