那些年,我们遇到的傻X问题

 人呢,总是在问题中不断的成长。下面跟大家分享几个在做项目过程中遇到的傻逼问题。

1、找不到存储过程

当遇到这个问题时,我的第一反应就是存储过程名字不对。于是我把存储过程名和数据库中的名字比对了好几遍,都没有发现任何问题。而且,我把错误提示框中的存储过程名复制,然后在数据库中执行,它居然可以顺利执行。顿时我就无语了,开始怀疑最初的判断,难道不是存储过程名的问题?于是我开始查代码,检查过程可谓是艰辛啊。朋友们,你能猜到问题出在哪里吗?经过长时间的努力,最后终于发现了问题之所在——存储过程名前多了一个空格。尼玛呀!这都可以,让人无语!

 

2、浏览器缓存问题

说到缓存,对它还是有那么一点点的了解,每次遇到关于缓存的问题,关闭浏览器后再重新打开就OK了。可是,有一次,我更改了JS文件,然后在IE中查看更改效果,F5刷新,未看到效果,嘿嘿一笑,缓存问题!关闭浏览器,重新查看效果,仍未看到效果。此时有那么一种潜意识,就是我重新打开了浏览器,肯定不是缓存的问题。然后我那个各种找问题啊,最后转了一圈回来,手动清理了缓存,运行!我勒个去,还真是缓存问题啊!这总潜意识,够坑爹!

 

3、字符串长度问题

我们做了一个组合查询的功能,然后把判断哪些下拉框起作用的工作交给了存储过程。下面是界面和存储过程中的代码:

 

Declare @sqlStr VARCHAR(300)  --存储sql语句

SET @sqlStr = 'SELECT MAX(SpecializedScheduleID) AS SpecializedScheduleID,CampusName,BuildingName,RoomName,CourseName,GradeName,TeachClassName,' +  
			   'TeacherName,SchoolYear,Semester,StartWeek,StopWeek,OddEven,WorkDay,BeginTimeSectionName,' +
			   'EndTimeSectionName FROM VB_SpecializedCourseScheduleInfo '+ 
			   'WHERE SchoolYear ='+'''' + @schoolYear + ''''+ 
			   ' AND Semester ='+'''' +  @semester + ''''+ 
			   ' AND WorkDay =' + '''' + @week + '''' --合成sql语句,默认按照学年、学期、星期、单双周查询
			   --+ ' AND OddEven =' + '''' + @oddEven + ''''  	

 IF (@gradeID!='')										--判断是否选择年级
	SET @sqlStr = @sqlStr + ' AND GradeID ='+'''' + @gradeID+''''
 IF (@teacherCollegeID!='')										--判断是否选择教师所属学院
	SET @sqlStr = @sqlStr + ' AND TeacherCollegeID ='+'''' + @teacherCollegeID+''''
 IF (@teacherID!='')										--判断是否选择教师
	SET @sqlStr = @sqlStr + ' AND TeacherID ='+'''' + @teacherID+''''
 IF (@courseCollegeID!='')										--判断是否选择课程所属学院
	SET @sqlStr = @sqlStr + ' AND CourseCollegeID ='+'''' + @courseCollegeID+''''
 IF (@courseCategoryID !='')							---判断是否选择课程类别:归属。指的是选修课性质:人文、社科等
	SET @sqlStr = @sqlStr + ' and CourseCategoryID ='+'''' + @courseCategoryID+''''
 IF(@courseTypeID!='')									--判断是否选择课程类型:理论、实验。
	SET @sqlStr = @sqlStr + ' and CourseTypeID ='+'''' + @courseTypeID+''''
 IF(@coursePropertyID!='')								--判断是否选择课程性质:专业课、选修课
	SET @sqlStr = @sqlStr + ' and CoursePropertyID='+'''' + @coursePropertyID +''''
 IF(@courseName !='')										--判断是否课程名称
	SET @sqlStr = @sqlStr + ' and CourseName like ''%' + @courseName + '%''' 
 IF (@campusID!='')--判断是否选择校区
	SET @sqlStr = @sqlStr + ' AND CampusID ='+'''' + @campusID+''''
 IF (@buildingID!='')--判断是否选择建筑
	SET @sqlStr = @sqlStr + ' AND BuildingID ='+'''' + @buildingID+''''
 IF (@roomID!='')--判断是否选择房间
	SET @sqlStr = @sqlStr + ' AND RoomID ='+'''' + @roomID+''''
 IF (@timeSectionBeginID!='')--判断是否选择开始节次
	SET @sqlStr = @sqlStr + ' AND ClassBegin ='+'''' + @timeSectionBeginID+''''
 IF (@timeSectionEndID !='')---判断是否选择结束节次
	SET @sqlStr = @sqlStr + ' AND ClassEnd ='+'''' + @timeSectionEndID+''''	
 IF (@oddEven !='')---判断是否选择结束节次
	SET @sqlStr = @sqlStr + ' AND OddEven ='+'''' + @oddEven+''''	
	
 SET @sqlStr = @sqlStr + ' GROUP BY CampusName,BuildingName,RoomName,CourseName,GradeName,' +
			   'TeachClassName,TeacherName,SchoolYear,Semester,StartWeek,StopWeek,OddEven,' +
			   'WorkDay,BeginTimeSectionName,EndTimeSectionName'
EXEC (@sqlStr) 

这个问题特别神奇,它是神马情况呢?我们选择查询条件后, 点击查询按钮,可结果却是有时候正常显示,有时出现错误,而且错误提示还不一样,一会是“and 附近有语法错误”,一会又是“GROUP BY附近有语法错误”。我认认真真、仔仔细细的检查N遍代码,都没有发现任何问题,可是错误依然会出现。兄弟们,不知道你们能否体会到我当时的那种心情!经过多次测试,我发现条件下拉框使用少的话,不会出现错误,一旦使用比较多的下拉框时就会出问题。最终我还是发现了问题之所在。原来是“Declare @sqlStr VARCHAR(300)”出现了问题,字符串长度给的太小了,选择下拉框超过一定数量后,sql语句长度就会超出300,错误也就由此产生。尼玛,这么个小破问题,耽误了哥多少功夫!

 

 

4、事务日志已满

看看错误图片:

事务日志已满?这种问题还是头一次碰到。上网查了查,人家都说是空间的问题。我查看了一下数据库所在服务器,果然有问题,服务器C盘空间只剩下可怜的几兆了,能不出问题嘛。于是我删除了一些C盘的东东,誊出2个G的空间。心想:这回可以了吧。再次运行程序,执行了一些操作,Perfect,木有问题。可是,当我再次执行刚才出错误的操作时,同样的问题又出来了。我查看了一下日志文件,所占空间684兆,允许最大空间是700兆,心想:10几兆的空间,记录这么一次的操作,怎么也够了吧!可是呢,问题还真出在了这里,当我把最大空间调到7000兆时,问题完美解决了!回头一看日志文件,发现它居然增长了30几兆。这回算是开眼了,日志文件这增长速度够惊人的,难怪出问题呢!好吧,我承认,是我少见多怪了!

 

当然,在做的过程中,遇到的问题远不止这么,这里只是挑了几个比较傻逼的问题跟大家分享一下。不知道大家有木有遇到过同样的问题?

最后,想说一句话:孩子,你还是太年轻了!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值