🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#346995
From: J-23
Date: Tue, 14 May 2019 22:36
58 lines
3709 bytes
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
Technical Details
Message-ID: <5cdb42f1$0$531$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <f1d5f52e-7035-41ad-a7bb-b78126030630@googlegroups.com> <002449dc-a011-4ede-9274-800249fd0699@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Pomysł a funkcjonalność -
 prośba o poradę
Newsgroups: pl.comp.lang.delphi
References: <f1d5f52e-7035-41ad-a7bb-b78126030630@googlegroups.com> <002449dc-a011-4ede-9274-800249fd0699@googlegroups.com>
From: J-23 <Baczeklu@poczta.fm>
Date: Wed, 15 May 2019 00:36:30 +0200
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <002449dc-a011-4ede-9274-800249fd0699@googlegroups.com>
Lines: 58
Message-ID: <5cdb42f1$0$531$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 188.146.232.203
X-Trace: 1557873394 unt-rea-a-02.news.neostrada.pl 531 188.146.232.203:10225
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit