[ sanivr @ 29.11.2012. 15:42 ] @
Imam sledeci zadatak da odradim. Ima neka vec popunjena baza (access) sa nekoliko kolona od koja jedna je datum radjanja, druga kolona je imaNad29. Program treba da oduzme danasnji datum (DD.MM.GGGG) - datum radjanja i ako je razlika 29 ili vise treba u kolonu imaNad29 staviti 1. Mene zanima samo kako je to najdobro uraditi jer bazu koju sam dobila je dosta velika i nacin na koi sam uradila mislim da je pogresan. Ovo sam radila pred da nadjem funkcije za oduzimanje datuma. Sada kad znam funkcije lako ku dobiti godina koliko ima, samo kada to proveravati i kako proveravati. Ja sam radila na sledeci nacin. Hvala na odovoru (inace ne mogu da definiram ime na temu pa moderator ako ima bolju ideju nek promeni i izvinjavam se zbog toga).

Code:

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
AnsiString Upit = "SELECT * FROM Us WHERE Korisnik";
ADOQuery1->SQL->Add( Upit );
ADOQuery1->Open();

int pg,pd,pm;
AnsiString roden=Date().DateString();
AnsiString pom;
pom=roden.SubString(7,4);//pocetna godina
pg=atoi(pom.c_str());
pom=roden.SubString(4,2);//poceten mesec
pm=atoi(pom.c_str());
pom=roden.SubString(1,2);//poceten den
pd=atoi(pom.c_str());
int pocetak=  pg*365+pm*31+pd-10219;
AnsiString Godini=pocetak;


ADOQuery2->Close();
ADOQuery2->SQL->Clear();
AnsiString Upit1 = "UPDATE Baza SET ImaNad29='1' WHERE datumbr< '" + Godini + "'";
ADOQuery2->SQL->Add( Upit1 );
ADOQuery2->ExecSQL();


[Ovu poruku je menjao sanivr dana 29.11.2012. u 17:06 GMT+1]
[ djoka_l @ 29.11.2012. 16:25 ] @
Code (sql):

UPDATE ime_tabele
SET ImaNad29 = 1
WHERE DateDiff("yyyy", DATE(), datumbr) >= 29
 
[ sanivr @ 29.11.2012. 16:40 ] @
Dali to da radi svako startovanje, jednom dnevno i sl...to nikud nije navedeno ali eto da pitam kako bi bilo najbolje...
[ djoka_l @ 29.11.2012. 21:59 ] @
Citat:
UPDATE ime_tabele
SET ImaNad29 = 1
WHERE DateDiff("yyyy", DATE(), datumbr) >= 29

Sto je to "yyyy" sto tacno znaci to? Jer kad sam ga ja stavila kaze mi kao nemam default value? DATE() je funkcija koja daje danasnji dan, datumbr je kolona u bazi u koji je zapisan datum rogenja jer da?
Odgovori Odgovori sa citatom


Nije u redu da me cimaš preko privatne poruke za ono što si pitala na forumu, nego pitanje postaviš u istoj temi gde je i ostatak diskusije.

Kako DateDiff radi: http://office.microsoft.com/en...diff-function-HA001228811.aspx

[ Mihajlo Cvetanović @ 30.11.2012. 09:32 ] @
Treba razjasniti da li ovo 29 predstavlja godine, dane, ili nešto treće. Meni se čini da su u pitanju dani.
[ sanivr @ 09.12.2012. 16:58 ] @
29 prestavlja godine... radila sam drugi deo proekta. Izvinjavam se @djoka_l, procitala sam to i pred ali nesta sam obrnula i nije radilo pa za sitnicu sam ti napisala, ali izvinjavam se...znaci ostaje pitanje gde umetnuti to, kad to da proverava? Hvala

[Ovu poruku je menjao sanivr dana 09.12.2012. u 18:21 GMT+1]