Podstrony
- Strona startowa
- Jarosław Bzoma Krajobrazy Mojej Duszy cz.V KSIĘGA O PODRÓŻY NOCNEJ
- Winston S. Churchill Druga Wojna Swiatowa[Tom 3][Księga 2][1995]
- ksiega est pełna wersja Luke Rhinehart
- Pratchett Terry Nomow Ksiega Wyjscia scr
- Mochnacki M. Powstanie Narodu Polskiego (ksiega I) (2)
- Al Williams MFC. Czarna ksiega
- Pratchett Terry Nomow Ksiega Wyjscia
- Nicholas Negroponte Cyfrowe Zycie (2)
- Prawo przyciagania Simone Elkeles (2)
- NF 2005
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- betaki.xlx.pl
[ Pobierz całość w formacie PDF ]
.Nie inaczej jest, gdy używasz Accessa jako interfejsu do serweraSQL.Możesz użyć formularzy w dwóch trybach związanym i niezwiązanym.Formularze związaneJest możliwe oparcie formularzy na procedurach przechowywanych, jednak wtedy możliwy jest tylko odczyt.Jeżeli Twoiużytkownicy są przyzwyczajeni do formularzy związanych, a ty chcesz użyć ich zamiast tabel połączonych, to nie ma nicdo zrobienia, poza napisaniem zapytania, które ograniczy ilość rekordów wyświetlanych na formularzu.Używającformularza związanego opartego na procedurze przechowywanej i zapytaniu przekazującym powinieneś zmieniać parametryprocedury przed otwarciem formularza (identycznie jak na wydruku 16.2).Jeżeli masz dużą ilość danych lub chcesz modyfi-kować dane, użyj ADO i formularzy niezwiązanych w sposób opisany w następnych częściach tego rozdziału.289Rozdział 16.f& Tworzenie interfejsu użytkownika dla Microsoft SQL ServerFormularze niezwiązaneGdy używasz formularzy związanych, tracisz sporo czasu na ich obsługę, szczególnie w wypadku dołączonych tabel.Wczasie obsługi dołączonych tabel Jet musi zarządzać komunikacją ODBC.Dodatkowo tworzone są połączenia do bazyoddzielnie do każdego formantu, co zużywa sporo czasu i pamięci na obsługę.Dobrą alternatywą jest zastosowanieformularzy niezwiązanych.W niezwiązanych formularzach możesz zapytać użytkownika o klucz główny lub inną szukanąwartość, a następnie otworzyć zestaw rekordów w ADO i wypełnić pola edycyjne znalezionymi wartościami, tak jakpokazane jest na rysunku 16.11.Rysunek 6.11.FormularzniezwiązanyMożesz wypełnić listę rozwijalną za pomocą kwerendy przekazującej opartej na procedurze przechowywanej i użyć koduprzedstawionego na wydruku 16.5 do obsługi zdarzenia After Update.Wydruk 16.5.Wypełnianie formularza zawarością obiektu recordsetPrivate Sub cboFind_AfterUpdate()' Ta funkcja pobierze rekord, bazując na wartości klucza głównego' i wypełni wartości w niezwiązanym formularzuDim conn As ADODB.ConnectionDim rst As ADODB.RecordsetDim strSQL As StringOn Error GoTo Proc_ErrDoCmd.Hourglass FalseSet rst = New ADODB.RecordsetSet conn = New ADODB.Connection' Tworzę wyrażenie SQL, bazując na aktualnej' wartości pola listy rozwijalnejstrSQL = "Select * from Categories Where CategoryID=" & Me.cboFind' Tworzenie połączenia ADO do serwera SQLWith conn.Provider = "SQLOLEDB".ConnectionString = "data source=pawel;user id=sa;" & _"initial catalog=NorthWindCS"' Tryb tylko do odczytu.Mode = adModeRead.OpenEnd With' Otwórz Recordsetrst.Open strSQL, conn' Wypełnij wartościMe.CategoryID = rst!CategoryIDMe.CategoryName = rst!CategoryName' Zamknij połączenierst.Closeconn.CloseSet conn = NothingSet rst = NothingProc_Exit:DoCmd.Hourglass FalseExit SubProc_Err:MsgBox Err.DescriptionResume Proc_ExitEnd SubGdy zaczniesz tworzyć niezwiązane formularze, będziesz chciał zmieniać, kasować dane oraz wykonywać inne operacje wADO.Poniżej opiszemy, jak używać ADO oraz OLE DB dla serwera SQL.290Część V f& Access i architektura klient-serwerZaawansowane właściwości: dostawca OLE DB dla serwera SQLAby użyć dostawcy OLE DB dla serwera SQL, musisz upewnić się, czy jest on zainstalowany na komputerze.W trakciestandardowej instalacji Accessa 2000 instalowany jest także dostawca OLE DB do SQL Server.Po zainstalowaniudostawcy możesz używać obiektu połączenia.Aby ustawić obiekt połączenia (ang.: connection), należy użyć składniprzedstawionej na wydruku 16.6.Wydruk 16.6.Podłączanie do serwera SQL przez OLE DBSub SQLServer()' Procedura podłączenia do serwera SQLDim conn As ADODB.ConnectionSet conn = New ADODB.ConnectionWith conn.Provider = "SQLOLEDB".ConnectionString = "data source=(local);" & _"user id=sa;initial catalog=NorthWindCS".Mode = adModeRead.OpenEnd WithMsgBox "Połączony z " & conn.Provider, vbInformationEnd SubNastępny zestaw wynikówJedną z właściwości serwera SQL, której nie dało uzyskać się przy użyciu technologii Jet, jest wykonywanie dwóchwyrażeń SQL jak jednego.Używając tej właściwości, możesz kilkakrotnie wykonywać wyrażenie SQL zwracające różnezestawy rekordów, używając jednego obiektu Recordset.Aby to zrobić, użyj metody NextRecordset.Wydruk 16.7.Użycie NextRecordsetSub NextRst(strCustomerId As String)' Użyj ALFKI lub ANTON dla przykładu' Procedura używa jednego obiektu Recordset dwa razyDim cmd As ADODB.CommandDim conn As ADODB.ConnectionDim rst As ADODB.RecordsetDim strSQL As StringSet conn = New ADODB.Connection' Podłączenie do serwera SQLWith conn.Provider = "SQLOLEDB".ConnectionString = "data source=(local);" & _"user id=sa;initial catalog=NorthWindCS".Mode = adModeRead.OpenEnd With' Wyrażenie SQL zwracające dwa zestawy wyników' Możesz to uruchomić tylko na serwerze, który' wspiera wielokrotne zestawy wynikówstrSQL = "Select * From Customers Where CustomerID=" & _Chr(39) & strCustomerId & Chr(39)strSQL = strSQL & vbNewLinestrSQL = strSQL & "Select * From Orders Where CustomerID=" & _Chr(39) & strCustomerId & Chr(39)Set cmd = New ADODB.CommandWith cmd.CommandText = strSQL.ActiveConnection = conn.CommandType = adCmdTextEnd WithSet rst = cmd.Execute' Otwarcie pierwszego zestawu wynikówDo Until rst.EOFDebug.Print rst!CompanyNamerst.MoveNextLoop' Pobierz następny zestawSet rst = rst.NextRecordsetDo Until rst.EOF291Rozdział 16.f& Tworzenie interfejsu użytkownika dla Microsoft SQL ServerDebug.Print rst!OrderDaterst
[ Pobierz całość w formacie PDF ]