Firebird-rusă - cum să oprești cererea

Ideea este că, din moment ce FB nu oferă o oportunitate de a specifica priorități pentru
solicită, cel puțin pentru a permite utilizatorului să se oprească manual
cereri de lungă durată.







Implementare: facem un thread cu o prioritate scăzută pe partea clientului.
Înainte de a începe interogarea, activați-o. Firul așteaptă 10 secunde și dacă
interogarea este încă executată, apoi o fereastră cu un buton
Abandonați. Dacă utilizatorul apasă un buton, altul
la baza de date și interogarea este executată în ea

DELETE din instrucțiunile mon $ WHERE mon $ statement_id =: ID

Dar nu știm ID-ul! Cerere de manevră <> ID-ul solicitării.

Ștergeți textul solicitării, starea acesteia și ID-ul conexiunii? Sau există
este posibilă obținerea ID-ului solicitării pe client?

Deschideți această postare în vizualizare cu filet

Re: Cum se opreste cererea?


> Ideea: deoarece FB nu oferă ocazia de a specifica priorități pentru
> cereri, cel puțin pentru a permite utilizatorului să se oprească manual
> solicitări pe termen lung.
>
> Implementare: facem un fir cu o prioritate scăzută pe partea clientului.
> Activați interogarea înainte de a începe interogarea. Firul așteaptă 10 secunde și dacă
> interogarea este încă în desfășurare, afișează o fereastră cu un buton
> Renunțați. Dacă utilizatorul apasă un buton, altul
> la baza de date și interogarea este executată în ea
>
> DELETE din instrucțiuni mon $ WHERE mon $ statement_id =: ID
>
> Dar nu știm ID-ul! Cerere de manevră <> ID-ul solicitării.
>
> Ce ar trebui să fac?
>
> Ștergeți textul interogării, starea acestuia și ID-ul conexiunii? Sau există
> Este posibil să obțineți ID-ul solicitării pe client?







Deschideți această postare în vizualizare cu filet

Re: Cum se opreste cererea?

Pentru a face acest lucru, trebuie să efectuați următoarele după începerea fiecărei tranzacții:
interogați tabelele de sistem pentru a afla codul de identificare? sau ID
tranzacția este egală cu mâna pe client?

Deschideți această postare în vizualizare cu filet

Re: Cum se opreste cererea?


"Andrei".
>
>>
>> După ID-ul tranzacției
>
> Pentru aceasta, după fiecare tranzacție, trebuie să efectuați
> interogați tabelele de sistem pentru a afla codul de identificare? sau ID
> tranzacția este egală cu mânerul pe client?

SELECT CURRENT_TRANSACTION DIN RDB $ DATABASE

Poate isc_transaction_info atunci când thread-ul nu va urca în rețea,
aș recomanda-o. Ei bine, în sine acest apel
mult mai ușor decât executarea unei interogări.

Deschideți această postare în vizualizare cu filet

Re: Cum se opreste cererea?

aproximativ ștergem cererea activă într-o tranzacție cu un ID cunoscut. Dar, la urma urmei, în
viitorul
Este planificat thread-ul gds32.dll și apoi într-o singură tranzacție
fi mai multe
solicitări active?

Deschideți această postare în vizualizare cu filet

Re: Cum se opreste cererea?


Activ - întotdeauna doar unul. Și "thread-ul în siguranță" gds32.dll aici absolut nimic de a face cu ea.

Și despre viitor. în 2.5 există deja o oprire a cererii prin api.

Deschideți această postare în vizualizare cu filet

Re: Cum se opreste cererea?

> Active - întotdeauna doar una. Și "thread-ul în siguranță" gds32.dll aici absolut nimic de a face cu ea.
>

și anume În cadrul unui singur hobby, executarea de interogări va fi întotdeauna
consecvent?
chiar dacă există mai multe fire în aplicație?

Deschideți această postare în vizualizare cu filet

Re: Cum se opreste cererea?


"Andrei".
>> Activ - întotdeauna doar unul. Și "thread-ul în siguranță" gds32.dll aici absolut nimic de a face cu ea.
>>
>
> ie. În cadrul unui singur hobby, executarea de interogări va fi întotdeauna
> consecvent?
> chiar dacă există mai multe fire în aplicație?

Deschideți această postare în vizualizare cu filet

Re: Cum se opreste cererea?

Ca răspuns la acest post de Andrei K


Andrei a scris:
> Ideea: deoarece FB nu oferă ocazia de a specifica priorități pentru
> cereri, cel puțin pentru a permite utilizatorului să se oprească manual
> solicitări pe termen lung.
>
> Ce ar trebui să fac?

Cereri nesolicitate la baza militară?







Articole similare

Trimiteți-le prietenilor: