Kontrolka DataWłaściwości | Zdarzenia | MetodyKontrolka Data umożliwia dostęp do danych zawartych w bazie danych przez użycie jednego z trzech rodzajów typu obiektu Recordset. Kontrolka Data pozwala na przenoszenie rekordów, wyświetlanie i manipulowanie danymi z rekordów. Bez kontrolek Data lub innych kontrolek, które są źródłem danych, jak np. kontrolka RemoteData, inne kontrolki na formie nie mają bezpośredniego dostępu do danych. Można uzyskać dostęp do najczęściej wykonywanych operacji na danych przez użycie kontrolki Data bez pisania dodatkowego kodu programu. Kontrolki skojarzone z kontrolką Data mogą automatycznie wyświetlać dane zawarte w jednym lub wielu polach bieżącego rekordu. Kontrolka Data umożliwia wykonywanie wszystkich operacji na bieżącym rekordzie. Jeżeli kontrolka Data przesunie się na inny rekord, wszystkie skojarzone kontrolki automatycznie prześlą wszystkie zmiany do kontrolki Data, aby zachować zmiany w bazie danych. Kontrolka Data przenosi się na żądany rekord i przesyła dane z bieżącego rekordu do skojarzonych kontrolek, gdzie są one wyświetlane. Kontrolka Data potrafi dodawać nowe rekordy, edytować i zachowywać zmiany istniejących rekordów i obsługiwać niektóre typy błędów. W niektórych aplikacjach potrzebne jednak będzie przechwycenie niektórych błędów, których kontrolka Data nie obsługuje. Kontrolki skojarzone Kontrolki DBList, DBCombo, DBGrid i MSFlexGrid są zdolne do zarządzania rekordami, kiedy są skojarzone z kontrolką Data. Kontrolki te pozwalają na równoczesne wyświetlanie i manipulowanie wieloma rekordami. Kontrolki PictureBox, Label, TextBox, CheckBox, Image, OLEContainer, ListBox i ComboBox mogą być również skojarzone z pojedynczym polem obiektu Recordset zarządzanego przez kontrolkę Data. Dodatkowe kontrolki, które mogą być skojarzone z kontrolką Data, takie jak MaskedEdit i RichTextBox, dostępne są w wersjach Visual Basic Enterprise Edition i Visual Basic Professional Edition. Operacje Po uruchomieniu aplikacji, Visual Basic używa właściwości kontrolki Data do otwarcia wybranej bazy danych, stworzenia obiektu Database i stworzenia obiektu Recordset. Właściwości Database i Recordset kontrolki Data odnoszą się do nowo stworzonych obiektów Database i Recordset, które mogą być zmieniane przez kontrolkę Data - przez użycie lub bez użycia kontrolek skojarzonych. Kontrolka Data jest inicjalizowana przed zdarzeniem Form_Load formy, na której znajduje się kontrolka Data. Jeżeli wystąpi błąd podczas tej inicjalizacji zostanie wygenerowany błąd bez możliwości przechwycenia. Podczas używania przez Visual Basic engine Jet database aby stworzyć Recordset, żadne inne operacje lub zdarzenia Visual Basic nie mogą wystąpić, zanim operacja ta nie zostanie zakończona. Jednak inne aplikacje systemu Windows mogą kontynuować działanie podczas gdy Recordset jest w fazie tworzenia. Jeżeli użytkownik przyciśnie klawisze CTRL+BREAK podczas tworzenia Recordset przez Jet engine, operacja zostanie przerwana i wystąpi błąd a właściwość Recordset kontrolki Data zostanie ustawiona na Nothing. W fazie projektowania drugie CTRL+BREAK powoduje wyświetlenie przez Visual Basic okna Debug. Przy używaniu kontrolki Data do stworzenia obiektu Recordset lub podczas tworzenia obiektu Recordset w kodzie programu i kojarzenia go z kontrolką Data, Microsoft Jet database engine automatycznie rozprowadza obiekt Recordset. W rezultacie zakładka (bookmark) (lub dane recordset, dla obiektów Recorset typu snapshot) jest zapisywana w pamięci lokalnej; użytkownik nie musi manipulować kontrolką Data i nie trzeba wywoływać metody Move w kodzie programu. Można manipulować kontrolką Data przy pomocy myszki, przesuwając pojedyncze rekordy lub na początek albo koniec Recordset. Właściwości EOFAction i BOFAction określa sposób zachowania, gdy użytkownik przejdzie na początek lub koniec Recordset przy użyciu myszki. Nie można przenieść fokusa na kontrolkę Data. Należy użyć zdarzenia Validate i właściwości DataChanged aby dokonać sprawdzenia rekordów, które mają być zapisane do bazy danych. Obiekty dostępu do danych Można używać obiektów dostępu do danych Database i Recordset stworzonych przez kontrolkę Data w procedurach. Obiekty Database i Recordset posiadają własne właściwości i metody i można napisać procedury, które wykorzystują te właściwości i metody do manipulowania danymi. Np. metoda MoveNext obiektu Recordset przenosi bieżący rekord na następny rekord w Recordset. Aby wykorzystać tę metodę, należy użyć kodu programu: Data1.Recordset.MoveNext Kontrolka Data potrafi obsługiwać trzy typy obiektów Recordset Jet engine Version 3.0. Jeżeli nie zostanie określony typ rekordset, zostanie stworzony Recordset typu dynaset. W wielu przypadkach, domyślny typ i konfiguracja obiektu Recordset jest zbyt rozbudowany. Może np. być zbyteczny dostęp do danych pozwalający na zmianę wartości. Np. obiekt Recordset typu snaphot, który jest tylko do odczytu i z możliwością przesuwania tylko do przodu może być szybciej stworzony niż typ domyślny. Należy więc wybrać odpowiednie wartości właściwości Type, Exclusive, Options i ReadOnly. Stałe używane do określenia typu Recordset przy użyciu kontrolki Data są inne niż stałe używane do określenia typu Recordset tworzonego przez metodę OpenRecordset. Aby wybrać określony typ Recordset, należy ustawić właściwość RecordsetType kontrolki Data:
Kontrolka Data nie może być używana do dostępu do obiektów Recordset stworzonych z ustawionym bitem dbForwardOnly. Wersje Visual Basic Professional i Enterprise Editions Wersje Learning Edition, Professional i Enterprise Editions Visual Basic mogą tworzyć różne typy obiektów z dostępem do danych. W wersji Standart Edition nie można zadeklarować (przy użyciu słowa Dim) zmiennych jako obiektów z dostępem do danych w kodzie programu. Oznacza to, że tylko kontrolka Data może tworzyć obiekty Database i Recordset. W wersjach Professional i Enterprise Editions Visual Basic 5.0 można tworzyć nowe obiekty Recordset kojarzyć je z właściwością Recordset kontrolki Data. Każda kontrolka skojarzona z kontrolką Data może manipulować rekordami w stworzonym Recordset. Należy się upewnić, że właściwość DataField kontrolek skojarzonych jest ustawiona na nazwę pole dostępnego w nowym Recordset. Przechowywanie zapytań (Queries) Ważną opcją kontrolki Data jest możliwość wykonywania zapytań do bazy danych. Jeżeli zostanie stworzony obiekt QueryDef, kontrolka Data potrafi wykonać zapytanie i stworzyć obiekt Recordset użwając właściwości SQL, Connect i innych obiektu QueryDef. Aby wykonać QueryDef, należy ustawić właściwość RecordSource kontrolki Data na nazwę obiektu QueryDef i wykonać metodę Refresh. Jeżeli QueryDef zawiera parametry, należy stworzyć Recordset i przekazać go do kontrolki Data. Obsługa BOF/EOF Kontrolka Data potrafi zadecydować, co się stanie, gdy Recordset nie zawiera więcej rekordów. Przez zmianę wartości właściwości EOFAction można wymusić, aby kontrolka przechodziła automatycznie w tryb AddNew. Można użyć właściwości Align, aby automatycznie określić pozycję kontrolki Data na formie Form. W tym przypadku rozmiar kontrolki Data jest automatycznie zmieniany i dopasowywany do rozmiaru formy. Właściwość ta pozwala na umieszczenie kontrolek Data bezpośrednio na formach MDIForm. |
Właściwości:
na górę strony... Zdarzenia:
na górę strony... Metody:
|