Subject Transcation Isolation level
Author cengiz.ucar
Hello,

I have a problem with the transaction locking mechanism of firebird.
At first I run the SQL1 (update) procedure . While it was waiting on
the msgbox row, SQL2 (select) procedure starts. But select statement
of SQL2 waits until CommitTrans of SQL1 completed. As far as I know
default isolation level is ReadCommitted. Even I tried ReadUncommitted
option but the result is the same. Same code works fine with oracle.
Is there anything wrong with my codes or is this a Firebirs bug?

Many thanks,

Sub SQL1()
Dim conn
Set conn = CreateObject("ADODB.Connection")
conn.Open ("DRIVER=Firebird/InterBase(r) driver; UID=sysdba;
PWD=masterkey;
DBNAME=10.0.0.223:c:\dinamosql\d7s\@FIREBIRD_2007\data\MHL_2007.fdb;")

conn.BeginTrans
conn.Execute ("UPDATE STOK00 SET NAME='123' WHERE CODE='ZZ'")
MsgBox ("Before End Trans")
conn.CommitTrans
conn.Close
Set conn = Nothing
End Sub

Sub SQL2()
Dim conn
Set conn = CreateObject("ADODB.Connection")
conn.Open ("DRIVER=Firebird/InterBase(r) driver; UID=sysdba;
PWD=masterkey;
DBNAME=10.0.0.223:c:\dinamosql\d7s\@FIREBIRD_2007\data\MHL_2007.fdb;")

Dim rs
Set rs = conn.Execute("SELECT * FROM STOK00 WHERE CODE='ZZ'")
MsgBox ("Select Finished")
If Not rs.EOF Then
MsgBox ("rs.EOF Finished")
rs.MoveFirst
MsgBox ("MoveFirst Finished")
MsgBox rs("NAME")
End If
conn.Close
Set conn = Nothing
End Sub