Article View: pl.comp.lang.delphi
Article #346997Re: Pomysł a funkcjonalność - prośba o poradę
From: zpksoft
Date: Wed, 15 May 2019 07:29
Date: Wed, 15 May 2019 07:29
63 lines
4757 bytes
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-mailReferences:
<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