Thread View: alt.pl.comp.lang.csharp
3 messages
3 total messages
Started by Micha³
Thu, 19 Feb 2004 22:02
c# i msde
Author: Micha³
Date: Thu, 19 Feb 2004 22:02
Date: Thu, 19 Feb 2004 22:02
27 lines
2212 bytes
2212 bytes
Witam grupowicz�w Jestem pocz�tkuj�cym pisaczem w c#, do tej pory pisa�em wielostanowiskowe aplikacje bazodanowe oparte na cbuilder i delphi oraz interbase. Mam 2 pytanka. ( visual c#.net 2003 standard + msde ) 1. W jaki spos�b mo�na odebra� komunikat od bazy danych ( w interbase robi�em to triggerami poprzez post_message ) �e np. zosta� do danej tabeli dodany rekord na innym stanowisku. Chodzi o to aby automatycznie od�wie�y� zawarto�� datagrid�w u klient�w je�eli na jednym z nich tabela zostanie zmodyfikowana. ( pr�bowa�em co� przez InfoMessage z SQLServerConnection, ale nie wysz�o :( ) 2. Prosz� o jakie� przyk�ady jak rowi�zujecie blokowanie rekord�w w tabeli w SQL Server, tak aby gdy rekord jest modyfikowany na innym stanowisku, nie wpu�ci� do niego innego u�ytkownika. ( w interbase u�ywa�em update dla danego rekordu ) Ewentualnie prosz� o nakierowanie na jak�� literatur� z tematyk� c# i sql server. Ch�tnie ogl�dn� je�eli kto� dysponuje �r�de�ka jakiej� bazodanowej aplikacji w c#. Z g�ry dzi�kuje za informacje i pozdrawiam wszystkich Micha� NONONOSP...@poczta.onet.pl
Re: c# i msde
Author: Marek Janaszewski USUNTO. z adre...
Date: Fri, 20 Feb 2004 00:04
Date: Fri, 20 Feb 2004 00:04
41 lines
3035 bytes
3035 bytes
W artykule news:c13ch9$ef8$1...@srv.cyf-kr.edu.pl, niejaki(a): Michał z adresu <NONONOSP...@poczta.onet.pl> napisał(a): [...] > 1. W jaki sposób można odebrać komunikat od bazy danych ( w interbase > robiłem to triggerami poprzez post_message ) że np. został do danej > tabeli dodany rekord na innym stanowisku. Chodzi o to aby > automatycznie odświeżyć zawartość datagridów u klientów jeżeli na > jednym z nich tabela zostanie zmodyfikowana. ( próbowałem coś przez > InfoMessage z SQLServerConnection, ale nie wyszło :( ) > > 2. Proszę o jakieś przykłady jak rowiązujecie blokowanie rekordów w > tabeli w SQL Server, tak aby gdy rekord jest modyfikowany na innym > stanowisku, nie wpuścić do niego innego użytkownika. > ( w interbase używałem update dla danego rekordu ) [...] Witam! Niestety nie znam odpowiedzi na tak szczegółowe pytania odpowiedzi, także jestem początkujący w C#. Natomiast mogę ostrzec, że może być ciężka bo .NET jest mocno nastawione na optymistyczny model blokowania oraz prace w trybie bezpołączeniowym (modelu aktuwkowym). Ogląda prezentacje w .NET Show i przerabiałem mały przykład z Borlanda i sprawa została wymyślona tak przez Microsoft, że na czas pracy na nich dane są ładowane do DataSet. Połączenie może być zamknięte. Dopiero na wyraźne polecenie zmiany są utrwalane. Co ciekawe DataSet może zawierać w sobie wiele tablic danych (relacji). Tak więc wydaje się, że w tym scenariusza bardziej się konflikty rozwiązuje a nie jak Ty stosujesz im zapobieganie. Czyli praca użytkownika na najświeższych danych, blokada rekordu. Tu spodziewał bym się jakiś mechanizmów rozwiązania tych problemów w czasie wprowadzania zmian do bazy. Np. czy użytkownik zmieniając rekord albo pole posiadał aktualne dane. Mam nadziej, że moje wywody nie zniechęcą innych do bardziej konstruktywnej odpowiedzi. Bo uznają, że pytanie jest załatwione. Bo już lepiej było by zamilczeć i czytać. -- Pozdrawiam, Marek Janaszewski [ j_m...@gazeta.pl ]
Re: c# i msde
Author: Michal Wojas
Date: Sun, 22 Feb 2004 11:24
Date: Sun, 22 Feb 2004 11:24
22 lines
2257 bytes
2257 bytes
> 1. W jaki spos�b mo�na odebra� komunikat od bazy danych ( w interbase > robi�em to triggerami poprzez post_message ) �e np. zosta� do danej > tabeli dodany rekord na innym stanowisku. Chodzi o to aby > automatycznie od�wie�y� zawarto�� datagrid�w u klient�w je�eli na > jednym z nich tabela zostanie zmodyfikowana. ( pr�bowa�em co� przez > InfoMessage z SQLServerConnection, ale nie wysz�o :( ) Tutaj tez to mozesz zrobic poprzez triggery ... mozesz np. zapiac jakis timer po stronie klienta, ktory bedzie sprawdzal raz na jakis czas tabelke, ktora zmodyfikowales w triggerze. Jezeli bardzo zalezy Ci na tym zeby wszysto dzialo sie online i klienci odrazu dostawali informacje o nowym rekordzie, trzeba dopisac jakas extended procedure xp_*, ktora bedzie informowala klientow, po jakims TCP/UDP. Sprawa nie wyglada trywialnie .. > 2. Prosz� o jakie� przyk�ady jak rowi�zujecie blokowanie rekord�w w > tabeli w SQL Server, tak aby gdy rekord jest modyfikowany na innym > stanowisku, nie wpu�ci� do niego innego u�ytkownika. > ( w interbase u�ywa�em update dla danego rekordu ) Tutaj musisz robic select'a z odpowiednimi hintami ... bodajze XLOCK ROWLOCK MW
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads