Page 1 of 3 1 2 3 LastLast
Results 1 to 15 of 31

Thread: Ado 2de Regel Lezen

  1. #1

    Ado 2de Regel Lezen

    Hey,

    Ik heb een Microsoft Acces database en daar wil ik graag wat gegevens uit halen.

    Ik lees met het volgende stukje code een regel uit de DB.
    Code:
    If Adotable1.FieldByName('Status').AsString = 'Active' then 
    ....enz......
    Nu is het probleem dat ik zo alleen kan lezen wat er in de eerste regel onder de colom Status staat.

    Hoe kan ik lezen wat er in de 2de regel onder de colum Status staat?

    B.V.D

    Greetz: Delphi Man
    PS: Eerste keer dat ik met een DB werk

  2. #2
    Yay: Student(je) af
    Join Date
    Jun 2003
    Location
    Harderwijk
    Posts
    2,621
    Je gaat naar het volgende record met AdoTable1.Next ?

    Meestal doen we dit voor de hele tabel in een loopje:
    Code:
    AdoTable1.First;
    while not AdoTable1.Eof do begin
     If AdoTable1.FieldByName('Status').AsString = 'Active' then  
      DoeIets;
    end;
    AdoTable1.Next; // Let op; dit levert een exception of zelfs AV
     // omdat je aan het eind van de tabel bent (EOF) !
    My software never contains bugs. Perhaps just undocumented features.

  3. #3
    Edit: nu werkt hij (foutje van mij zat nog wat tussen)

    Maar nu leest hij nog steeds uit de eerste Regel ?
    Last edited by Delphi Man; 23-Jun-04 at 16:56.

  4. #4
    Heb nu dit

    Code:
    begin
    AdoTable1.First;
    while not AdoTable1.Eof do begin
     If AdoTable1.FieldByName('Status').AsString = 'Active' then
     ImgSat01.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'\Resources\Active.bmp');
     AdoTable1.Next;
    end;
    begin
    AdoTable1.Next;
    while not AdoTable1.Eof do begin
     If AdoTable1.FieldByName('Status').AsString = 'Active' then
     ImgSat02.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'\Resources\Active.bmp');
     AdoTable1.Next;
    Nu word bij de 2de image niks geladen terwijl er wel active in de DB staat?

    Greetz: Delphi Man

  5. #5
    Wat je doet is dat je eerst door je hele recordset heen loopt en bij active inleest in ImgSat01 en dit herhaal je tot EOF.
    Vervolgens ga je naar het volgende record (geeft AV omdat je EOF bent) en probeer je te lezen in ImgSat02, maar je bent al EOF.

    Je zult dus wat moeten veranderen aan je opzet.

    Wat is precies je bedoeling?
    De beste manier om te leren is door fouten te maken.
    80 procent van alle leugens die jij en ik vertellen blijft onopgemerkt

  6. #6
    Het is de bedoeling dat ik 1 voor 1 de status colom uitlees (steeds de volgende regel dus) uit mijn DB en dat daarbij de Plaatjes (images) Active en Inactive worden weergegeven.

    Greetz: Delphi Man

  7. #7
    Code:
    AdoTable1.First;
    while not AdoTable1.Eof do begin
      If AdoTable1.FieldByName('Status').AsString = 'Active' 
      then ImgSat01.Picture.LoadFromFile(ExtractFilePath(Application.Exename) +'\Resources\Active.bmp')
      else ImgSat02.Picture.LoadFromFile(ExtractFilePath(Application.Exename) +'\Resources\Inactive.bmp')
      AdoTable1.Next;
    end;
    Zoiets was je bedoeling?
    De beste manier om te leren is door fouten te maken.
    80 procent van alle leugens die jij en ik vertellen blijft onopgemerkt

  8. #8
    Komt in de buurt maar nee niet precies:

    ImgSat01 moet namelijk Active of Inactive laten zien (<-Status gelezen uit regel1)
    en dan moet imgSat02 ook weer Active of inactive laten zien(<-Status gelezen uit regel2)
    en dan moet imgSat03 ook weer Active of inactive laten zien(<-Status gelezen uit regel3)
    enz.

    Sorrie als ik het een beetje verwarrend uitleg zeg het maar als je niet helemaal snapt wat ik bedoel

    Greetz: Delphi man

  9. #9
    Weet je vooraf hoeveel records je hebt, en hoeveel ImgSat je moet aanmaken??? Nee dus.
    Beter is dit op een ControlGrid (DBCtrlGrid) te doen. Hierop maak je een Image aan, en afhankelijk van de waarde van dat record haal je active of inactive op.

    Daar kom je denk ik zelf wel verder uit en anders horen we het wel.
    De beste manier om te leren is door fouten te maken.
    80 procent van alle leugens die jij en ik vertellen blijft onopgemerkt

  10. #10
    Hmm dit is allemaal nieuw voor mij, Zou je een voorbeeldje voor me in elkaar kunnen timmeren (als het niet teveel moeite is)

    Ik kan die Controlgrid trouwens ook niet vinden ik zie alleen die normale DBGrid

    B.V.D

    Delphi Man.

  11. #11
    In hetzelfde menu zie je als 1 na laatste item een DBCtrlGrid.

    Als je hier eenmaal op klikt en vervolgens op F1 krijg je de help ervan, en daarbij staat een menuutje "Using TDBCtrlGrid", daar kun je alles erover vinden.

    Het lukt me niet om dit voor jouw te doen maar zelf proberen = leren en stukke leuker .... toch?
    De beste manier om te leren is door fouten te maken.
    80 procent van alle leugens die jij en ik vertellen blijft onopgemerkt

  12. #12
    Yay: Student(je) af
    Join Date
    Jun 2003
    Location
    Harderwijk
    Posts
    2,621
    Overigens had je de code die ik gaf even moeten bestuderen.

    Je gaat naar het volgende record met AdoTable1.Next ?
    Dat is dus hoe je naar de volgende record toe gaat in je code. Als je op de eerste record staat en je doet AdoTable1.Next zit je in de tweede record. Nog een keer AdoTable1.Next en je zit in de derde. Enzovoorts. Als er geen records meer zijn zit je aan het einde van de tabel. Dat wordt aangeduid met EOF (end of file). Als je EOF bent levert AdoTable1.Next een fout op omdat er geen Next record is.

    Code:
    AdoTable1.First;
    while not AdoTable1.Eof do begin
     If AdoTable1.FieldByName('Status').AsString = 'Active' then  
      DoeIets;
    end;
    AdoTable1.Next; // Let op; dit levert een exception of zelfs AV
     // omdat je aan het eind van de tabel bent (EOF) !
    Daar was ik dus even zo aardig om het vast in een while-loopje te gieten.
    Ga op while staan en druk op F1 voor hulp over de While ... Do constructie.
    Let op de EOF.
    Let op de Next BINNEN de while.
    Let vooral op het commentaar bij de Next die BUITEN de while-loop staat. Ik gaf daar al aan dat je dat dus NIET kan doen, en dat is nu precies wat jij in je code WEL deed.
    Bekijk de code nog eens goed.
    Snap je het nu?
    My software never contains bugs. Perhaps just undocumented features.

  13. #13
    Ja (denk ik) Maar dat neemt niet weg dat het niet werkt
    ookal voer ik nog zo vaak next in hij blijft uit de eerste regel lezen

    Als ik je bovenstaande code zo run (met natuurlijk de Doe iets vervangen)
    Blijft mijn app hangen, Sterker nog ik krijg niet eens mijn form te zien!

    Delphi man

  14. #14
    Yay: Student(je) af
    Join Date
    Jun 2003
    Location
    Harderwijk
    Posts
    2,621
    Welke code heb je nu dan?
    En wat bedoel je met "denk ik"?
    My software never contains bugs. Perhaps just undocumented features.

  15. #15
    Dit heb ik nu en het werkt er is alleen 1 probleem ik kan niet meer uit de eerste regel lezen

    Code:
    AdoTable1.First;
    while not AdoTable1.Eof do begin
     If AdoTable1.FieldByName('Status').AsString = 'Active' then
     ImgSat01.Picture.LoadFromFile(ExtractFilePath(Application.Exename) +'\Resources\Active.bmp');
     Adotable1.Next//<--Hier moet dus Next Staan anders krijg ik mijn form niet tezien
    end;                 //Waardoor ik dus de eerste regel niet meer kan lezen
    begin
    AdoTable1.First;
    while not AdoTable1.Eof do begin
     If AdoTable1.FieldByName('Status').AsString = 'Active' then
     ImgSat02.Picture.LoadFromFile(ExtractFilePath(Application.Exename) +'\Resources\Active.bmp');
     Adotable1.Next;
     Adotable1.Next;
     end;
    Greetz: Delphi Man
    Last edited by Delphi Man; 23-Jun-04 at 18:57.

Page 1 of 3 1 2 3 LastLast

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. ADO uit ROW Lezen
    By Delphi Man in forum Algemeen
    Replies: 4
    Last Post: 29-Jan-04, 08:21
  2. Regel uit textfile niet te lezen
    By Savage in forum Algemeen
    Replies: 10
    Last Post: 20-Oct-03, 13:30
  3. Zoek regel in DBGrid met ADO Connection
    By The Mean One in forum Databases
    Replies: 2
    Last Post: 14-Oct-03, 13:40
  4. probleem met regel lezen
    By Erik in forum Algemeen
    Replies: 2
    Last Post: 24-May-02, 16:13
  5. VCL Porten / Converteren voor Delphi 6
    By Richard in forum Algemeen
    Replies: 4
    Last Post: 12-Mar-02, 00:20

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
  •