Results 1 to 10 of 10

Thread: BDE naar ADO

  1. #1
    Metal(lica) - fan Cryothic's Avatar
    Join Date
    Mar 2002
    Location
    Weesp
    Posts
    195

    BDE naar ADO

    Hee, ik zit met een probleempje.

    Ik heb een programma van iemand anders dat met BDE werkt, en het moet nu omgezet worden naar ADO.

    Nou gaat het met de meeste procedures wel goed met het omzetten. De meeste procedures die een TTable heeft komen ook voor in de TAdoTable.

    Nou komt het probleem:
    Op een gegeven moment wordt er gebruik gemaakt van de functies SetKey, GotoKey en GotoNearest. Ik weet dus niet precies wat die doen.

    Als iemand weet door welke functie ik die met ADOTables kan vervangen, of me uit kan leggen wat ze precies doen zodat ik zelf een ADO functie erbij zoeken, zou ik het graag horen.

    Alvast bedankt en de groeten,
    Cryothic
    Groetjes van Jeroen

  2. #2
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199
    Ik denk dat je gebruik moet gaan maken van Locate en Lookup. Functionaliteit zoals GotoKey, FindKey en GotoCurrent zijn bij ADO (helaas) verdwenen. Dit betekent dus voor het overzetten vanBDE naar ADO (zoals ik zelf ook gemerkt heb ) toch enig programmeer werk kost!
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  3. #3
    Metal(lica) - fan Cryothic's Avatar
    Join Date
    Mar 2002
    Location
    Weesp
    Posts
    195
    Ja, dat maakt opzich niet zoveel uit als het wat meer programmeer werk kost.
    Daarvoor zit ik hier tenslotte :P

    Maar als het alleen gebruikt wordt om te zoeken zou ik dan ook bijvoorbeeld Seek kunnen gebruiken?
    Groetjes van Jeroen

  4. #4
    Metal(lica) - fan Cryothic's Avatar
    Join Date
    Mar 2002
    Location
    Weesp
    Posts
    195
    ok, FindKey en GotoKey zijn vervangen door Locate.

    Maar hoe doe ik dat met FindNearest en GotoNearest?
    Die zoeken gewoon de dichtstbijzijnde waarde op, en dat kan met Locate volgens mij niet.
    Groetjes van Jeroen

  5. #5
    Wat wil je daar precies mee? Je zoekt een record en als je het niet kunt vinden, dan 'ga maar ergens in de buurt staan'? Je zou dat kunnen doen door je dataset door te lopen en op het eerste record te staan voor of na de waarde.
    Marcel

  6. #6
    Metal(lica) - fan Cryothic's Avatar
    Join Date
    Mar 2002
    Location
    Weesp
    Posts
    195
    Nou, zoals ik al eerder vermelde, het is niet mijn programma, dus de preciese bedoeling weet ik niet.
    Maar ik teste op een tabel met GotoNearest, en zocht naar 77.

    De tabel zag er ongeveer zo uit:

    40 | bla | bla | bla
    54 | bla | bla | bla
    80 | bla | bla | bla

    omdat 77 er niet in stond, gaat ie naar 80, omdat dat het dichtstbijzijnde is.

    Die functie is er volgens mij niet in een TAdoTable.
    En ik weet dus niet hoe ik dit kan vervangen.
    Groetjes van Jeroen

  7. #7
    In dit geval zou je dus naar het eerste record gaan en vervolgens steeds naar het volgende record gaan tot de waarde groter is dan 77. Dan ga je één stapje terug en je bent op het juiste record.

    Je kunt er ook op een snellere manier naar zoeken door steeds in het midden te gaan zitten. Dus ga naar de middelste regel van je dataset (bijvoorbeeld 10 van de 20) en kijk of de waarde groter of kleiner is dan de gezochte waarde. Als de waarde groter is ga je naar het midden onder (5), anders naar het midden boven (15). Als je dit blijft doen heb je altijd binnen een paar stappen het juiste record gevonden.
    Marcel

  8. #8
    Metal(lica) - fan Cryothic's Avatar
    Join Date
    Mar 2002
    Location
    Weesp
    Posts
    195
    Originally posted by Marcel
    In dit geval zou je dus naar het eerste record gaan en vervolgens steeds naar het volgende record gaan tot de waarde groter is dan 77. Dan ga je één stapje terug en je bent op het juiste record.

    ...
    Ja, maar het probleem is, als de tabel er zo uitziet:

    40 | bla | bla | bla
    70 | bla | bla | bla
    90 | bla | bla | bla

    Dan gaat ie naar 70, omdat dat het dichtst bij 77 in de buurt zit.

    En dus zou ik een procedure moeten maken maken, die naar 77 gaat, als die er niet is (Locate geeft False), dan 78 zoeken, als die er niet is 76, als die er niet is 79...

    Dat wordt ook niks.
    Groetjes van Jeroen

  9. #9
    Senior Member walterheck's Avatar
    Join Date
    Oct 2001
    Location
    Belo Horizonte, Brasil
    Posts
    4,212
    of je loopt sequentieel je tabel af en als de volgende waarde groter is dan de huidige, kijk je welke er dichter bij zit, ervoor of erna...

    Code:
    ervoorVerschil:=zoek-abs(ervoorGevonden)
    ernaVerschil:=zoek-abs(ernaGevonden)
    if ervoorVerschil >ernaVerschil then
      showmessage('erna is dichter bij' );
    else
      showmessage(' ervoor is dichter bij' );
    Nee, de Romeinen spraken geen ISO-8859-1 LATIN

  10. #10
    Metal(lica) - fan Cryothic's Avatar
    Join Date
    Mar 2002
    Location
    Weesp
    Posts
    195
    Ja, dat had ik nog niet zo bedacht,

    ik zal het eens proberen.

    Bedankt.
    Groetjes van Jeroen

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. Van MS SQL over ADO naar Excel
    By Albert Bartels in forum Databases
    Replies: 8
    Last Post: 19-Nov-04, 11:00
  2. Is er leven na BDE?
    By camdri in forum Databases
    Replies: 11
    Last Post: 29-Mar-03, 17:30
  3. Link naar post...
    By PsychoMark in forum De website
    Replies: 1
    Last Post: 23-Aug-02, 22:59
  4. Niet Synchroon lopen ADO Tables
    By TwoWalker in forum Databases
    Replies: 10
    Last Post: 05-Aug-02, 19:58
  5. BDE of ADO?
    By McTinus in forum Algemeen
    Replies: 10
    Last Post: 19-Dec-01, 16:14

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
  •