仓酷云

标题: MSSQL网站制作之SQL中Print语句的懊恼 [打印本页]

作者: 若天明    时间: 2015-1-16 22:42
标题: MSSQL网站制作之SQL中Print语句的懊恼
BlackHole黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继语句
头几天写一个程序时,偶然中碰到一个怪成绩.

症状形貌以下:

一台遐想服务器上安装了SQLSERVER服务,在其一个数据库里写了一个存储历程.此存储历程承受一个参数,内里的语句对参数举行判别然后实行分支.

if@CustType=0

..................

elseif@CustType=1

.......................

else

...............



基础布局是如许.

当我在开辟的时分,用我的条记本(康柏)上的程序连上服务器,程序里用的ADO中的Recordset来处置.当实行到rs.open时一点成绩也没有.在服务器上也用此程序实行挪用存储历程也没有成绩,统统一般.

可是当用该单元的其他盘算机(都是遐想),用一样的程序会见时,当实行到存储过程当中第一种情形时,一切的窗体都主动封闭,也没有任何的非常呈现.

另有一种出格的情形存在,由于这个成绩之前在个中一台遐想机上有过,厥后我往检察这个成绩,查不出缘故原由.因而我在这台盘算机上安装了VS6,现场调试,但是我调试时统统一般,过了一个月后,又呈现本来的成绩(窗体全封闭)

这下成绩年夜了.一样的程序在分歧的盘算机上实行时偶然一般偶然不一般,程序我信任相对没有错.我想多是盘算机设置有成绩.因而当一台盘算机重做了,再试,仍是不可.

想一想会不会是SP没打,又会了近二个小时把一切的SP安装好.仍是不一般.再安装VS6,也没有效.成绩究竟在那里呢.我细心想一想,我曾想到会不会是遐想的破呆板有成绩,会不会是他的CPU指令不合错误.(由于呆板对照旧一点,再说在其他盘算机上历来不呈现这类成绩).我试着将程序中第一种情形的值改动一下,原本是0,改成3如许没有成绩.因而我将存储过程当中的if@CustType=0改成if@CustType=3.成绩又呈现了.会不会成绩呈现在这个分支,内里的逻辑一定都是对的.看到此分支最初有一行代码,此代码是调试时用的.用来检察存储历程实行时,扭亏为实行了甚么语句,也就是一句print(@SqlStr),会不会是这语句引发的.将其正文了).翻开程序再试.在刀有的盘算机上经由过程.

本来这个成绩是print语句引发的.怪就怪在有的客户端实行时不会有成绩.,而呈现成绩时又不报任何非常,只是将客户端窗体主动封闭.看来今后写程序时必定要注重这个成绩.要将调试代码清算失落.害得我白白花了近一天的工夫.
支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统
作者: 蒙在股里    时间: 2015-1-19 21:33
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
作者: 山那边是海    时间: 2015-1-25 15:42
入门没那么困难,精通没那么容易
作者: 冷月葬花魂    时间: 2015-2-2 22:38
可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。
作者: 飘灵儿    时间: 2015-2-8 18:58
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
作者: 透明    时间: 2015-2-25 22:49
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
作者: 活着的死人    时间: 2015-3-8 09:56
换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的
作者: 谁可相欹    时间: 2015-3-15 21:40
原理很简单,对要求长时间计算某一时间点的报表生成和防用户操作错误很有帮助。但是比起Oracle10g的闪回技术还是细粒度不够。可惜!
作者: 不帅    时间: 2015-3-22 05:10
可以动态传入参数,省却了动态SQL的拼写。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2