Thread View: pl.comp.lang.delphi.bazy-danych
4 messages
4 total messages
Started by lordbz
Sat, 28 Jul 2018 10:42
Dane, dbgrid i sql - prośba o radę
Author: lordbz
Date: Sat, 28 Jul 2018 10:42
Date: Sat, 28 Jul 2018 10:42
39 lines
2789 bytes
2789 bytes
Witam grupowiczów
Mimo upału trzeba starać się myśleć :-) Myślę ale .... proszę o poradę
Jest sobie kodzik:
////
with IBQuery, SQL do
begin
Close;
Clear;
Add('SELECT ucz.imie, ucz.nazwisko, ucz.id_uczestnik, uczestzaj.id_zajecia FROM instruk,ucz, uczestzaj ');
Add('WHERE INSTRUK.id_instruk =:id_instruk AND uczestzaj.id_uczestnik = UCZ.id_uczestnik AND UCZESTZAJ.id_instruk = INSTRUK.id_instruk ');
ParamByName('id_instruk').AsString := IntToStr(dbtxtID_INSTRUK.Field.Value);
Open;
end;
// i po kodziku
1. baza firebird 2.5
2. tabele: ucz, instruk, uczestzaj
3. jeden człowieczek z tabeli ucz może mieć jednego lub więcej instruktora z tabeli instruk (poprzez uczestzaj)
Obsługiwacz programu klika na Grida na wybrany wyświetlany rekord (dla zdarzenia OnCellClick) i ten wybrany rekord (jego wartość pola id_instruk) wyświetla się w dbtxt . Proste !
Oczywiście dataset dla DBGrida i dbtxt wskazuje to samo źródło.
Skoro DBGrid służy do wyświetlenia danych ale nie przetrzymuje danych jako takich (tu mamy dataseta) to czy bezpiecznie jest pobrać wartość z dbtxt (która się pojawi przecież po kliknięciu jakiegoś rekordu na siatce) celem dalszej obróbki ???
Np: pobieram sobie wskazaną przez dbtxt wartość id_instruk i wykonuję update innej tabel.
Wydawać by się mogło że jest bezpiecznie ale czuję jakiś wewnętrzny niepokój ;-)
pozdrawiam
Przemek
Re: Dane, dbgrid i sql - prośba o radę
Author: J-23
Date: Thu, 02 Aug 2018 18:54
Date: Thu, 02 Aug 2018 18:54
47 lines
2779 bytes
2779 bytes
W dniu 28.07.2018 o 12:42, lordbz pisze:
> Witam grupowiczów
>
>
> Mimo upału trzeba starać się myśleć :-) Myślę ale .... proszę o poradę
>
> Jest sobie kodzik:
>
> ////
> with IBQuery, SQL do
> begin
> Close;
> Clear;
> Add('SELECT ucz.imie, ucz.nazwisko, ucz.id_uczestnik, uczestzaj.id_zajecia FROM instruk,ucz, uczestzaj ');
> Add('WHERE INSTRUK.id_instruk =:id_instruk AND uczestzaj.id_uczestnik = UCZ.id_uczestnik AND UCZESTZAJ.id_instruk = INSTRUK.id_instruk ');
> ParamByName('id_instruk').AsString := IntToStr(dbtxtID_INSTRUK.Field.Value);
>
> Open;
>
> end;
>
>
> // i po kodziku
>
> 1. baza firebird 2.5
> 2. tabele: ucz, instruk, uczestzaj
> 3. jeden człowieczek z tabeli ucz może mieć jednego lub więcej instruktora z tabeli instruk (poprzez uczestzaj)
>
> Obsługiwacz programu klika na Grida na wybrany wyświetlany rekord (dla zdarzenia OnCellClick) i ten wybrany rekord (jego wartość pola id_instruk) wyświetla się w dbtxt . Proste !
>
> Oczywiście dataset dla DBGrida i dbtxt wskazuje to samo źródło.
Skoro wskazuje to samo źródło to jest to bezpieczne bo kontrolka dbtxt
jest z gatunku DB (o ile cię dobrze zrozumiałem)
A to oznacza że kontrolka DB steruje DataSetem równie dobrze możesz
odwołać się bezpośrednio do DataSet i będziesz miał tą samą wartość
która jest w dbtxt.
>
> Skoro DBGrid służy do wyświetlenia danych ale nie przetrzymuje danych jako takich (tu mamy dataseta) to czy bezpiecznie jest pobrać wartość z dbtxt (która się pojawi przecież po kliknięciu jakiegoś rekordu na siatce) celem dalszej obróbki ???
>
Tak jak pisałem wyżej
Pozdrawiam
J-23
Re: Dane, dbgrid i sql - prośba o radę
Author: wloochacz
Date: Fri, 03 Aug 2018 20:20
Date: Fri, 03 Aug 2018 20:20
23 lines
2158 bytes
2158 bytes
W dniu 2018-07-28 o 12:42, lordbz pisze:
> Skoro DBGrid służy do wyświetlenia danych ale nie przetrzymuje danych jako takich (tu mamy dataseta) to czy bezpiecznie jest pobrać wartość z dbtxt (która się pojawi przecież po kliknięciu jakiegoś rekordu na siatce) celem dalszej obróbki ???
>
> Np: pobieram sobie wskazaną przez dbtxt wartość id_instruk i wykonuję update innej tabel.
> Wydawać by się mogło że jest bezpiecznie ale czuję jakiś wewnętrzny niepokój;-)
Wszystko będzie działać, do momentu aż nie obsłużysz zdarzenia OnGetText
pola DataSetu.
Czyli coś takiego:
DataSet.FieldByName('id_instruk').OnGetText := MetodaObslugiZdarzenia;
I jeśli ta metoda MetodaObslugiZdarzenia będzie cokolwiek robiła z
wartością do wyświetlania, to taka wartość pojawi się we wszystkich
kontrolkach dbAware (dbGrid, dbTextEdit, itd.).
I nie będziesz mógł jej wprost użyć jako parametr zapytania.
Dlatego (i nie tylko dlatego) po prostu lepiej pozyskać dane
bezpośrednio z DataSeta, a kontrolki dbAware zostawić do prezentacji
danych...
--
wloochacz
Re: Dane, dbgrid i sql - prośba o radę
Author: lordbz
Date: Mon, 06 Aug 2018 10:28
Date: Mon, 06 Aug 2018 10:28
26 lines
2841 bytes
2841 bytes
W dniu piątek, 3 sierpnia 2018 22:21:00 UTC+2 użytkownik wloochacz napisał:
> W dniu 2018-07-28 o 12:42, lordbz pisze:
> > Skoro DBGrid służy do wyświetlenia danych ale nie przetrzymuje danych jako takich (tu mamy dataseta) to czy bezpiecznie jest pobrać wartość z dbtxt (która się pojawi przecież po kliknięciu jakiegoś rekordu na siatce) celem dalszej obróbki ???
> >
> > Np: pobieram sobie wskazaną przez dbtxt wartość id_instruk i wykonuję update innej tabel.
> > Wydawać by się mogło że jest bezpiecznie ale czuję jakiś wewnętrzny niepokój;-)
>
> Wszystko będzie działać, do momentu aż nie obsłużysz zdarzenia OnGetText
> pola DataSetu.
> Czyli coś takiego:
> DataSet.FieldByName('id_instruk').OnGetText := MetodaObslugiZdarzenia;
>
> I jeśli ta metoda MetodaObslugiZdarzenia będzie cokolwiek robiła z
> wartością do wyświetlania, to taka wartość pojawi się we wszystkich
> kontrolkach dbAware (dbGrid, dbTextEdit, itd.).
>
> I nie będziesz mógł jej wprost użyć jako parametr zapytania.
> Dlatego (i nie tylko dlatego) po prostu lepiej pozyskać dane
> bezpośrednio z DataSeta, a kontrolki dbAware zostawić do prezentacji
> danych...
>
>
> --
> wloochacz
Dziękuję :-) to mi bardzo pomaga ;-). Okazuje się że przeczucie mnie nie myliło. :-)Brakuje mi wiedzy. Pozdrawiam
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads