🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.php
2 messages
2 total messages Started by Stan Wed, 27 Aug 2014 12:04
pdo_sqlsrv
#230540
Author: Stan
Date: Wed, 27 Aug 2014 12:04
21 lines
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
#230541
Author: Exe Very Cute
Date: Thu, 04 Sep 2014 09:47
13 lines
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