|
|
|
|
|
Strona kompatybilna z MSIE
Niestety niekompatybilna z NE
i przez jakiś czas tak pozostanie.
|
Delphi + ADO FAQ
Na tej stronie można znaleźć kilka luźnych porad na temat wykorzystania
technologii ADO w Delphi.
Na razie jest tego niewiele, ale sukcesywnie artykułów będzie
przybywać.
Dokumentacja
do ADO
|
|
Najlepszym źródłem oczywiście jest sekcja ADO
w Platform SDK dostępna online na serwerze Microsoftu. Można
jednak zdobyć Platform SDK również w wersji off-line ponieważ stanowi ona część
dokumentacji MSDN dystrybuowanej w różny sposób a między
innymi i na krążkach CD.
|
 |
 |
|
Gdzie
najnowsze wersje ADO
|
|
MDAC (Microsoft Data Access Components)
Miejscem gdzie należy szukać najnowszej wersji ADO jest http://www.microsoft.com/data/download.htm
, aktualnie najnowszą wersją jest dystrybucja o nazwie
2.71 Service Pack 1
|
 |
 |
|
Microsoft Jet 4.0
Ponieważ od jakiegoś już czasu MSJet dystrybuowany jest
oddzielnie od MDAC należy go ściągnąć niezależnie. Od pewnego
czasu jest to niestety oferowane przez Microsoft w usłudze "Widows
Update" dla różnych wersji MSWindows oddzielnie na szczęście jest też i wersja plikowa
Q239114.
Aktualnie najnowszą jest wciąż dystrybucja o nazwie
Jet 4.0 Service Pack 3 Update ,
która notabene ukazała się już we wrześniu 2001r.
info
Należy również pamiętać, że komponent ten jak i zestaw komponentów w MDAC występują w różnych wersjach językowych.
Oczywiście najwcześniej zawsze jest osiągalna wersja angielskojęzyczna, ale należy tu zaobserwować coraz szybsze ukazywanie się wersji w innych wersjach narodowych.
Dla końcowego użytkownika oprogramowania, prawidłowe dobranie wersji językowej, może być
elementem znacznie zmniejszającym frustracje spowodowane występowaniem jakichś nieprzewidzianych wyjątków i pozwoli mu być może samodzielnie poradzić sobie z sytuacją.
Gdyby któryś z powyższych linków nie działal to poszukiwania należy rozpoczynac od http://msdn.microsoft.com/dataaccess.
|
 |
 |
|
Jak
instalować MDAC
|
|
FAQ
jak instalować MDAC - to jest stanowisko Microsoftu.
Właściwie z instalacją znakomicie sobie radzi załączony do Delphi InstallShield.
Robi to dzięki modułom dolączanym
(merge module), czyli takiemu "wynalazkowi"" Microsoftu, który właśnie miał ułatwić tworzenie pakietów
instalacyjnych poprzez łączenie kilku współdzielonych podpakietów, co prawda, dla VisualStudio i pochodnych,
ale jak widać znalazły one szersze uznanie i chyba nie było innego wyboru.
Moduły te oczywiście odpowiadają określonym wersjom poszczególnych obiektów (pakietów)
i należy pobrać ich odpowiedniki do najnowszych wersji.
Tutaj powinna się pojawić mała uwaga, co do tych najnowszych wersji. Otóż nie wszystkie wersje MDAC działają na wszystkich wersjach MSWindows, oczywiście chodzi tu o starsze wersje windows,
i tak, MDAC 2.7 nie może być instalowany na Win 95 i starszych a co do Win 98 to również są zastrzeżenia co do wcześniejszego zaktualizowania o tak zwaną porawkę Y2K. |
 |
 |
|
Sprawdzenie wersji polega na sprawdzeniu wersji biblioteki dll o
nazwie "MSDADC.DLL" a następnie należy się posłużyć poniższą
tabelą.
|
Wersja MDAC
|
MSDADC.DLL
|
|
MDAC 1.0 (OLE DB 1.1 SDK)
|
1.10.2326.0
|
|
MDAC 1.5 (MSADC11)
|
1.50.3004.0
|
|
MDAC 1.5 (PDC)
|
1.50.32.15
|
|
MDAC 1.5 (IE 4.0 and 4.01)
|
1.50.3206.0
|
|
MDAC 1.5 RTM
|
1.50.3221.0
|
|
MDAC 1.5a (IE 4.01 SP1)
|
1.50.3401.0
|
|
MDAC 1.5b (NT4.0 Option Pack 1)
|
1.50.3506.00
|
|
MDAC 1.5c (IE 4.01 SP2)
|
1.50.9801.0
|
|
MDAC 2.0 RTM
|
2.00.3002.4
|
|
MDAC 2.0 SP1 / SP2
|
2.00.3002.23
|
|
MDAC 2.1.0.3513.2 (SQL)
|
2.10.3513.0
|
|
MDAC 2.1.1.3711.6 (IE 5)
|
2.10.3711.2
|
|
MDAC 2.1.1.3711.11 (GA)
|
2.10.3711.2
|
|
MDAC 2.1.2.4202.3 (GA) SP2
|
2.10.4202.0
|
|
MDAC 2.5 RTM
|
2.50.4403.12
|
|
MDAC 2.5 SP1
|
2.51.5303.0
|
|
MDAC 2.5 SP2
|
2.52.6019.0
|
|
MDAC 2.6 RTM
|
2.60.6526.0
|
|
MDAC 2.6 SP1
|
2.61.7326.0
|
|
MDAC 2.7 RTM
|
2.70.7713.0
|
|
MDAC 2.7 RTM - Refresh
|
2.70.9001.0
|
|
MDAC 2.71 Service Pack 1
|
2.71.9030.0
|
Lub wgrać specjalnie do tego celu napisany program "Commponent
Checker" autorstwa Microsoft Corp.
|
 |
 |
|
"The End of DLL Hell."
Taki tytuł ma artykuł Q247957. Jeżeli od jakiegoś już czasu walczysz w swojej firmie z różnymi wersjami dll to
narzędzie DUPS.EXE może się okazać naprawdę niezastąpionym. Szczegóły w artykule
Q247957.
|
 |
 |
|
Jaki
wybrać kursor?
|
|
Wybór typu kursora w komponentach ADO jest sprawą zasadniczą, zarówno dla
oferowanej funkcjonalności, wydajności jak i dla, co skrótowo i niezbyt pięknie
można by nazwać,
zasobożerności. Co prawda podlega to jeszcze pewnym regułom i ograniczeniom,
tak więc, nie zawsze można
wybrać taki typ kursora jaki się chce.
|
 |
Pisanie artykułu na ten temat mija się z sensem
ponieważ napisano już bardzo wiele o typach kursora z czego warto
polecić artykuł w SQLMag
autorstwa Morrisa Lewisa lub (według mnie nieco tylko gorszy, ale za to
pisany pod kątem użycia w Delphi) napisany przez Zarko
Gajica na serwerze . |
 |
|
Kilka
rad jak poprawić wydajność
|
|
Używaj jednego połączenia (TADOConnection) - wstawienie "connectionstring"
do obiektów pochodnych od TADODataSet czy TADOCommand jest
stworzeniem nowiego obiektu "Connection", który zabiera
dodatkowe zasoby zarówno w komputerze klienckim jak i w serwerze.
|
 |
 |
|
Wybierz mądrze typ kursora - jest to chyba najważniejszy element wpływający
na wydajność.
|
 |
 |
Wykorzystuj istniejące obiekty.
Jeżeli potrzebujesz kilkakrotnie skorzystać z procedury
przechowywanej, perspektywy czy innej konstrukcji wymagającej
kilkukrotnego użycia obiektu jednego typu (np: TADOCommand czy
TADOStoredProc) to nie twórz tego obiektu za każdym razem od początku.
Staraj się użyć wielokrotnie tego samego zmieniając jego działanie
poprzez zmianę jego własności.
|
 |
 |
Stosuj procedury przechowywane zwracające wartości w parametrach w
miejsce prostych zapytań zwracających pojedyńczy rekord.
Zapytanie zwróci zawsze dataset (a wpierw go stworzy). Konstrułując
tak procedurę przechowywaną aby nie zwracała zestawu danych (datase'u)
a wynik był przekazywany w parametrach typu "output" można
uniknąć zbędnego tworzenia obiektu dataset. Proszę tu nie zapominać
o różnicy w metodach Open i ExecProc obiektu TADOStoredProcedure
oraz własności ExecuteOptions (eoExecuteNoRecords ).
|
 |
 |
|
Gdy zdecydujesz się na CursorLocation = clUseClient i chcesz zmienić
kolejność rekordów to nie wykonuj nowego zapytania tylko użyj własności
"sort". Użycie tej własności nie spowoduje
ponownego transmitowania danych z serwera i wykona się zdecydowanie
szybciej.
|
 |
 |
|
Inne uwagi jak: ograniczanie danych do naprawdę potrzebnych,
stosowanie procedur składowanych, prepare, optymalne struktury danych
i zapytań, itp., itd.... są raczej takie same jak w każdym innym
przypadku pisania programu w architekturze Client-Server.
|
 |
 |
|
Defragmentacja bazy MSAccess
|
|
Operacja defragmentacji pociąga za sobą również operację
naprawiania a w tym odbudowę indeksów. Ponadto podczas tej operacji
możliwe jest zaszyfrowanie bazy danych.
Aby móc wykonać defragmentację bazy MSAccess w programie skompilowanym
w Delphi należy wpierw importować bibliotekę typów komponentu JRO
("Microsoft Jet and Replication Objects 2.5 Library" lub późniejszą).
A następnie skorzystać z gotowego już kodu autorstwa Davida Simpsona,
który należy szukać na CodeCentral ID=15256.
Co to takiego JRO
JRO (Jet and Replication Objects) wspomaga MSJet w obsłudze bazy
danych MSAccess.
Przy pomocy JRO można:
- obsługiwać replikację bazy przez tworzenie nowych replik oraz
synchronizację istniejących,
- defragmentować naprawiać bazę danych, oraz ustawić przy
okazji opcje takie jak hasła i szyfrowanie,
- przeładować bufory bazy w pamięci RAM wymuszając zapis
oczekujących danych do bazy i odczytanie ich najświeższej
wersji.
|
 |
 |
|
...
|
|
... o czym dotyczącym ADO w Delphi chciał byś się dowiedzieć?
pisz śmiało t.cwajda @ hors-pro.com
|
 |
 |
|
|