A QSqlError osztálynak van egy ErrorType enumja, ami megmondja, hogy milyen típusú volt a bekövetkezett hiba. Na ezt én most használnám a kódomban, de fura dolgot tapasztaltam.
Adatbázis kapcsolatom OK, meg van nyitva. Futtatok egy queryt, OK. Most leállítom az sql szervert, majd megint futtatok egy queryt. A lastError().text() jónak tűnik [mysql has gone away, cannot execute query...], de az ErrorType az nem ConnectionError, hanem StatementError. Amúgy nyilván nem szintaktikai a hiba, mert a query az OK (select 1), no meg hát ha nincs sql szerver a túloldalon, akkor ki validálta volna a querymet?
Valaki tapasztalt már ilyet?
- 1003 megtekintés
Hozzászólások
Szerintem az ugy van, hogy a conn.open() (mittomen, hogy nez ki ez Qt alatt) ad ConnectionError-t, a conn.executeQuery(sql) meg StatementError-t (ez is pszeudokod volt).
Amugy meg nagy Q kis t, egyszer-ketszer mar ram szoltak, a QT az a QuickTime.
--
()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.
- A hozzászóláshoz be kell jelentkezni
Én is kipróbáltam most ezt, csatlakozás, query, mysql lekapcs, query. Nálam a query.lastError().type() mindvégig változatlanul 0 (no error).
Erről az SQL driver modul intézkedik elvileg, gondolom te más SQL-t használsz és az legalább ad vissza valamit. Nálam még annyit se sajnos. Lehet hogy érett a dolog egy bugreportra... bele kéne túrni a driverbe, lehet hogy hiányos az implementáció.
- A hozzászóláshoz be kell jelentkezni
Kösz a válaszokat.
Nálam is volt azóta ellenpróba windowson, és ott is a NoError volt a jellemző :(
Mindegy, átírom a kódot, hogy az ErrorType helyett a hibakód alapján döntsön...
Ja, és a QT -> Qt jogos :)
- A hozzászóláshoz be kell jelentkezni