[delphi] Gegevens uit database ophalen

Pagina: 1
Acties:

  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Ik ben nou niet advanced op het gebied van Delphi, en heb pas het me mogelijk gemaakt om met een MySQL database te connecten en alle gegevens in een DBGrid te laten zien. Maar hier komt mijn probleem.
Ik ben er niet in gelukt om daar info uit te halen. Bijv, in colom 3 en rij 5 staat een sting, die wil ik graag hebben. Maarja, hoe?!
Ik vind het sowieso erg uitgebreid, als ik een SQL query aanroep, waar bijv. maar één resultaat uit kan komen, om dat eerst in een DBGrid te proppen, en dan uitlezen. Kan dat sneller?
Kortom, ik zoek een makkelijke manier, om snel data uit te lezen, zonder dat daar iets visueels aan te pas hoeft te komen. Ik wil gewoon bijv. met een array met strings eindigen, die ik uit een kolom of rij heb gehaald.
Welke manieren zijn daarvoor, en hoe moet ik dat fixen?

[ Voor 4% gewijzigd door bgever op 25-01-2003 15:53 ]


  • LordLarry
  • Registratie: Juli 2001
  • Niet online

LordLarry

Aut disce aut discede

Nee, je moet nooit je resultaat ui een grid lezen.
Er zijn verschillende manieren om de waarde van een veld op de huidige regel binnen Delphi te krijgen. Zoals bijvoorbeeld:
Delphi:
1
Waarde := JouwTDataSetOfAfgeleideComponent.FieldByName('VeldNaam').AsString;

Je kan van record verplaatsen met de volgende functies:
Delphi:
1
2
3
4
5
  JouwTDataSetOfAfgeleideComponent.Next;
  JouwTDataSetOfAfgeleideComponent.First;
  JouwTDataSetOfAfgeleideComponent.Locate(.....); // Voor het verspringen op een veld=waarde conditie
  if JouwTDataSetOfAfgeleideComponent.EOF then
    // Je bent aan het einde van de collectie

We adore chaos because we like to restore order - M.C. Escher


  • bgever
  • Registratie: April 2002
  • Laatst online: 28-05-2021
Dus als ik het goed begrijp, kun je met de dataset alle velden na gaan?
Er zijn verschillende manieren om de waarde van een veld op de huidige regel binnen Delphi te krijgen
Staan die toevallig ergens in de help? Zou je misschien een hint kunnen geven, zodat ik dat eventueel zelf uit zoek?

[edit]
De functie fieldbyname() heb ik niet kunnen zien in het lijstje als ik na de dataset een punt zette. Waar kan ik wel die functies vinden die ik kan gebruiken?

[edit2]
* bgever heeft het al gevonden in de help van Delphi. Thnx anyway ;)

[ Voor 30% gewijzigd door bgever op 25-01-2003 16:49 ]


Verwijderd

Koop eens een goed Delphi boek, bv. de 'mastering delphi' boeken van Marco Cantu.

Je vraag is niet alleen te basic, het is ook teveel om hier zo even uit te leggen. Er zijn in delphi honderden manieren om data uit een database te halen, in principe is dat zelfs what delphi's all about.

Toch even een korte tip.. als je een dbStringgrid hebt, zet dan eens bij de options de 'rowselect' aan. Als dan iemand op een bep. veld klikt, selecteert de dataset automatisch het bijbehorende record uit je query. Stel iemand klikt op de 5e rij, column 3 en het daar weergegeven veld heet 'naam', dan kun je de waarde van dit veld als volgt ophalen:
cNaam:=qryMijnQuery.FieldByName('naam').AsString.
Nog een tip: klik ook eens met de rechtermuisknop op je queries..

Onderschat de help-functie in Delphi nooit, bijna alles is er in te vinden, incluis voorbeelden.

Als je een gerichte vraag hebt, dan post je 'm hier.. maar om hier nou een complete uitleg van een taal te gaan vragen..

[ Voor 16% gewijzigd door Verwijderd op 25-01-2003 16:47 ]