关于vc + odbc API + SQL server 2000 的一些问题
近期在搞开发,以前都搞的是console,极少涉及数据库的东东,而且搞的是unix,现遇到一些问题,请大家多多指点!
系统采用多线程并发,公用同一数据库连结,访问数据库采用odbc api v3.x
1。请问一个连结同一时间是否只有一个事务(非指单条sql语句的事务)?
2。在多线程的时候发现一个线程的commit,会影响到其他线程的commit,难道是只有一个事务的缘故?能否通过odbc解决?不然我只好自己来个互斥,把一大断代码互斥心不甘呀~~~
3。多线程同步访问数据库时,比如同步insert时,出错:
[HY000][ODBC SQL Server Driver]连结占线导致另一个hstmt。。。
能否通过odbc的东东解决?开多个连结的话,似乎太浪费了!(因为要多线程,所以我将异步访问关闭了)
4。单系统多线程同步访问同一db时,可以通过加锁来保证数据的一致,当需要同时修改多个表时,就可能产生死锁;当然,我们可以通过设计相同的加锁顺序来避免这种情况;可当多个系统操作同一db时,我们没办法保证这一点,那么这个时候应该怎么解决这个问题呢?除了加锁超时外,有何更好的办法?
暂时指向起了这么几个,请大家先指点指点