Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Izoliranje samo jednog polja u DBgrid-u

[es] :: C++ programiranje :: Izoliranje samo jednog polja u DBgrid-u

[ Pregleda: 1000 | Odgovora: 10 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

coosaduck
Aleksandar Markicevic
Kusadak

Član broj: 86772
Poruke: 27
*.vdial.verat.net.



Profil

icon Izoliranje samo jednog polja u DBgrid-u04.03.2006. u 18:14

Poceo sam malo da ucim base podataka i nije mi jasno sledece:

DbGrid ima svoje dogadjaje ali kako da izdvojim samo jedno polje u DBGridu-i da samo njega ispitujem. Na primer : ako je ako je polje koje se nalazi u prvom redu u prvoj koloni prazno upisi u labelu neki broj.
Ne znam da li me razumete. Hvala Unapred.
04.03.2006. u 18:14 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 3403
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u04.03.2006. u 18:59
Kod baza podataka je bitno da razumes da je u JEDNOM trenutku OBELEZEN ZA
CITANJE samo JEDAN red (slog) neke TABELE ili SETA PODATAKA.

Dakle, treba ti dogadjaj koji ce da se izvrsi kada prolazis kroz slogove.

Taj dogadja se NE ODNOSI na TABELU ili SET PODATAKA nego na DATA SOURCE
koji je veza izmedju TABELE i DBGRIDA.

OnDataChange()

Code:

void __fastcall TForm1::TvojDataSourceDataChange(TObject *Sender,
      TField *Field)
{
   // OVDE TREBA DA DOJE TVOJ KOD KOJI CE DA ISPITA DA LI JE NEKA VREDNOST
   // NEKOG POLJA OVO ILI ONO
}


Dalje, pojam PRAZNO POLJE je dvosmislen kod baza podataka.

Na primer, NEINICIJALIZOVANO polje se ispituje medtodom IsEmpty(), ili IsNull(),
ne secam se vise.

Drugo, ako je vec bilo nekih podataka u tom polju pa si ih kasnije obrisao sa DEL,
to nije isto iako se isto vidi! Daklem NE-INICIJALIZOVANO != "".

Ne znam da li je to ono sto si mislio.


FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
04.03.2006. u 18:59 

coosaduck
Aleksandar Markicevic
Kusadak

Član broj: 86772
Poruke: 27
*.vdial.verat.net.



Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u05.03.2006. u 09:52
Znao sam da on gleda jedan red ali ja u tom jednom redu imam dva polja koja treba posebno da izdvojim .Da li je to moguce?
05.03.2006. u 09:52 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 3403
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u05.03.2006. u 12:53
Postoji funkcija Bookmark() kojom mozes da OBELEZIS meki slog (ili vise slogova
sa vise Bookmark()-ova) i da se po potrebi vratis na njega i nesto uradis.

FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
05.03.2006. u 12:53 

coosaduck
Aleksandar Markicevic
Kusadak

Član broj: 86772
Poruke: 27
213.244.197.*



Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u05.03.2006. u 17:13
Vazi.Probacu nesto
05.03.2006. u 17:13 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 3403
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u05.03.2006. u 17:20
Najbolje je da konkretno kazes sta hoces da uradis. Mozda postoji neki prirodniji
nacin za to sto zelis.

U bazam podataka za (razliku od od SpreadSheet programa: Excel) retko se koristi
pojam o NEKOM FIKSNOM redu (slogu).


FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
05.03.2006. u 17:20 

seymour
Novi sad

Član broj: 57634
Poruke: 64
..mtsns-ns.customer.sbb.co.yu.

Sajt: www.extrafull.com


Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u05.03.2006. u 17:23
Da li ti je pitanje kako da selektujes neku kolonu koja pripada nekom slogu u DBGridu?Ako jeste onda treba da uradis sledece(pretpostavljam da si vezao datasource za dbgrid ):
Code:

AnsiString st=DBGrid->DataSource->DataSet->Fields->FiledByName("ime kolone u bazi")->AsString;
if (st==NULL || st=""){
 //radi vec sta treba da uradis
}

Ako ti se kolona zove IME_PREZIME onda ce biti FieldByName("IME_PREZIME")
imas i funkciju FieldByNumber (recimo DBGrid->DataSource->DataSet->Fields->FieldByNumber(1)->AsString),samo index koji se prosledjuje kao parametar nije redni broj kolone u dbgridu nego index te kolone u tabeli u bazi.
05.03.2006. u 17:23 

itf
Zagreb

Član broj: 59794
Poruke: 778
*.fsb.hr.

ICQ: 337738018


Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u06.03.2006. u 15:53
Nezna da li je itko primjetio, ali DBGrid ocito ima gresku kada se pokusavaju u bazu upisati podaci primljeni preko mreze (u OnExecute funkciji u IndyServer komponenti). Tada javi da su argumenti pogresni i sl.. samo zato jer je DBGrid prikazan. Kada stavite DBGrid->Visible = 0 tokom upisa u bazu tada sve radi bez greske (nakon upisa opet staviti DBGrid->Visible = 1). Znaci, ne smije biti vidljiv tokom upisa u bazu. Zanimljiv bug...
06.03.2006. u 15:53 

coosaduck
Aleksandar Markicevic
Kusadak

Član broj: 86772
Poruke: 27
213.244.197.*



Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u06.03.2006. u 17:54
Evo objasnicu vam ovo malo bolje.Na Primer imam tabelu:

Broj Ime Prezime Godistem prazna kolona Broj Ime Prezime Godistep

1 ime1 prezime1 Godiste1 prazna kolona1 6 ime6 prezime6 Godiste6
2 ime2 prezime2 godiste2 prazna kolona2 7 ime7 prezime7 Godiste7
3 ime3 prezime3 Godiste3 prazna kolona3 8 ime8 prezime8 Godiste8
4 ime4 prezime4 Godiste4 prazna kolona4 9 ime9 prezime9 Godiste9
5 ime5 prezime5 godiste5 prazna kol.5 10 ime10 prezime10Godiste10

godiste jedan mi je 1990
godiste sest mi je 1980
Moj zadatak je da kada stanem na polje Godiste1 i stisnem Enter da mi se u labeli ispise Osoba nije punoletna.Isto tako kada stanem na polje Godiste6 i stisnem Enter da mi se u labeli ispise Osoba je punoletna.

E sad, u DBGrid1KeyDown-u sam napisao

if(Key==13)
{
AnsiString god1=Table1->FieldByName("Godistem")->AsString;
AnsiString god6=Table1->FieldByName("Godistep")->AsString;

if(god1=="1990") Label1->Caption="Osoba nije punoletna";
if(God6=="1980") Label1->Caption="Osoba je punoletna";

}

Kada stanem na bilo koje polje u drugom redu i stisnem enter program proverava ceo red i ispisuje zadnji prolazak kroz if funkciju a to je "Osoba je punoletna".
Nadam se da me razumete i da ce te mi pomoci.Unapred zahvalan Coosaduck.
06.03.2006. u 17:54 

seymour
Novi sad

Član broj: 57634
Poruke: 64
..mtsns-ns.customer.sbb.co.yu.

Sajt: www.extrafull.com


Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u06.03.2006. u 18:58
Iskoristi OnCellClick event u TDbGrid-u:
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
int vred=Column->Field->AsInteger;
if (vred>1988) Label1->Caption="Osoba nije punoletna";
else Label1->Caption="Osoba je punoletna";
}

Nisam testirao,ali mozda ce da radi :).Sve u svemu eksperimentisi sa ovim eventom i fujama koje sam ti napisao i TColumn klasom...
06.03.2006. u 18:58 

coosaduck
Aleksandar Markicevic
Kusadak

Član broj: 86772
Poruke: 27
213.244.197.*



Profil

icon Re: Izoliranje samo jednog polja u DBgrid-u07.03.2006. u 18:07
Ja sam radio ovaj program za bazom u nekom praistorijskom Borlandu koji nije imao OnCellClick evant.Pogledao sam u Borlandu 2005 i ima.Tako da sam resio problem.Hvala
07.03.2006. u 18:07 

[es] :: C++ programiranje :: Izoliranje samo jednog polja u DBgrid-u

[ Pregleda: 1000 | Odgovora: 10 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.