Access obvisi pri GetRows
Klic Recordset.GetRows nad povezano tabelo se ne vrne; Access se ne odziva več in ga je treba
končati. Z MoveNext nad isto tabelo se namesto tega prikaže napaka 3146 „ODBC–call failed“.
Okolje
Access oziroma DAO s povezanimi tabelami, s katerim koli gonilnikom ODBC, tudi z Microsoftovim ODBC Driver 18.
Vzrok
Če pri nadaljnjem branju prenos naslednje strani ne uspe – na primer zaradi omejitve zahtev storitve (429),
časovne omejitve ali prekinitve omrežja –, gonilnik javi napako (SQL_ERROR). GetRows nato
neskončno kliče SQLFreeStmt(SQL_CLOSE) in se nikoli ne vrne, ne glede na SQLSTATE. Z gonilnikom SQL
Serverja je enako, na primer pri pogledu, ki sredi branja deli z nič. To je vedenje DAO, ne gonilnika.
Odprava
GetRowsnadomestite z zanko zMoveNext:Do Until rs.EOF ' … obdelava … rs.MoveNext LoopMoveNextse pri isti napaki takoj vrne z napako 3146, ki jo prestreže vaša obravnava napak.- Dejansko napako pri nadaljnjem branju ugotovite s sledenjem. Pri podatkovnem prehodu se naslednje strani ne štejejo v omejitev zahtev;
429pri nadaljnjem branju kaže na naslove naslednjih strani, ki jih je aplikacija sestavila sama, ali na drugo storitev.
Preverjanje
Isti postopek se konča s sporočilom o napaki, namesto da bi obvisel, ali pa se izvede do konca.