delphi: uit database datum halen

Pagina: 1
Acties:

  • robbertb
  • Registratie: September 2000
  • Niet online
Ik had hier al een topic over staan maar hij werd ineens dichtgegooid(http://gathering.tweakers.net/forum/list_messages/144381/1?limit=25). ik ben nog niet zo bekend met delphi dus wist nite dat het zo eenvoudig was om datum te vergelijken (met groterdan en kleiner dan teken).
Maar het gaat me nu om hoe ik die datum nou uit de datbase haal, gezien ik met de locate functie pass en login controleer:
code:
1
2
3
4
If dataset.Locate('Naam;Passwd',varArrayof([Naam, Passwd]), [LocaseInsensitive]) then
   begin

      Form3.show;

Dus hij gaat de database af en hij kijkt of de record
Admin admincode
bestaat die je bij inlogge hebt meegegeven. Maar nu moet hij dus ook naar een 3e kolom kijken, waarin een datum staat tot wanneer deze geldig is.. hoe doe ik dat?

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:11
Bekijk eens de help van Delphi. Bekijk dan vooral de member-functies van TDataSet, TQuery, TTable... Of ga een tutorial doen over database access in Delphi of lees een boek.

https://fgheysels.github.io/


  • robbertb
  • Registratie: September 2000
  • Niet online
mja die tutorial heb ik al gedaan op school enzo, is voor projectje maar kom er niet uit. heb de help al bekeken.

ik moet dus weten op welke rij die zit na die locator functie en dan uit de database halen wat er in de kolom ernaast staat

  • whoami
  • Registratie: December 2000
  • Laatst online: 21:11
Eh? :?

Je wilt dus eigenlijk gewoon een rij uit uw tabel ophalen waarvan een bepaald (datum)veld bv 20-05-2002 is?

Gebruik dan gewoon een TQuery component, zet je SQL code erin en gebruik dan de FieldByName() functie om de waarde uit te lezen.

https://fgheysels.github.io/


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 22:44

Tomatoman

Fulltime prutser

Tip: let op hoofdlettergebruik, leestekens en spaties. Niet noodzakelijk voor Delphi, wel een goede gewoonte.

Ik ga er even vanuit dat DataSet een TBDEDataSet is en je account op dit moment nog geldig moet zijn. Now() is een functie in de SysUtils unit.
code:
1
2
3
4
5
6
7
8
9
10
if DataSet.Locate('Naam;Passwd', VarArrayOf([Naam, Passwd]),
  [loCaseInsensitive]) then
begin
  if DataSet.FieldByName('GeldigTot').AsDateTime >= Now then
    // geldige account
  else
    // account verlopen
end
else
  // accountgegevens onbekend of incorrect

Het wachtwoord is trouwens hoofdletterongevoelig!

[Edit] klein foutje hersteld

Een goede grap mag vrienden kosten.


Verwijderd

Dit is natuurlijk een prima oplossing, maar toch denk ik dat Queries (SQL) lekkerder werkt. Althans, dat vind ik.

  • robbertb
  • Registratie: September 2000
  • Niet online
Op dinsdag 04 juni 2002 23:47 schreef tomatoman het volgende:
Tip: let op hoofdlettergebruik, leestekens en spaties. Niet noodzakelijk voor Delphi, wel een goede gewoonte.

Ik ga er even vanuit dat DataSet een TBDEDataSet is en je account op dit moment nog geldig moet zijn. Now() is een functie in de SysUtils unit.
code:
1
2
3
4
5
6
7
8
9
10
if DataSet.Locate('Naam;Passwd', VarArrayOf([Naam, Passwd]),
  [loCaseInsensitive]) then
begin
  if DataSet.FieldByName('GeldigTot').AsDateTime >= Now then
    // geldige account
  else
    // account verlopen
end
else
  // accountgegevens onbekend of incorrect

Het wachtwoord is trouwens hoofdletterongevoelig!

[Edit] klein foutje hersteld
Geweldig, thanx dit zocht ik!!
En ik weet dat wachtwoord hoofdletter ongevoelig is, dit ovnd ik ook vreemd maar was de opdracht..
Pagina: 1