🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #346997

Re: Pomysł a funkcjonalność - prośba o poradę

#346997
From: zpksoft
Date: Wed, 15 May 2019 07:29
63 lines
4757 bytes
W dniu środa, 15 maja 2019 00:36:35 UTC+2 użytkownik J-23 napisał:
> W dniu 14.05.2019 o 14:14, Pancio pisze:
> > Witam Panownie,
> > A ja mam pytanie do Was jako znawców tematów o coś podobnego. Tzn. dotyczyć będzie to właśnie dodawania i/lub edycji rekordów w bazie.
> > Załóżmy że mam bazę o nazwie TELEFONY a'la książka telefoniczna i kolumny NazwiskoImie, NrTel, Inne
> > Na formatce mam oba pola i teraz moje pytanie - jak dodajecie rekordy do bazy? Osobiście używam takiej konstrukcji:
> > 1. Ustawiam bazę w tryb wstawiania TELEFONY.Insert
> > 2. Wypełniam pola tekstowe formatki np. Edit1.Text, Edit2.Text
> > 3. Przypisuję dodatkowe dane do bazy:
> >     TELEFONY.FieldByName('Inne').AsInteger := 1;  // Pole podane dla przykładu
> > 4. Kończę operację poleceniem TELEFONY.Post (lub pod przyciskiem Anuluj TELEFONY.Cancel)
> > 
> > Ale wiem, że można do tego użyć poleceń SQLa, jak to kolega przedstawił czyli np.
> >    Close;
> >    Clear;
> >    Add('INSERT INTO TELEFONY (NazwiskoImie, NrTel, Inne)');
> >    Add('VALUES (:NazwiskoImie, :NrTel, :Inne)');
> >    ParamByName('NazwiskoImie').AsString := Edit1.Text;
> >    ParamByName('NrTel').AsString := Edit2.Text;
> >    ParamByName('Inne').AsInteger := 1;
> >    ExecSQL;
> > 
> > No i mije pytanie - którego rozwiązania powinienem się trzymać - pierwszego czy drugiego? Bo efekt końcowy jest identycznie taki sam.
> > Z góry dziękuję za (p)odpowiedzi.
> > 
> > --
> 
> Odpisze w Twoim poście ale jest to odp dla ciebie i dla autora wątku. 
> Panowie dlaczego nie korzystacie z kontrolek DB i to co one dają? Czyli 
> możliwość zrobienia niemal wszystkiego automatycznie wystarczy 
> Datasource podpięcie odpowiedniego DataSeta (obojętne czy to będzie zeos 
> czy to będzie AnyDAC czy inne cudo - każdy z tych który podepniecie 
> wygeneruje za was podstawowe zapytanie INSERT bez grama pisania 
> jakiegokolwiek zapytania
> 
> Wasz jedyny kod który was obchodzi to
> 
> procedure OnClickButton(Sender: TObject)
> begin
>    DataSet.post - tylko tyle - by dodać cokolwiek do bazy
> end;
> 
> Zaraz ktoś napisze a to trzymana transakcja itd.
> 
> Ja na to... podstawowym punktem wyjściowym by sobie z takimi kłopotami 
> radzić jest "CecheUpdate"
> 
> Doczytać jak ta funkcja działa w poszczególnych produktach tj zeos, 
> anydac itp. i unikniecie takich problemów jak teraz
> 
> Można oczywiście się bawić w małych projektach w pisanie INSERT ręcznie 
> itp ale jest to w mojej opinii strata czasu.
> 
> Oczywiście ja tu mówię o absolutnych podstawach nie wspominając o tym że 
> są inne rozwiązania które oferują jeszcze znacznie więcej ponadto co ja 
> tu opisałem
> 
> Pozdrawiam
> J-23

Kiedyś dotknąłem tych kontrolek ale szybko się z tego wycofałem. Doszedłem do wniosku że to tylko do prostych zastosowań. Niby końcowa procka jest prosta (jak napisałeś) ale żeby taka była musisz najpierw trochę podrutować. U mnie przeważnie zapytania sql są tworzone dynamicznie i są często bardzo złożone (niedawno walczyłem z takim które ma około tysiąca słów). Interesują mnie: sql i tablica parametrów. Po co miałbym to wciskać do kontrolki dbaware?

Paweł
Technical Details
Message-ID: <0fd326ca-4ef2-402a-81a3-09d36f322b9d@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!proxad.net!feeder1-2.proxad.net!209.85.166.215.MISMATCH!u76no86974ita.0!news-out.google.com!l135ni107itc.0!nntp.google.com!u76no86973ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
References: <f1d5f52e-7035-41ad-a7bb-b78126030630@googlegroups.com> <002449dc-a011-4ede-9274-800249fd0699@googlegroups.com> <5cdb42f1$0$531$65785112@news.neostrada.pl>

Show Full Headers
Complete Article Headers
X-Received: by 2002:a5e:a919:: with SMTP id c25mr24185693iod.166.1557905350169;        Wed, 15 May 2019 00:29:10 -0700 (PDT)
X-Received: by 2002:a54:418f:: with SMTP id 15mr3373750oiy.75.1557905349898; Wed, 15 May 2019 00:29:09 -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!proxad.net!feeder1-2.proxad.net!209.85.166.215.MISMATCH!u76no86974ita.0!news-out.google.com!l135ni107itc.0!nntp.google.com!u76no86973ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.delphi
Date: Wed, 15 May 2019 00:29:09 -0700 (PDT)
In-Reply-To: <5cdb42f1$0$531$65785112@news.neostrada.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=83.22.194.139; posting-account=8ND_mgoAAAD5J9y9fnaTB1Kcu7xKWk7Q
NNTP-Posting-Host: 83.22.194.139
References: <f1d5f52e-7035-41ad-a7bb-b78126030630@googlegroups.com> <002449dc-a011-4ede-9274-800249fd0699@googlegroups.com> <5cdb42f1$0$531$65785112@news.neostrada.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <0fd326ca-4ef2-402a-81a3-09d36f322b9d@googlegroups.com>
Subject: Re: Pomysł a funkcjonalność -
 prośba o poradę
From: zpksoft <zpksoft@op.pl>
Injection-Date: Wed, 15 May 2019 07:29:10 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit