【我发现了一个MS SQL 2000的大大大BUG!!】

topycsdn 2012-01-12 06:03:00
如题.
我不是初学者.

并且此问题已经经过许多同行朋友们的见证.

此问题不会在2005或2008版本中出现.但是在2000版本中出现.
希望借此机会,提醒使用2000版本的朋友们要小心了!
==============================================
具体问题详见网盘下载
共享链接:http://163.fm/41eDQ4v 提取码:LIcr0s7f
...全文
225 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
pborvb 2012-01-26
  • 打赏
  • 举报
回复
没图没真相
zhoujin96 2012-01-25
  • 打赏
  • 举报
回复
什么错误,请明说
duoxu1983 2012-01-20
  • 打赏
  • 举报
回复
没发下载
「已注销」 2012-01-18
  • 打赏
  • 举报
回复
同14楼。

其他错误

是什么错误。
topycsdn 2012-01-18
  • 打赏
  • 举报
回复
楼上那位朋友.CSDN不能传附件.我有啥办法.
我发现的BUG,本来我自己能杜绝就好了.但是我本着分享的心态告知大家,只是希望大家不要重走我的弯路.
若你觉得我发这个帖子没必要,你可以不看就是.
EnForGrass 2012-01-18
  • 打赏
  • 举报
回复
我竟然下载不了,看来是看不了

luoshengqian 2012-01-18
  • 打赏
  • 举报
回复
一个问题,搞得这么繁琐,还要人上去下载,又是网盘,又是提取码的,懒得去看
houyajin 2012-01-16
  • 打赏
  • 举报
回复
王向飞 2012-01-16
  • 打赏
  • 举报
回复
2000 ?玩玩就行了
topycsdn 2012-01-16
  • 打赏
  • 举报
回复
这个问题貌似没什么人关注。。?
叶子 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 maco_wang 的回复:]

引用 7 楼 topycsdn 的回复:

我是楼主

今天下午的时候有致电微软亚太技术支持部门.对方说已经不再为SQL 2000提供技术支持了.但是会记录我的联系方式.把我给郁闷的!!


对IE6都不提供技术支持了 IE6是2001年出的,SQL SERVER 2000是1998年推出的。
[/Quote]
我记错了,Microsoft SQL Server 7.0是1998年的,SQL SERVER 2000是2000年推出的。
叶子 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 topycsdn 的回复:]

我是楼主

今天下午的时候有致电微软亚太技术支持部门.对方说已经不再为SQL 2000提供技术支持了.但是会记录我的联系方式.把我给郁闷的!!
[/Quote]

对IE6都不提供技术支持了 IE6是2001年出的,SQL SERVER 2000是1998年推出的。
topycsdn 2012-01-12
  • 打赏
  • 举报
回复
我是楼主

今天下午的时候有致电微软亚太技术支持部门.对方说已经不再为SQL 2000提供技术支持了.但是会记录我的联系方式.把我给郁闷的!!
唐诗三百首 2012-01-12
  • 打赏
  • 举报
回复
学习了,
叶子 2012-01-12
  • 打赏
  • 举报
回复
偶没有SQL SERVER 2000的环境。
SQL77 2012-01-12
  • 打赏
  • 举报
回复
等下载.
专心做码农 2012-01-12
  • 打赏
  • 举报
回复
............


坐等小白鼠
topycsdn 2012-01-12
  • 打赏
  • 举报
回复
此问题很诡异很诡异很诡异!
一个简单的SQL SELECT脚本,竟然执行不出理应的数据结果!!这个问题很严重!!
测试管理与QualityCenter培训手册 1、测试流程管理、测试度量方法 按照尽早进行测试的原则,测试人员应该在需求阶段就介入,并贯穿软件开发的全过程。就测试过程本身而言,应该包含以s下几个阶段。  -测试需求的分析和确定。  -测试计划。  -测试设计。  -测试执行。  -测试记录和缺陷跟踪。  -回归测试。  -测试总结和报告。 一个好的测试管理工具应该能把以上几个阶段都管理起来。 测试人员每时每刻都在度量别人的工作成果,而测试人员的工作成果又由谁来度量呢?度量的标准和依据是什么呢?软件测试的度量是测试管理必须仔细思考的问题。缺乏尺度会让测试失去平衡,缺乏标准会让测试工作难以衡量。 2、如何搭建测试管理平台? 首要问题是流程的规范化。 (1) 测试进入和退出标准。 (2) 协作流程。 (3) 缺陷跟踪管理流程。 (4) 工具平台的引入。 目前主流测试管理平台与缺陷跟踪工具: 3、QC(Quality Center)介绍 QC标准测试管理流程 QC支持的应用服务器:Jboss、WebLogic、WebSphere QC支持的数据库:Oracle、SQLServer QC支持的操作系统:Windows、Linux、Solaris 支持群集: 服务器端硬件和数据库要求: Windows: Linux: Solaris: 客户端系统要求: 练习1:安装QC 详见《Mercury Quality Center 9.0 Installation Guide》 Win2003+SQLServerSp4+QC9.0安装示例 1、安装Windows Server 2003 Enterprise Edition、安装IIS邮件服务器 2、安装SQL Server 2000、打上补丁Sp4 安装好SQL Server 2000后注意启动SQLServer服务器 3、安装QC9.0 服务器名称也可以是IP地址 4、启动QC9.0 5、QC9.0安装问题解决 - JBOSS启动不了 原因:8080端口被其他应用程序占用。 用netstat查看谁占用了8080端口 netstat -ano 解决办法1:修改其他程序的端口使用 解决办法2:修改JBOSS的启动端口 JBOSS_HOME\server\default\deploy\jbossweb-tomcat55.sar\server.xml 6、修改IP地址后不能登录QC 解决办法: 在C:\Program Files\Mercury\Quality Center\jboss\server\default\deploy目录下找到10sabin.war 进入10sabin.war\WEB-INF,修改siteadmin.xml中的IP地址: 修改数据库中的数据: 修改后可以登陆 但是还需要修改以前Project的数据库连接属性 否则会提示错误 然后还要修改 C:\Program Files\Mercury\Quality Center\repository\qc中的dbcon.txt: qcsiteadmin_db@192.168.1.12.1433. 还有 C:\Program Files\Mercury\Quality Center\repository\qc\Default\QualityCenter_Demo_db中的dbid.xml 192.168.1.12 7、Mercury Tours 样例程序 启动:http://192.168.1.2:8080/mtours 注意安装JVM才能“View Calendar” 4、创建和定义测试需求、测试需求管理、跟踪 定义需求 1、查看需求 视图->需求树 2、添加需求 需求->新建需求 输入以下内容 3、添加子需求项 查看需求 ZooIn : CTRL + I ZooOut : CTRL + O 视图->编号 视图->需求网格 视图->筛选/排序->设置筛选器/排序 设置排序字段 设置过滤条件 修改需求 拷贝需求项Cruise Reservation 重命名需求项Cruise Reservation_Copy_1为Hotel Reservation 移动需求项
V1.1比V1.0增强了IDBSession功能,可查询得到 IDataReader;修改了查询 in 操作符的bug
内含代码生成器,支持Oracle/SqlServer/MSAccess,ORMap性能大大优于iBatisNet,终身免费无限制使用,绝无任何版权问题。
===========
软件说明:
1.1 引言
约有90%的企业信息化管理系统基于数据库实现,这类系统中又有超过30%的代码集中在数据访问层负责业务数据存取。除了实现数据的增删改查,数据访问层还要提供一些与业务无关功能,例如面向对象的持久化与访问机制、本地事务与分布式事务支持、多数据库支持,这些机制或功能形成相对独立的逻辑领域,其主要目的有:

1、 提供简单易用的数据库访问方法,提高开发效率;

2、 提供面向对象的方式来简化对数据库访问与操作,也就是ORMap方式;

3、 屏蔽数据库差异,使开发出的产品容易在不同数据库产品上移植。

为了适应软件快速开发的需要,软件企业应该借助组件产品或开源软件项目来搭建这些基础设施。在.Net平台上,目前比较成功和应用较广的开源项目有NHibernate和IBatisNet等,它们在ORMap方面的表现尤为突出。依赖这些平台,软件开发效率和产品质量都得到了极大提高,ORMap机制渐渐成为大势所趋。

本公司致力于软件组件开发,提供的AppFramework数据库访问组件具有高效的ORMap机制,调用接口简单灵活,支持各种主流的数据库平台,是个非常优秀的数据访问组件。本文详尽描述了AppFramework数据库访问组件使用的方法和技巧,有助于开发者最大程度发挥出AppFramework的优势。

1.2 各种优秀ORMap工具比较
NHibernate和IBatisNet等虽然都实现了ORMap,但它们的设计侧重点有所不同,有着各自的优势和缺陷,适合于特定的项目。NHibernate实现了纯对象化的ORMap,在屏蔽数据库差异、面向对象方面做的非常好,但在访问与操作海量数据时其性能表现较差,也不易实现复杂的查询统计功能。NHibernate适合那些数据量不大、性能要求不高、复杂度不高的场合。

IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果集也用反射的方式构造为对象集合返回给程序。由于提供了灵活的SQL模板机制,在海量数据的访问与操作方面其性能比NHibernate要高得多,也很容易实现各种复杂的数据查询统计功能。但是IBatisNet也存在许多几个不足之处,有些还是先天因素造成的:

第一,数据库可移植性差。IBatisNet获得高性能与灵活性也是付出代价的,它牺牲了数据库可移植性:由于编写SQL模板不得不用到数据库产品的一些语法差异,例如ORACLE的TO_DATE、Length()、SYSDATE等,为了把产品移植到其它数据库,开发人员不得不对大量的SQL模板进行翻译。

第二,无法方便地向数据库中插入NULL值。因为IBatisNet是直接把C#的基本类型(如int/DateTime)插入到数据库中字段的。对于一些C#值类型,例如int,并没有NULL状态。于是不得不采用一些特殊的值来表示NULL,例如int.MinValue。IBatisNet数据映射器会自动把int.MinValue转换为NULL插入到数据库,而从数据库中获得NULL时,也会转化为C#的int.MinValue。这样,程序就要对int.MinVaue这个值进行特殊处理,例如不能把int.MinValue直接显示在DataGrid里或界面上。有一种规避的方法,就是避免向数据库插入NULL,即要求所有业务数据入库的值都不为空。但这样作实际上是限制了程序的行为能力,例如无法实现单据草稿的保存。

第三,在插入数据时无法方便的使用字段默认值。最明显的就是类似于LAST_UPDATE_TIME了,通常为了保证这个字段的一致性,通常在插入新记录时采用当前数据库时间作为字段值。但IBatisNet接收的实体类对象属性都是普通C#类型,并不具备传入表达式的能力。如果采用动态SQL,则会导致SQL模板和参数实体类过于复杂,将极大降低性能。

第四,在查询返回大量对象时,用反射的方式构造实体的方式性能损失是相当大的。实体类属性数目越多、返回记录数越多,用到反射的次数也越多,查询性能降低就越明显。

第五,不能方便地限定查询语句返回的字段。ADO.Net执行查询时,select语句里设置了几个字段就返回几个字段到DataTable。而IBatisNet若要返回不同的字段就要定义多套ResultMap,否则就定义一套所有字段的ResultMap,任何查询都返回所有字段。这样无疑浪费了数据库服务器与应用服务器之间的网络带宽,在进行海量数据访问时性能将严重降低。

第六,返回的结果IList不能够方便地进行二次查询。相比之下,ADO.Net返回的DataTable虽然性能差一些,但可以实现在应用程序内存中灵活和高性能的二次查询。

第七,无法直接利用数据库的特殊语法支持海量数据的分页查询功能。众所周知Oracle提供了ROWNUM实现数据数据库内分页功能,若要利用这一特性,就要在SQL模板里直接硬编码这些特殊语法,这必然导致大量的移植工作。

第八、缺少代码生成和检查工具。程序里的变量名与Sql模板里的变量经常会出现不一致,而这些错误无法在编译时发现,靠人工检查很容易造成错误泄漏。也没提供工具直接生成SQL模板和映射配置文件。

第九,IBatisNet的SqlMap文件里的SQL语句以明文存放,容易被修改造成重大安全隐患,尤其不适合开发C/S应用程序。

第十,由于Sql模板采用动态加载的方式,如果写错了SQL,程序里难以跟踪调试,这对初学者来说无疑是对耐心和信心的极大考验。

总之,IBatisNet虽然提灵活、高性能的ORMap机制,但却损失了数据库可移植性的,在使用方便性和局部性能方面也都有很大提高的余地。

1.3 AppFramework数据访问组件的组成和优势
AppFramework数据访问组件由下列文件组成:

1、 AppFramework.DBAccess.dll

提供多数据库统一的访问接口,提供DAO管理器、数据库会话管理器。

2、 AppFramework.Data.dll

提供核心的数据结构和基础类。

3、 AppFramework.Tools.CodeGenPlugin.msi

提供集成于Visual Studio 2005的C#代码生成器插件,用于生成DAO/Model/各种接口。

4、 DBAccess.config

配置数据库连接串。

5、 CodeGenPlogin.config

配置代码生成器参数。

6、 *.DaoGen文件

配置DAO生成信息,并由CodeGenPlugin解析生成代码。



AppFramework数据库访问组件针对IBatisNet的种种缺陷提出相应的解决方案,相比之下有如下优势:

1、 从扩展基础数据类型入手,解决了空值问题和默认值问题;

2、 提供了内置的数据库内分页访问机制,极大地提高了海量查询的响应速度;

3、 增加ObjectTable泛型类来承载查询返回的对象集,不但比IList更加强类型化,还提供了二分查找功能,使得对象结果集可以在应用程序内存中进行重排序和快速查找;

4、 提供了强大的QueryFilter类构造查询条件,使得实现数据查询不再需要编写复杂的SQL语句;

5、 提供类似IBatisNet的Sql模板功能,为复杂的查询统计提供较直观的开发模式;

6、 提供代码生成工具,生成的类代码的同时可以类之间的继承关系和接口实现关系,所有DAO类方法均以接口作为参数,使得代码更加具有可扩展性和灵活性。

7、 Sql模板和ORMap直接生成.cs原代码,编译为可执行代码,各种ORMap映射文件无需再随主程序集一起部署,提高了代码的安全性,提高了代码的可调试性,也提高了ORMap的性能。



下面三张表格罗列的测试数据,可以明显看出AppFramework数据库访问组件的性能全面超越了IBatisNet:



表I –10并发20循环(数据库和测试机分开)

对比项目
iBatis2.0

(毫秒)
AppFramework

(毫秒)
后者前者性能对比

(倍)

根据主键获取实体

(20次单条select)
19.8
16.1

QueryFilter:18.0
1.23

1.10

每秒插入实体

(20次insert)
41
21
1.95

更新实体

(20次单条update)
27
19

SqlMap:24
1.42

1.13

查询结果集(平均101行)

(2循环200次select)
1100
690

不定字段:720
1.59

1.53




表II –50并发4循环(数据库和测试机分开)

对比项目
iBatis2.0

(毫秒)
AppFramework

(毫秒)
后者前者性能对比

(倍)

根据主键获取实体

(20次单条select)
17.5
13.3

QueryFilter:14.5
1.32

1.21

插入实体

(20次insert)
36.1
17.4
2.07

更新实体

(20次单条update)
23.5
15.9

SqlMap:20.3
1.48

1.16

查询结果集(平均101行)

(1循环200次select)
1055.1
666.8

不定字段:710.1
1.58

1.50




表III –50并发10循环(数据库和测试机同机)

对比项目
iBatis2.0

(毫秒)
AppFramework

(毫秒)
后者前者性能对比

(倍)

根据主键获取实体

(20次单条select)
6.1
5.3

QueryFilter: 5.75
1.15

1.06

插入实体

(20次insert)
15.1
10.8
1.40

更新实体

(20次单条update)
10.4
7.5

SqlMap:9.3
1.38

1.12

查询结果集(平均101行)

(1循环200次select)
560
360

不定字段:380
1.56

1.47




总之,AppFramework数据库访问组件是一个高性能、接口简单、可移植性强、高灵活性的综合数据访问解决方案。使用AppFramework数据库访问组件,可以降低企业的开发人员培训成本,提高产品的开发速度,提高产品稳定可靠性,提高产品的可伸缩性和可移植性。下文将分入门、精通、高级三个篇章,详细讲述如何使用AppFramework数据库访问组件来搭建应用程序。
RapidWebDev框架源码 1. 概述 Eunge 在CodePlex上发表的视屏介绍 RapidWebDev是一个完全开源的企业应用快速开发框架,它提供了在.NET开发中经常会用到的组件和服务,当前包括了常用组件, 扩展模型, 业务平台和 快速web架构四个部分,我们计划在不久的将来添加文件管理,社区和搜索/索引等组件。 常用组件 常用组件是一些常用的组件和可复用API的集合,它包含了公共方法、异常处理,缓存、验证、全球化\本地化、动态类生成器、Data Context工厂、日志处理、事物处理、Spring.NET整合等等 扩展模型 扩展模型可以让你在系统运行的时候动态的编辑字段,并且不用重新编译就可以实现用户界面的更新及CRUD操作,并且它还提供元数据管理的用户界面和asp.net动态表单的验证支持。 快速WEB架构 快速web架构是一套WebUI框架,你不用了解太多的JS,HTML,CSS,AJAX解决方案等技术,只需要编写XML配置文件定义用户界面和通过实现简单的接口来整合客户的商业逻辑,便能实现高效的 AJAX的web应用程序。它能将开发人员从一些繁琐的事情(比如:调整页面CSS文件,编写大量的HTML/ASP.NET代码,处理大量的UI逻辑,为页面设置数据绑定,处理分页及排序,统一页面风格和操作规范等)中解放出来,从而专注于商业逻辑,软件质量等方面。 业务平台 业务平台是一个可重用API和组件的集合,他帮助开发人员将精力更多的集中到商业应用程序的开发上。他包含了成员,角色,权限,组织,等级,实体模型,关系模型,用户授权和验证,站点地图和SAAS架构等。这里有一个我们的成功案例,在2009年8月,我们交付了一套社区管理系统,整个开发周期只有短短的一个月(我们的客户估计要3-4个月),并且bug数量总共不到10条。你也许觉得这不可思议,但是RapidWebDev让这成为了可能,因为RapidWebDev大大的简化了我们的工作,提供了可靠的质量保证。我们只增加了4张数据表和5000行代码,便实现了客户所需要的功能。 2. 系统特色 通过XML配置实现真正的Ajax页面,而不需要过多的关注html, css和js开发 基于插件式的设计,易于集成 可扩展的身份验证和授权解决方案。 成员,角色,权限,组织数据模型和管理接口。 层次模型和管理接口 枚举数据模型和管理接口 关系数据模型和管理接口 通过扩展模型来管理运行时对象属性 成熟,专业,可以定制的Web用户界面,且可以方便的进行权限控制 SAAS兼容架构 全球化和本地化支持. 事务性缓存允许缓存和事务能同步工作 提供了许多有用的工具,如:缓存,事物处理,验证,异常处理,日志,Linq DataContext工厂,Restful web service等. 3. 系统架构 基于.NET Framework 3.5 SP1,并且使用的目前最新的技术开发。 全面支持SAAS 架构. 通过Spring.NET实现松散连接,插件和AOP. 通过Common Logging处理日志, 它整合了常用的日志解决方案,如:Log4net, NLog 和 MS Enterprise Library Logging等. 通过ExtJS实现UI的动态输出,它提供了最佳的用户体验以及可靠性. 通过Linq-To-SQL进行数据访问,我们计划在ADO.NET Entity Framework成熟以后进行迁移. Restful web service. 通过NBehavior实现行为驱动. RapidWebDev是一个完全开源的企业应用快速开发框架,它致力于是通过整合和创新对生产率和质量进行提高。现阶段,它整合了开发中需要用到的大多数常用的组件,服务,API以及UI框架。实践证明,它可以让项目节省超过50%的代码,并且代码质量和开发效率比其他的解决方案都要高出很多 设置Xml Schema 复制如下XML定义文件(C:\MyProject\RapidWebDev\xml schema\目录下找到它们)到你vs2008的Schemas目录(%VSTS%\Xml\Schemas\)下,以获取Visual Studio的智能感知支持: DynamicPage.xsd; DataSource.xsd; Definition.xsd; SiteMapConfig.xsd; FieldMetadata.xsd; routebuilder.xsd; PermissionConfig.xsd 启动需要的Windows 服务 你需要在你的目标web服务器上面启动如下两个服务: 1、ASP.NET State Service – 这个不是必须的,但是默认的是使用本地的Session State 服务,如果需要指定网络中的其他server作为Session State Server,请修改web.config. 2、Distributed Transaction Coordinator 在VS2008中配置 使用VS2008打开C:\MyProject\RapidWebDev\src\下的RapidWebDev.sln项目(如果是WIN7,2008,VISTA操作系统,需要以管理员身份运行VS.)。加载完成后打开web.config,找到connectionStrings部分,将连接字符串修改为你本地的连接字符串 在web.config配置了3个restful service, 它们分别是OrganizationService, RoleService 和 HierarchyService,在执行项目之前,先需要修改它们的endpoint.(如果你没有修改web项目的执行端口,可以不用修改 系统从 /LogOn.aspx 进入

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧