Results 1 to 7 of 7

Thread: Gedeelte van een Query result doorgeven naar een ADOQuery

  1. #1
    Senior Member erathus's Avatar
    Join Date
    Jul 2001
    Location
    Gent - Belgium
    Posts
    127

    Gedeelte van een Query result doorgeven naar een ADOQuery

    Hi!!

    Voor het werk moet ik een app schrijven die van een remote sql server een resultset terug geeft. Nu, dit lukt zolang er geen 200mb(ik zeg maar iets) aan data in zit.
    Nou vraag ik me af is er een mogelijkheid zoals er bij een select top 1000 het eerste deel meegegeven wordt een Select Top 1000 Startting at 1000 of zo mee te geven zo dat ik de result in verschillende delen kan binnen halen.....

    Of heeft er iemand een IDee hoe ik die reusachtige hoeveelheid data naar de client PC krijg?
    De bedoeling is dat de data kan geexporrteerd worden...

    Alleez, in elk geval bedankt op dit hier te lezen en mocht iemand een id-tje hebben dan...

    Take care,
    Vincent
    Take care,
    Erathus

  2. #2
    Senior Member erathus's Avatar
    Join Date
    Jul 2001
    Location
    Gent - Belgium
    Posts
    127
    Btw, het is een SQL 2000 server...
    Take care,
    Erathus

  3. #3
    Senior Member walterheck's Avatar
    Join Date
    Oct 2001
    Location
    Belo Horizonte, Brasil
    Posts
    4,212
    gebruik een clientdataset met de properties Packetrecords en FetchOndemand...

    fetchondemand geeft aan dat hij alleen records gaat ophalen als dat nodig is, en packetrecords geeft aan hoeveel records hij per keer gaat versturen. LET OP: als je bv een DBGrid hebt dat 30 recs weergeeft en je packetrecords staat op 20 haalt hij er toch 30 op...

    packetrecords = -1 zegt haal alle records op...

    BTW: is dat niet een heel erg grote hoeveelheid data? dat moet toch ook wel minder kunnen zou je zeggen?
    Nee, de Romeinen spraken geen ISO-8859-1 LATIN

  4. #4
    Dat is (denk ik) geen oplossing omdat dan eerst alle record naar de TQuery worden geladen, pas vanaf dat punt worden dan de eerste X regels naar de ClientDataSet verstuurd. Heeft MS SQL geen LIMIT X,Y mogelijkheid in een SQL statement?

    In MySQL of Interbase kan ik bijvoorbeeld "select <fields> from <tabel> limit 0, 20" gebruiken. Als je dat in combinatie met de ClientDataSet mogelijkheid gebruikt zorg je er inderdaad voor dat alleen de betreffende regels over het lijntje komen. Als MS SQL dat niet ondersteund in een gewoon SQL statement zou je daar een stored procedure voor kunnen schrijven.
    Marcel

  5. #5
    Senior Member erathus's Avatar
    Join Date
    Jul 2001
    Location
    Gent - Belgium
    Posts
    127
    Hoi!!

    Heb het gevonden dank zij mijn collegas op het werk. Maar toch bedankt voor de inspanning.
    Een ADOQuery heeft een CursorLocation property en een Cursortype property.
    Code:
        CursorLocation = clUseServer
        CursorType = ctOpenForwardOnly
    En zo wordt het mogelijk een result terug te krijgen van zo'n 700000 records die je dan een voor een binnen kan nemen..; (leuk he)

    Take care
    Take care,
    Erathus

  6. #6
    Senior Member walterheck's Avatar
    Join Date
    Oct 2001
    Location
    Belo Horizonte, Brasil
    Posts
    4,212
    M: ook als je de property commandtext van de cds gebruikt om de query door te geven aan de server en niet de TQuery? (dus een tquery met een lege SQL command, daaraan je datasetprovider en daaraan je cds met cds.commandtext=<SQLCommando>
    Nee, de Romeinen spraken geen ISO-8859-1 LATIN

  7. #7
    Yep, dan nog steeds. Of je moet dat combineren met de ADO oplossing van erathus.
    Marcel

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. CTTM 2003
    By Marcel in forum Koffiehoek
    Replies: 26
    Last Post: 02-Jun-03, 13:02

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •