Chinaunix首页 | 论坛 | 博客
  • 博客访问: 361641
  • 博文数量: 71
  • 博客积分: 4691
  • 博客等级: 上校
  • 技术积分: 935
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-14 15:14
个人简介

who am i ... i'm back.

文章分类

全部博文(71)

文章存档

2014年(4)

2011年(1)

2010年(22)

2009年(17)

2008年(27)

我的朋友

分类: Sybase

2008-04-03 09:31:46

一下结论针对版本ASE:
 Adaptive Server Enterprise/12.5.3/EBF 12146/P/RS6000/AIX 5.1/ase125x/1883/64-bi
         t/FBO/Thu Nov 11 22:31:37 2004  


首先我们认为 EXEC SQL SELECT @@tranchained ;能够得到当前连接是否是处在"chained"
           EXEC SQL  SELECt @@trancount   能够得到现在当前是否处于事务中。

经过测试 

 EXEC SQL connect  :username IDENTIFIED BY :pwd;
 printf("connect return [%d]\n", sqlca.sqlcode );

  nCount = 0;
  EXEC SQL select @@trancount INTO :nCount;
  printf("after , select return [%d], nTranCount[%d]\n", sqlca.sqlcode, nCount );

  EXEC SQL select @@tranchained INTO :nChained;
  printf("before select return [%d], nChained[%d]\n", sqlca.sqlcode, nChained );   


输出:
connect return [0]
after , select return [0], nTranCount[1]
before select return [0], nChained[0]

说明connect数据库后就默认处于事务中(我们认为chained 起作用了), 可是这时的tranchained 居然为 0, 不开启,是在让人头疼。。

当然针对isql 的交换来说不是这个样子的:
  
1> select @@tranchained
2> go
            
 -----------
           0

(1 row affected)
1> select @@trancount
2> go
            
 -----------
           0

(1 row affected)
1>

目前的实验结论是:

     isql工具默认chained是off的, 我们自己程序的连接后默认是 on的,但是不能同坐@@tranchained 变量显示出来。
     当然,如果显示的设置 EXEC SQL SET CHAINED ON|OFF 后, @@tranchained 变量时能正确反映的。




阅读(1702) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~