Article View: pl.comp.lang.delphi
Article #347012Re: Pomysł a funkcjonalność - prośba o poradę
From: immo
Date: Fri, 17 May 2019 11:10
Date: Fri, 17 May 2019 11:10
50 lines
5656 bytes
5656 bytes
W dniu środa, 15 maja 2019 17:34:12 UTC+2 użytkownik zpksoft napisał: > W dniu środa, 15 maja 2019 17:23:16 UTC+2 użytkownik Krzysztof Szyszka napisał: > > > To czy i jakie pojęcie mam to nie do Twojej oceny bo Twoja wiedza na temat mojej wiedzy jest > > > żadna. Takie kontrolki musisz zbindować ze źródłem danych. I o to mi chodziło. > > > Jeżeli źródło danych ma krótkie życie i jest powiązane z danymi w sposób określany dynamicznie to > > > tworzenie tych powiązań w kodzie to właśnie dla mnie drutowanie. Ale to już dyskusja akademicka. > > > > Ty nadal nie wiesz, co to jest kontrolka dbaware :-) Zrozum wreszcie, że dbaware oznacza kontrolkę > > sterowaną przez źródło danych (property DataSource), czyli to baza danych, a konkretnie to jedna > > kontrolka DAC (np. TFDQuery), która łączy się z bazą danych, steruje wszystkimi kontrolkami > > wizualnymi podłączonymi do wspólnego źródła danych, a kontrolki dbaware z automatu obsługują > > wszystkie zdarzenia, jakie generuje źródło danych: Insert, Delete, Edit, Post, Cancel i to bez > > pisania żadnego kodu, a Ty tu wyjeżdżasz z druciarstwem i krótkim życiem źródła danych. > > > > Jest nawet DBNavigator, który pozwala użytkownikowi tworzyć te zdarzenia wizualnie na formatce, > > więc nawet nie potrzeba żadnych dodatkowych buttonów do zapisania zmian wprowadzonych przez > > użytkownika do bazy danych, a jeśli źródło danych może pracować w trybie "cached updates", > > to masz również do dyspozycji przyciski ApplyUpdates i CancelUpdates, ale dla Ciebie to jest > > druciarstwo, bo wymaga podłączenia jednego DataSource, zamiast pisania zajebistego kodu. > > Zastanów się czasem co piszesz, albo nie pisz wcale, jak czegoś nie znasz lub nie rozumiesz :-) > > > > > Dawno temu doszedłem do wniosku, ze kontrolki dbaware są może i sprytne ale do prostych > > > zastosowań. > > > > Tak informacyjnie, mój X-DBGrid to też kontrolka dbaware, ale tylko do prostych zastosowań, > > bo do pełnej funkcjonalności Excela jeszcze jej trochę brakuje ;-) > > > > -- > > pozdrowienia > > Krzysztof Szyszka, X-Files Software > > Developer of X-DBGrid Component > > Embarcadero Technology Partner > > http://www.x-files.pl/ > > Wymądrzasz się i krytykujesz. > Ale odpowiem bo widzę że Ty nie rozumiesz. Tylko w prostych przypadkach masz w gridzie widok jednej tabeli. Zwykle jest to widok różnych pól z różnych tabel. I jak tu zrobić automatyczny insert/delete? Na czym? (możesz nie odpowiadać) > > Paweł No i? Większość sensownych komponentów dostępowych do baz ma możliwość łączenia widoku i robienia insert/update na wielu tabelach. Pomijam sensowność grzebania "bezpośrednio" na tabelach, chyba że nie używasz do tego żadnego serwera bazodanowego lub sprowadzasz go jedynie do roli przechowywania danych. W większych projektach istotnym jest rozdzielenie fizycznej struktury bazy danych (tabel) od tego co możemy wyświetlić (widoki) oraz dodawać/zmieniać (procedury). Daje to nam niezależność widoku od struktury która może się zmieniać, i nie każda zmiana w strukturze pociąga od razu zmianę kodu aplikacji. Poza tym (trochę odbiegając od wątku) takie tworzenie SQLa jak pokazałeś powyżej to jest "drutowanie" najwyższej klasy. Ogólnie - takie wymaganie (generowania SQLa wg parametrów) to norma, ale na litość opakuj to w jakiś SQL generator. Raz napisany i przetestowany pozwoli unikać błędów i problemów w przyszłości. IMHO to jeden z pierwszych elementów które trzeba ogarnąć gdy odchodzi się od klikanego programowania... pozdrawiam, Przemek O.
Technical Details
Message-ID:
<e559209a-fd84-4206-a081-6b13e56d7821@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!news.unit0.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!i64no129365iti.0!news-out.google.com!p73ni120itp.0!nntp.google.com!u76no127940ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<f1d5f52e-7035-41ad-a7bb-b78126030630@googlegroups.com> <002449dc-a011-4ede-9274-800249fd0699@googlegroups.com> <5cdb42f1$0$531$65785112@news.neostrada.pl> <0fd326ca-4ef2-402a-81a3-09d36f322b9d@googlegroups.com> <qbgv5q$3f6$1@node2.news.atman.pl> <98f7302e-73d3-42cd-8017-d762169aecf7@googlegroups.com> <qbhat3$ead$1@node2.news.atman.pl> <16cb3810-8959-4887-8e67-9d268ad7b9e7@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 2002:a24:910b:: with SMTP id i11mr14930373ite.76.1558091426581; Fri, 17 May 2019 04:10:26 -0700 (PDT) X-Received: by 2002:aca:ea89:: with SMTP id i131mr12918590oih.22.1558091426278; Fri, 17 May 2019 04:10:26 -0700 (PDT) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!news.unit0.net!newsreader4.netcologne.de!news.netcologne.de!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!i64no129365iti.0!news-out.google.com!p73ni120itp.0!nntp.google.com!u76no127940ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi Date: Fri, 17 May 2019 04:10:25 -0700 (PDT) In-Reply-To: <16cb3810-8959-4887-8e67-9d268ad7b9e7@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.65.27.242; posting-account=uWBjDgoAAACxkgIP6dtE4dpCnc16V86n NNTP-Posting-Host: 77.65.27.242 References: <f1d5f52e-7035-41ad-a7bb-b78126030630@googlegroups.com> <002449dc-a011-4ede-9274-800249fd0699@googlegroups.com> <5cdb42f1$0$531$65785112@news.neostrada.pl> <0fd326ca-4ef2-402a-81a3-09d36f322b9d@googlegroups.com> <qbgv5q$3f6$1@node2.news.atman.pl> <98f7302e-73d3-42cd-8017-d762169aecf7@googlegroups.com> <qbhat3$ead$1@node2.news.atman.pl> <16cb3810-8959-4887-8e67-9d268ad7b9e7@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <e559209a-fd84-4206-a081-6b13e56d7821@googlegroups.com> Subject: Re: Pomysł a funkcjonalność - prośba o poradę From: immo <przemek-o@soft-system.pl> Injection-Date: Fri, 17 May 2019 11:10:26 +0000 X-Received-Bytes: 6199 X-Received-Body-CRC: 1283395070 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit