-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Robert Winkler" <w...@N...fm>
Newsgroups: pl.comp.programming
Subject: Re: VisualStudio C# - Okienko Logowania do bazy SQL...
Date: Thu, 10 Dec 2009 09:32:15 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 79
Message-ID: <hfqbmf$bsd$1@inews.gazeta.pl>
References: <hfh2fs$aat$1@atlantis.news.neostrada.pl>
<hfp1u0$1o2$1@nemesis.news.neostrada.pl>
NNTP-Posting-Host: gate.alan-systems.com
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset="ISO-8859-1"; reply-type=response
Content-Transfer-Encoding: 8bit
X-Trace: inews.gazeta.pl 1260433935 12173 62.181.186.82 (10 Dec 2009 08:32:15 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Thu, 10 Dec 2009 08:32:15 +0000 (UTC)
Importance: Normal
In-Reply-To: <hfp1u0$1o2$1@nemesis.news.neostrada.pl>
X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8089.726
X-Priority: 3
X-Newsreader: Microsoft Windows Live Mail 14.0.8089.726
X-User: robert.k.winkler
X-MSMail-Priority: Normal
Xref: news-archive.icm.edu.pl pl.comp.programming:184271
[ ukryj nagłówki ]> Tylko wtedy istota okienka logowania
> sprawdzala by tylko na chwile czy wykona metode Open
> a potem zrobi Close i przekaze InitString do bazy ?!
>
> W sumie wiekszosc rynkowych aplikacji po zalogowaniu przez caly czas
> pokazuje
> jakies informacje lub kartoteki, które podczas pracy przez caly czas sa
> aktywne....
>
> Ale ok, skoro nie da sie w prosty sposób miec dostepna z wszystkich
> formularzy globalny aktywny obiekt polaczenia z baza bede musial
> Zrobic tak jak piszesz.....
> Tylko kazda otwierana kartoteka bedzie opózniana przez zestawienie
> polaczenia z baza !!!
> A to spowolni prace calej aplikacji...
>
> Dziekuje z góry za kazda opinie - jesli ktos inaczej to robi to prosze o
> posta !!!
To, ze twoja aplikacja nie ma jednego globalnego obiektu polaczenia
reprezentowanego przez obiekt SqlConnection
wcale nie oznacza iz takie polaczenia nie ma.
.NETowa implementacja polaczenia do bazy
posiada w swoim wnetrzu mechanizm puli polaczen.
Dzieki temu tylko jesli pierwszy raz tworzysz obiekt SqlConnection i
wywolujesz metode Open
to tak naprawde zestawiasz nowe polaczenie.
Pózniej gdy wywolujesz metode Close aby zamknac polaczenia
albo korzystasz z tego ze jest implementuje ona interfejs IDisposable
(i poprzez odpowiedni sposób tworzenia obiektu SqlConnection gwarantujesz
wywolanie metody Dispose)
polaczenie z baza nie jest zamykane, ale dalej otwarte trafia do wewnetzrnej
puli polaczen
z której to zostanie pobrane przy kolejnym utworzeniu obiektu SqlConnection.
Nie istnieje wiec zaden narzut czasowy na tworzenie kolejnego polaczenia.
Kolejna zaleta to mozliwosc pracy wielowatkowej,
z jednej instancji obiektu SqlConnection
moze w danej chwili korzystac tylko jedna operacja bazodanowa,
musialbys wiec stworzyc dodatkowy mechanizm blokujacy innym watkom aplikacji
dostep do bazy
w momencie gdy którys z nich juz z tego polaczenia korzysta.
Jesli dwa watki w tym samym czasie beda zadaly dostepu do bazy
to zostanie poprostu utworzone drugie polaczenia
i umieszczone w puli aktywnych polaczen.
Jesli dwa watki z jakichs powodów beda naprzemiennie zadaly dostepu do bazy
to aplikacja caly czas bedzie korzystala tylko z jednego otwartego
polaczenia.
Widze ze fakt iz aplikacja caly czas prezentuje zawartosc bazy danych
utozsamiasz z koniecznoscia ciaglego utrzymywania polaczenia.
Musze cie rozczarowac, w przypadku ADO.NET nie jest to prawda.
U podstaw ADO.NET lezy koncepcja praca bezpolaczeniowej.
Aplikacja co prawda na starcie laczy sie z serwerem i pobiera dane
ale pobiera je do lokalnych struktur znajdujacych sie
w pamieci operacyjnej komputera uzytkownika.
Gdy dane zostaly juz pobrane polaczenie do bazy mozna zamknac.
Oznacza to jednak iz uzytkownik nie otrzyma zadnych informacji
o jakichkolwiek zmianach w bazie danych
oraz ze zmiany jakie dokona na swoim komputerze nie znajda sie w bazie.
Za obsluge tego odpowiedzialny jest programista
który powinien napisac aplikacje w taki sposób
aby cyklicznie odpytywala baze danych o zmiany
oraz zapisywala lokalne zmiany w bazie.
Oczywiscie takie podejscie powoduje kolejne problemy
jesli wielu uzytkowników modyfikuje te same dane
program musi bys w stanie rozpoznac konflikty
i odpowiednio na nie reagowac.
Moze sie to tez wiazac z odpowiednim projektem samej bazy danych,
sposobem przechowywania danych,
oraz koniecznoscia rozszerzenia tabel o dodatkowe informacje techniczne
konieczne do rozpoznawania i obslugi konfliktów,
czy tez ulatwiajacych przyrostowa synchronizacje danych pomiedzy SQL'em z
programem.
--
____________
Pozdrawiam
Robert Winkler
Następne wpisy z tego wątku
- 10.12.09 16:47 wloochacz
- 11.12.09 11:37 Wiktor Zychla
Najnowsze wątki z tej grupy
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
Najnowsze wątki
- 2024-11-24 Czy Sejm RP zahamuje proceder zabijania dla organów?
- 2024-11-24 Aby WKOOOORWIĆ ekofaszystów ;-)
- 2024-11-22 OC - podwyżka
- 2024-11-22 wyszedł z domu bez buta
- 2024-11-22 Bieda hud.
- 2024-11-24 DS1813-10 się psuje
- 2024-11-23 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-11-23 Szczecin => QA Engineer <=
- 2024-11-23 Warszawa => SEO Specialist (15-20h tygodniowo) <=
- 2024-11-22 Warszawa => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-22 Warszawa => Senior Account Manager <=
- 2024-11-22 Warszawa => Key Account Manager <=
- 2024-11-22 Warszawa => DevOps Specialist <=
- 2024-11-22 Kraków => IT Expert (Network Systems area) <=
- 2024-11-22 Warszawa => Infrastructure Automation Engineer <=