Thread View: pl.comp.lang.php
2 messages
2 total messages
Started by Stan
Wed, 27 Aug 2014 12:04
pdo_sqlsrv
Author: Stan
Date: Wed, 27 Aug 2014 12:04
Date: Wed, 27 Aug 2014 12:04
21 lines
1709 bytes
1709 bytes
Jest w2012 z MSQL 2012, IIS i PHP 5.4.17
Jest kod :
if ( !($q = $DB->query('SELECT ....')) ) {
while (($r = $q->fetch())) {
if ( !$DB->beginTransaction() ) { ....}
}
}
Przy próbie otwarcia transakcji dostaję błąd :
[SQL Server Native Client 11.0][SQL Server]Nowa transakcja jest
niedozwolona, ponieważ w sesji są uruchomione inne wątki.(3988)
Jak to obejść ?
Do przetworzenia jest wiele rekordów i przeniesienie beginTransaction()
przed query() stworzy olbrzymią transakcję, która zablokuje dostęp dla
innych. Ewentualny rollback() trwałby bardzo długo.
Pozdrawiam,
Stan
Re: pdo_sqlsrv
Author: Exe Very Cute
Date: Thu, 04 Sep 2014 09:47
Date: Thu, 04 Sep 2014 09:47
13 lines
1340 bytes
1340 bytes
W dniu 2014-08-27 14:04, Stan pisze: > Jak to obejść ? > Do przetworzenia jest wiele rekordów i przeniesienie beginTransaction() > przed query() stworzy olbrzymią transakcję, która zablokuje dostęp dla > innych. Ewentualny rollback() trwałby bardzo długo. Jak wiele? Jeżeli mniej niż setki tysięcy, to można pobrać wyniki SELECTa do pamięci, foreach, i na tym działać. Jeżeli więcej, to j.w. z podziałem na "porcje". Pozdr Exe Very Cute
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads