Toon posts:

[C#] Heeft een dataSet een beperkte lengte en.....

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een query en die haalt meer dan 400 rijen op middels :
code:
1
2
3
ds = wordt gevuld!
dg.DataSource = ds.Tables[0].DefaultView;
dg.DataBind();


Er wordt niks opgehaald, zorg ik ervoor dat er minder rijen worden opgehaald (50!)
dan werkt hij wel.
Heeft een DataSet een beperkte lengte? en hoe kan ik deze grootte query alsnog uitvoeren?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Een dataset heeft voor zover ik weet geen beperkingen.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 26 augustus 2003 @ 08:42:
Een dataset heeft voor zover ik weet geen beperkingen.
Ik heb op dit moment er ook niks over gevonden op internet. Maar toch lijkt het er op. De query werkt in sql +, maar niet in C#. Wordt de query afgebakend zodat er minder rijen worden opgehaald dan werkt hij wel in C#

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

ja ergens zal je wel tegen een grens aanlopen
hoeveel data gaat het over?

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
D2k schreef op 26 August 2003 @ 08:49:
ja ergens zal je wel tegen een grens aanlopen
hoeveel data gaat het over?
406 rijen, 3 kollomen

Verwijderd

Topicstarter
DataSet wordt zo gevul:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public static DataSet SelectSingleTable (string select_string)
{
string cs = GetConnectString (); 
string dp = DataProvider (); 
DataSet ds = new DataSet();
IDbObjectFactory fa = DbFactoryBuilder.GetFactory(dp);
            using (IDbConnection co = fa.CreateConnection())
            {
                IDbCommand cm = fa.CreateCommand ();
                IDbDataAdapter da = fa.CreateAdapter ();
                co.ConnectionString = cs;
                co.Open();
                cm.CommandText = select_string;
                cm.Connection = co;
                da.SelectCommand = cm;
                da.Fill(ds);
                ds.Tables[0].TableName=table_name;
            }
            return ds;
        }


Nobody a clue?

Verwijderd

Een DataSet heeft in ieder geval geen beperkingen qua grootte.

Verwijderd

Topicstarter
Verwijderd schreef op 26 August 2003 @ 10:01:
Een DataSet heeft in ieder geval geen beperkingen qua grootte.
Dus 406 rijen moet gewoon lukken in principe?

Wanneer ik DataSet.Tables.Count doe dan geeft ie wel 1 aan (dus hij vind een table),maar DataSet.Tables[0].Rows.Count geeft ie 0 aan.

Bij een kleinere aantal records wordt de dataset wel gevuld.

Verwijderd

Sorry, er is wel een beperking.
Namelijk 16,777,216 rows :-).
Kijk maar eens in de MSDN documentatie bij DataTable...

Wat zijn je 2 queries?

[ Voor 10% gewijzigd door Verwijderd op 26-08-2003 10:19 ]


Verwijderd

Topicstarter
Verwijderd schreef op 26 August 2003 @ 10:19:
Sorry, er is wel een beperking.
Namelijk 16,777,216 rows :-).
Kijk maar eens in de MSDN documentatie bij DataTable...

Wat zijn je 2 queries?
Ik denk niet dat ik aan die beperking kom :D

Mijn 1e query is:

select naam, club, totaal from com_vspelerscores order by 3 desc;

de 2e

select naam, club, totaal from com_vspelerscores where club ='ADO Den Haag' order by 3 desc

Verwijderd

Ik neem nu aan dat de eerste niet werkt.

Probeer de simpelste vorm eens: "select * from com_vspelerscores"

Verwijderd

Topicstarter
Verwijderd schreef op 26 August 2003 @ 10:25:
Ik neem nu aan dat de eerste niet werkt.

Probeer de simpelste vorm eens: "select * from com_vspelerscores"
De eerste werkt inderdaad niet, select * werkt ook niet.

  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Heb je die query al eens in Query Analyzer of iets dergelijks geprobeerd?
Krijg je een fout? Moet / Mag die ';' daar staan?

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op 26 August 2003 @ 10:30:
Heb je die query al eens in Query Analyzer of iets dergelijks geprobeerd?
Krijg je een fout? Moet / Mag die ';' daar staan?
Ik heb exact dezelfde query in sql+ gerund en daar werkt hij prima. Hij haalt de rijen op en geeft aan dat het er 406 zijn.

Die ; komt doordat ik de query had gerund in sql+

Wanneer ik een andere query run :

Select naam, club from com_spelers

Dan werkt het wel. Deze heeft net zoveel rijen, het enige verschil is dat de query die het niet werkt, dat dat op een view is.

---------------------------------------------------------------------------------
Weer een aanpassing gedaan:

select naam, club from com_vspelerscores order by 2 desc : WERKT WEL

select naam, club, totaal from com_vspelerscores order by 2 desc : WERKT NIET!!!

De view ziet er alsvolgt uit:

select b.id, b.naam, b.club, NVL(sum(a.score),0) totaal
from com_score a
, com_spelers b
where b.id = a.spelers_id(+)
group by b.id, b.naam, b.club
---------------------------------------------------------------------------------

Iemand een flauw benul waar het aanligt.

[ Voor 68% gewijzigd door Verwijderd op 26-08-2003 10:45 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Wie is de owner van die View?
Wie is de owner van de onderliggende table?

Heeft de user die die query uitvoert, rechten op de view?

Blijkbaar ligt het aan die total-column.
Doe eens:
code:
1
select sum(nvl(waarde), 0)

ipv
code:
1
nvl(sum(waarde), 0)

[ Voor 34% gewijzigd door whoami op 26-08-2003 11:45 ]

https://fgheysels.github.io/


  • whoami
  • Registratie: December 2000
  • Laatst online: 21-08 22:54
Heb je nu al een oplossing?

https://fgheysels.github.io/

Pagina: 1