Article View: alt.pl.comp.lang.csharp
Article #646Re: SqlCommandBuilder
From: Marek Janaszewski USUNTO. z adre...
Date: Sat, 27 Mar 2004 20:54
Date: Sat, 27 Mar 2004 20:54
49 lines
3532 bytes
3532 bytes
Hilarion wrote: >> Pytanie o te parametry zadalem dlatego, ze w >> Delphi wpisuje nazwe parametru do polecenia i autogmatycznie wstawia >> wartosc parametru do zapytania. > > Nie żebym się czepiał - po prostu uważam, że lepiej wiedzieć, niż > nie wiedzieć, więc napiszę co wiem, a może inni wtedy też wiedzieć > będą... A może za bardzo zamotałem :) W każdym razie wykorzystanie > parametrów w Delphi NIE oznacza, że automatycznie w odpowiednie > miejsca zapytania zostaną wklejone wartości. Użycie parametrów > w zapytaniach powoduje odwołanie się do mechanizmów parametryzacji > zapytań właściwych dla danej bazy SQL. W większości wypadków > praca z zapytaniami sparametryzowanymi (baza tylko raz > analizuje strukturę zapytania, a tylko wykonując zapytanie > posługuje się różnymi wartościami parametrów) jest wydajniejsza od > pracy z dynamicznie budowanymi zapytaniami SQL (za każdym razem > wykonywana jest analiza zapytania i chociaż nie jest wykonywane > podstawianie wartości do parametrów, to i tak zajmuje to zazwyczaj > więcej czasu), zwłaszcza jeśli wykonywane są serie zapytań różniących > się tylko poszczególnymi wartościami (a nie strukturą zapytania). [...] Witam! Aby osiągnąć wzrost wydajności to trzeba było chyba zastosować Prepare i Unprepare. Nie wiem czy treść zapytania przy Open/Close nie jest analizowana. To, że parametry a dynamiczne zapytanie coś innego to się zgadza. W niektórych przypadkach dynamiczne zapytanie daje większą elastyczność, czasem mniejszą (np. BLOB). Jeśli chodzi o parametry z nazwą czyli w stylu ":coś_tam" to o dziwo zapytanie jest pod tym względem w Delphi analizowane od strony aplikacji. W miejsce ":coś_tam" są wstawiane znaki zapytania. I chyba te znaki zapytania są analizowane od strony serwera a parametry podawane przez kolejność. Jeszcze nie wiem jak to wygląda w .NET-cie dokładnie. Natomiast parametry mają jedną przewagę w .NET. Umożliwiają w prosty sposób stworzenie "update logic", czyli wszystkich zapytań definiujący w jakiś sposób modyfikować bazę dany. Zmiany są przechowywane w tabeli DataSet-u, dopiero na rozkaz baza danych jest bombardowana zapytaniami. Wartości z DataSet są podstawiane pod parametry. Są tylko pewne problemy z wartością NULL i jaki model aktualizacji wybierzemy. Zalecany jest optymistyczny ale trzeba wybrać reakcje na to, że dane ulegną zmianie w między czasie. -- Pozdrawiam, Marek Janaszewski [ j_m...@gazeta.pl ]
Technical Details
Message-ID:
<c455cp$2kh2$5@news.atman.pl>Path:
mbox-mo1.pugleaf.net!archiver1.google.com!news1.google.com!news.glorb.com!nntp.idg.pl!news.atman.pl!not-for-mailReferences:
<c3vmrc$3a9$1@news.onet.pl> <c40179$81i$1@achot.icm.edu.pl> <c40t58$sbd$1@news.onet.pl> <c42dtv$hpv$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!archiver1.google.com!news1.google.com!news.glorb.com!nntp.idg.pl!news.atman.pl!not-for-mail From: "Marek Janaszewski \(USUN_TO. z adresu!\)" <USUN_TO...@gazeta.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: SqlCommandBuilder Date: Sat, 27 Mar 2004 21:54:00 +0100 Organization: ATMAN Lines: 50 Message-ID: <c455cp$2kh2$5@news.atman.pl> References: <c3vmrc$3a9$1@news.onet.pl> <c40179$81i$1@achot.icm.edu.pl> <c40t58$sbd$1@news.onet.pl> <c42dtv$hpv$1@news.onet.pl> NNTP-Posting-Host: staticline702.toya.net.pl Mime-Version: 1.0 X-Trace: news.atman.pl 1080432858 86562 217.113.228.127 (28 Mar 2004 00:14:18 GMT) X-Complaints-To: use...@atman.pl NNTP-Posting-Date: Sun, 28 Mar 2004 00:14:18 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit