W konkretnym przypadku silnika SQL używanego przez stronę w W3Schools :
Przeglądarki Safari, Chrome i Opera
Jeśli używasz przeglądarki Safari (przetestowałem na Mac OS X 10.12), strona korzysta z SQLite, który wydaje się być wbudowany w samą przeglądarkę. Po naciśnięciu przycisku „Uruchom SQL” nie korzysta on z żadnych zewnętrznych zasobów. Dalsza inżynieria wsteczna ujawnia, że strona inicjuje bazę danych za pomocą następującego kodu JavaScript:
function w3WebSQLInit() {
var w3DBObj = this;
w3Database = window.openDatabase('W3SchoolsDemoDatabase', '1.0', 'W3SchoolsDemoDatabase', 2 * 1024 * 1024);
...
}
window.openDatabase
oznacza, że kod korzysta z internetowej bazy danych SQL . Zostało to zdefiniowane przez W3C kilka lat temu i zostało zastosowane w praktyce przez Operę, Safari i Chrome (AFAIK), ale nie przez FireFox (lub Explorer). Wygląda na to, że wszystkie trzy przeglądarki wdrożyły „Web SQL Database”, osadzając w sobie różne wersje SQLite.
W tym momencie strona W3C twierdzi:
„Uwaga. Ta specyfikacja nie jest już aktywna w utrzymaniu, a grupa robocza ds. Aplikacji internetowych nie zamierza jej dalej utrzymywać”.
Testowałem przeglądarkę Chrome (wersja 56.0.2924.87, na Windows 10) i wydaje się, że używa SQLite 3.10.2. Opera (wersja 12.15, na Windows 10) używa SQLite 3.7.9.
Opera jest wystarczająco klarowna w swoim „około”:
I Safari Client-Side magazynowe Offline Applications Programming Guide wspomina również, że
Począwszy od Safari 3.1 i iOS 2.0, Safari obsługuje klasę bazy danych HTML5 JavaScript Klasa bazy danych JavaScript oparta na SQLite zapewnia relacyjną bazę danych przeznaczoną do lokalnego przechowywania treści, która jest zbyt duża, aby wygodnie przechowywać w niej pliki cookie (lub jest zbyt ważna, aby zaryzykować przypadkowe usunięcie, gdy użytkownik usuwa swoje pliki cookie).
Nie patrzyłem na Chrome ... ale moje przypuszczenia są jasne.
Przeglądarki FireFox, Edge i Internet Explore
Jeśli używasz przeglądarki FireFox (testowałem na Mac OS X 10.12); ta sama strona W3School zachowuje się w zupełnie inny sposób. Nie wykonuje zapytań w przeglądarce , ale wysyła żądania do swojego serwera . Po stronie serwera, myślę, że faktycznie używa bazy danych MS Access . Jednym ze sposobów sprawdzenia tego jest sprawdzenie (standard) information_schema
.
Jeśli wydasz następujące zapytanie (które w bazie danych zgodnej ze standardami dałoby listę tabel dostępną dla użytkownika):
SELECT * FROM information_schema.tables;
Otrzymujesz następującą (zbyt wymowną) odpowiedź na błąd :
Could not find file 'C:\Windows\SysWOW64\inetsrv\information_schema.mdb'.
Jeśli oprogramowanie szuka pliku .MDB, oznacza to, że używa aparatu bazy danych Microsoft Jet (lub czegoś równoważnego) po stronie serwera i korzysta z plików w formacie Access .MDB , które odpowiadają wersjom Access do i w tym 2003. (Access 2007 i nowsze wersje domyślnie używają plików w formacie .ACCDB).
Microsoft Internet Explorer 11 zachowuje się w ten sam sposób (w systemie Windows 10); podobnie jak Edge (w systemie Windows 10).