• 6 odgovora
  • 4.524 pregleda
Selecting * from DBgrid 24.09.2003. u 17:37 · pre 281 meseci #1

Pozdrav svima,

Kako u kodu izaberem sve sto iz baze ucitam u DBgrid? Npr, ako ucitam gomilu integera u dBgrid, kako bih mogao da ih izvucem u niz?

Unapred zhvalan, erekoz
Re: Selecting * from DBgrid 24.09.2003. u 18:44 · pre 281 meseci #2
Iteriraj kroz dataset i dodaj vrednost polja u niz.
Re: Selecting * from DBgrid 24.09.2003. u 19:17 · pre 281 meseci #3

Hajde samo malo detaljnije, molim te...
Re: Selecting * from DBgrid 24.09.2003. u 21:15 · pre 280 meseci #4
Podatke mozes direktno da ocitavas iz DataSeta npr. na sledeci nacin:

Code:
DBGrid.DataSource.DataSet.Fields[x].Text

U svakom slucaj potrazi u helpu TDataSet za sve property-je i metode.
Re: Selecting * from DBgrid 24.09.2003. u 22:49 · pre 280 meseci #5
Ili probaj jednostavno iz Data Seta (posto sa dbgridom moze da bude malo komplikovanije).

Pustis petlju
repeat

code za pravljenje niza

until RS.EOF
Re: Selecting * from DBgrid 07.10.2003. u 00:00 · pre 280 meseci #6
Ako trebas da pokupis integere iz recordseta mozes sa TStringList
procedure GetFieldsToArray(rst:TDataSet;fld:TField):TStringList;
var
lst:TStringList;
begin
if not rst.Active then rst.active := True;
if not rst.FindField(fld) then exit;
lst := TStringList.Create;
rst.First;
while not rst.EOF do
begin
lst.Add(rst.FieldByName(fld.FieldName).AsString);
rst.Next;
end;
result := lst;


end;

a mozes i da kreiras niz umesto lst
var
arr : array of Integer;
iCount, i :Integer;
begin
iCount := rst.RecordCount;
SetLength(arr,iCount);
for i := 0 to iCount-1 do
begin
arr := rst.FieldByname(fld.Name).AsInteger;
rst.Next;
end;
Re: Selecting * from DBgrid 07.10.2003. u 08:57 · pre 280 meseci #7
Citat:
bogiboy:

a mozes i da kreiras niz umesto lst
var
arr : array of Integer;
iCount, i :Integer;
begin
iCount := rst.RecordCount;
SetLength(arr,iCount);
for i := 0 to iCount-1 do
begin
arr := rst.FieldByname(fld.Name).AsInteger;
rst.Next;
end;


Nije moguce kod svih baza raditi sa RecordCount posto on kod nekih (za Interbase znam sigurno) ne vraca ukupan broj redova vec samo koliko je trenutno povuceno iz baze, a to je kod upita sa vecim rezultatom uvek manje od ukupnog broja redova.

P.S. Znam da je bogiboy ovo naveo samo kao primer, ali za svaki slucaj :)

Pozdrav
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme