您的位置:程序门 -> vb -> 数据库(包含打印,安装,报表)



婷婷跪求各位大虾


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


婷婷跪求各位大虾
发表于:2007-06-11 14:39:58 楼主
组长让偶调查一个问题,问题如下:
在vb中,执行下列代码(oracle数据库)
ssql   =   ssql   &   "select   "
ssql   =   ssql   &   "unbincd,   "
ssql   =   ssql   &   "chokbn, "
ssql   =   ssql   &   "nvl(nullif(teisiymd,0),99999999)   as   teisiymd   "
ssql   =   ssql   &   "from   msoko   "
set   objrs   =   g_oradatabase.dbcreatedynaset(ssql,   0)

if   g_ndate   > =   objrs!teisiymd   then
    set   objrs   =   nothing
    exit   function
end   if

现在问题是当上面的teisiymd字段是0的时候,在sqlplus里面是99999999,但在vb里面objrs!teisiymd竟然是0。为什么呀?当把上面sql文中的别名由teisiymd改为其他任意的名字时,发现vb里面执行的结果是99999999.好奇怪呀,是不是数据库的设置问题?请各位大虾救救婷婷吧!分不够可以再给~~~
发表于:2007-06-11 14:40:541楼 得分:0
刚来就看你跪下了,赶紧起来~~
发表于:2007-06-11 14:44:242楼 得分:0
楼上的,有能力就帮帮偶吧,急死了~~~
发表于:2007-06-11 14:48:113楼 得分:0
ssql   &   "nvl(nullif(teisiymd,0),99999999)   as   teisiymd   "

别名之所以叫别名,就是因为要和原名不一样.至于sqlplus如何规定不管它,至少规范的用法就不应该用一个与原来字段同名的名字作为别名,我认为应该是错的,不知sqlplus为什么认可.
发表于:2007-06-11 14:54:374楼 得分:0
这一点你可以认为vb考虑得更细密更严格.
从常识上,也不应该对一个有所变换的字段起一个跟原名一样的别名,这是肯定的.不必没事撞墙玩,有时间也不能这么浪费.
发表于:2007-06-11 14:56:125楼 得分:0
这个我有点了解,加我qq185435733,,msn,caoguoqing209@sohu.com
发表于:2007-06-11 14:59:036楼 得分:0
刚试了一下,倒是没有出错.在mssql里,这样整也没错.

但是在逻辑上还是说不过去的.尽量不要这么用.我这么多年都从来没想过要去这么整,甚至以为在语法上都不对呢.但并非是以为在语法上不对才不这么用(否则早就可以试验一下),而是相反.
发表于:2007-06-11 15:11:427楼 得分:0
各位大虾,这代码原来后台是sql   server的,现在改为oracle。
以前同样的代码在sql   server里面运行没有问题啊。为什么到了oracle里面出问题啦?

有没有更加简单的修改办法啊,因为有好多类似的sql文,一个个去改别名太麻烦了...
发表于:2007-06-11 16:28:448楼 得分:0
自己顶自己
发表于:2007-06-11 17:11:389楼 得分:0
关键是看你用的数据库驱动程序.语法的检查和翻译都是它管的.   你应该查查它的相关说明.

如果开始就用安全且更清晰的编码规范去做,也不至于碰上这种问题.   看来你这回就算是交学费了.

改名称,也不用一个个改.批量替换还不会吗?   阳关大道你不走,偏去走那钢丝绳,唉...
发表于:2007-06-11 17:16:1510楼 得分:0
标志一个程序员成熟与否,就看他善不善于防范和规避问题.
道已经偏了,还要硬钻死胡同,哪怕把胡同钻破了走通了,看起来好看吗?

就象这个问题,正常解决不了,必须花点手段,而这些手段,在日后看来,或者不知情者看来,就会显得非常古怪.   代码如果写得很不自然,东打补丁西打补丁,肯定是失败的.
发表于:2007-06-11 17:18:3811楼 得分:0
ssql   &   "nvl(nullif(teisiymd,0),99999999)   as   teisiymd   "
这样用好奇怪的,你换一个名字吧

一个一个改吧,耐心点。
发表于:2007-06-12 09:33:5812楼 得分:0
顶!
发表于:2007-06-12 11:14:4213楼 得分:0
“标志一个程序员成熟与否,就看他善不善于防范和规避问题.
道已经偏了,还要硬钻死胡同,哪怕把胡同钻破了走通了,看起来好看吗?

就象这个问题,正常解决不了,必须花点手段,而这些手段,在日后看来,或者不知情者看来,就会显得非常古怪.   代码如果写得很不自然,东打补丁西打补丁,肯定是失败的.”
agree!!!
另问:
shenting007   (st)是程序员吗?
发表于:2007-06-15 17:28:3914楼 得分:0
我的看法和vbadvisor(sunlight)一致


快速检索

最新资讯
热门点击