Strona 1 z 1

DBGRID problem z wyciągnięciem danych.

Nowy postNapisane: poniedziałek, 10 stycznia 2011, 01:47
przez kade1982
Witam,

Mam następujący problem. Wyciągam dane z bazy danych (Interbase) do komponentu DBgrid, następnie chce zapisać te dane w formie pliku XML. Mam działające procedury na komponencie StrinGrid, lecz w przypadku DBgrid'a zauważyłem że nie da się określić ilości wierszy i wyciągać danych tak jak w StringGrid. Może któryś z kolegów spotkał się z takim problemem. Interesuje mnie czy można to jakoś obejść ? np. Konwersja Dbgrid na StringGrid ?

Całość piszę w bcb6.

Re: DBGRID problem z wyciągnięciem danych.

Nowy postNapisane: poniedziałek, 10 stycznia 2011, 11:04
przez Corvis
A jak masz zestawione komponenty ??


Czyli co masz przed TDataSource:

...???... -> DataSource -> DBGrid


DataSeta czy Query jakieś ??


Żeby to zrealizować musisz włączyć w te zestawiania komponentów: TClientDataSet on jest w stanie ci powiedzieć ile wierszy zwraca zapytanie Sql.
Napisz jak te zestawienie to ci to powiem jak to zrobić

Re: DBGRID problem z wyciągnięciem danych.

Nowy postNapisane: poniedziałek, 10 stycznia 2011, 17:03
przez kade1982
Mam:

IBTrabsaction->IBQuery->DataSource->DBGrid

kolejna nasuwająca się rzecz:
Zakładając że ustalę liczbę wierszy w DBGrid, wyciągam dane z wiersza przez DataModule->IBQuery->Fields->FieldsByNumber(numerkolumny)->Value; to i tak mam problem jak schodzić w dół z odczytem wierszy? Zrobiłem próbną pętle, ale zawsze wyciąga dane tylko z pierwszej pozycji.

W zasadzie wyświetlenie danych w DBgridzie nie jest mi koniecznie potrzebne,szukam sposobu który dane z zapytania SQL pozwoli mi zapisać do Tablicy lub StringGrid skąd sobie je wyciągnę.

Re: DBGRID problem z wyciągnięciem danych.

Nowy postNapisane: poniedziałek, 10 stycznia 2011, 23:56
przez Corvis
IBTrabsaction->IBQuery-> TDataSetProvider -> TClientDataSet ->DataSource->DBGrid

Dodaj takie coś.

DataSetProvider -> DataSet ustaw na IBQuery
ClientDataSet -> PrividerName ustaw na DataSetProvider.

i teraz kolega robi tak:

KOD cpp:     UKRYJ  
// ClientDataSet musi być otwarty przed wykonaniem tego kodu
        while(!ClientDataSet->Eof) {
                // Wyciągnięcie pól np: ClientDataSet->FieldByName("")->AsString;
                ClientDataSet->Next();
        }
 

Re: DBGRID problem z wyciągnięciem danych.

Nowy postNapisane: środa, 12 stycznia 2011, 18:35
przez kade1982
Zadziałało ! Dziękuje za pomoc.