UDF > SQLite >


_SQLite_SetTimeout

D�finit le temps imparti avant que le gestionnaire soit d�clar� occup�

#include <SQLite.au3>
_SQLite_SetTimeout ( [$hDB = -1 [, $iTimeout = 1000]] )

Param�tres

$hDB [optionnel] Une base de donn�es ouverte ou -1 pour utiliser la derni�re base de donn�es ouverte
$iTimeout [optionnel] Temps imparti [msec]

Valeur de retour

Succ�s: Retourne $SQLITE_OK.
�chec: Retourne une valeur qui peut �tre compar�e aux constantes $SQLITE_*.
@error: -1 - SQLite a signal� une erreur (Examinez la valeur de retour)
 1 - Erreur dans l'appel de l'API SQLite 'sqlite3_busy_timeout'
 2 - Appel emp�ch� par SafeMode

Remarque

Cette routine cr�e un gestionnaire d'occupation qui se met en veille pendant un moment quand une table est verrouill�e. Le gestionnaire va se mettre en veille plusieurs fois jusqu'� ce que au moins "ms" millisecondes de veille ont �t� faites. Apr�s "ms" millisecondes de veille, le gestionnaire retourne 0, et par suite sqlite3_exec() retourne $SQLITE_BUSY.

En relation

_SQLite_Query

Exemple

#include <File.au3>
#include <MsgBoxConstants.au3>
#include <SQLite.au3>
#include <SQLite.dll.au3>

_SQLite_Startup()
ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)

Local $sDatabase, $hDB_a, $hDB_b, $iTimer, $iRval
$sDatabase = _TempFile()
$hDB_a = _SQLite_Open($sDatabase)
$hDB_b = _SQLite_Open($sDatabase)

_SQLite_Exec($hDB_a, "BEGIN EXCLUSIVE; ")
_SQLite_Exec($hDB_a, "CREATE TABLE test (a,b,c); ")
_SQLite_Exec($hDB_a, "INSERT INTO test VALUES (1,2,3); ")
; La table 'test' est occup�e maintenant...

_SQLite_SetTimeout($hDB_b, 0)
$iTimer = TimerInit()
$iRval = _SQLite_Exec($hDB_b, "SELECT * FROM test") ; Ceci �chouera
MsgBox($MB_SYSTEMMODAL, "_SQLite_SetTimeout Example No Timeout", "Time: " & TimerDiff($iTimer) & @CRLF _
         & "Error: " & _SQLite_ErrMsg($hDB_b) & @CRLF)
_SQLite_SetTimeout($hDB_b, 5000)
$iTimer = TimerInit()
$iRval = _SQLite_Exec($hDB_b, "SELECT * FROM test") ; Ceci �chouera
MsgBox($MB_SYSTEMMODAL, "_SQLite_SetTimeout Example 5 Sec Timeout", "Time: " & TimerDiff($iTimer) & @CRLF _
         & "Error: " & _SQLite_ErrMsg($hDB_b) & @CRLF)
_SQLite_Exec($hDB_a, "END; ")
_SQLite_Close($hDB_a)
_SQLite_Close($hDB_b)
_SQLite_Shutdown()
FileDelete($sDatabase)