Subject | Re: ODBC v1.2 Beta problem |
---|---|
Author | vmdd_tech |
Post date | 2004-02-09T22:22:07Z |
Here is some more information.
I can circumvent this ODBC/RC6 problem by having my PB
app to do a commit before doing any select.
Ben
--- In firebird-support@yahoogroups.com, "vmdd_tech" <vmdd_tech@y...>
wrote:
I can circumvent this ODBC/RC6 problem by having my PB
app to do a commit before doing any select.
Ben
--- In firebird-support@yahoogroups.com, "vmdd_tech" <vmdd_tech@y...>
wrote:
> I've just found out something more that may point the<tmiller@b...>
> finger to either my Firebird rc6 or the ODBC driver 1.2beta.
> Let me illustrate by the following time sequences:
>
> For simplicity, I have
> pbapp A that has autocommit = false,
> jdbctool B that has autocommit = true
>
> Time 1.1:
> A does "select * from t1 where dt <='2004-2-10'".
> This works as expected.
>
> Time 1.2:
> B does an insert: "insert into t1(...,dt) values (..., '2004-2-9')"
> This works. Note that B has autocommit = true.
>
> Time 1.3:
> B verifies that the above insert works by issuing
> "select * from t1 where dt <='2004-2-10'".
> This works as expected.
>
> Time 1.4:
> A does "select * from t1 where dt <='2004-2-10'".
> This does not work as expected. The record inserted in time 1.2
> does not show up.
>
> Time 1.5:
> I exit A. Then, restart A, and issue
> "select * from t1 where dt <='2004-2-10'".
> This works as expected. Then, why it did not work at Time 1.4.
>
> ====================================================
> Here is another test which is similar to the above:
>
> Time 2.1:
> A does "select * from t1 where dt <='2004-2-10'".
> This works as expected.
>
> Time 2.2:
> B does an insert: "insert into t1(...,dt) values (..., '2004-2-9')"
> This works. Note that B has autocommit = true.
>
> Time 2.3:
> B verifies that the above insert works by issuing
> "select * from t1 where dt <='2004-2-10'".
> This works as expected.
>
> Time 2.4:
> A does "select * from t1 where dt <='2004-2-10'".
> This does not work as expected. The record inserted in time 2.2
> does not show up.
>
> Time 2.5:
> A does an update on a DIFFERENT table t2:
> "update table t2 set ... = ".
>
> Time 2.6:
> A does "select * from t1 where dt <='2004-2-10'".
> This does work as expected. The record inserted in time 2.2
> does show up. Then, why 2.4 did NOT work.
>
>
> Ben
>
>
>
>
>
>
>
>
>
>
> --- In firebird-support@yahoogroups.com, Thomas Miller
> wrote:turning
> > This isn't a bug in the ODBC driver. That is the way it should
> work by
> > default.
> > It will only read committed reads. You either need to commit the
> > records yourself
> > in a transaction or let the program do it automatically by
> on
> > AutoCommit.
> >
> > vmdd_tech wrote:
> >
> > >Background:
> > >My PowerBuilder app can not see changes that
> > >have been committed by other apps (e.g., Java apps). Note that
> > >by default, PB apps have sqlca's autocommit to be off.
> > >
> > >This has been reported since v1.1 beta 1 and 2. I've just tested
> > >with v1.2, and the problem is still there.
> > >
> > >However, when I make PB's sqlca's autocommit to be true, then PB
> > >apps can see other changes by other apps.
> > >
> > >Ben
> > >
> > >PS: Will someone please forward this message to the ODBC
> development
> > >group? Thanks.
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >Yahoo! Groups Links
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> > --
> > Thomas Miller
> > Delphi Client/Server Certified Developer
> > BSS Accounting & Distribution Software
> > BSS Enterprise Accounting FrameWork
> >
> > http://www.bss-software.com
> > http://sourceforge.net/projects/dbexpressplus