了解SQLServer中varchar(max)、nvarchar(max)和varbinary(max)

在Microsoft SQLServer2005及以上的版本中,对于varchar(n)、nvarchar(n)和varbinary(n)有了max的扩展。可以使用如:varchar(max)、nvarchar(max)和varbinary(max)的大值数据类型来存储最多2^30-1个字节的数据。

这几个数据类型在行为上和较小的数据类型 varchar、nvarchar 和 varbinary 相同。
微软的说法是用这个数据类型来代替之前的text、ntext 和 image 数据类型,它们之间的对应关系为:
varchar(max)-------text;
nvarchar(max)-----ntext;
varbinary(max)----image.
有了大值数据类型之后,在对大值数据操作的时候要比以前灵活的多了。比如:之前text是不能用‘like’的,有了varchar(max)之后就没有这些问题了,因为varchar(max)在行为上和varchar(n)上相同,所以,可以用在varchar的都可以用在varchar(max)上。 查看更多...

SQL Server 2005及以上版本中XML操作函数详解

一直以来,使用sqlserver都比较少,之前读书时学过sqlserver2000、sqlserver2005,却一直没接触到类似于sqlserver2005中引入新的字段类型XML、varchar(max)、nvarchar(max)、varbinary(max)之类的知识。直到今天,用到大字节的数据存储,才发现有这个改进,确切点说,是sqlserver2005中废弃了text、ntext 和image类型采用新的max标记来扩展原有字段的存储能力,如varchar(max)、nvarchar(max)、varbinary(max),关于这些在后面单独描述,本篇介绍一下sqlserver2005以后新增的一个类型——XML。

我们采用T-Sql操作Xml数据。使用sqlserver2005引入的XML数据类型。用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列;此外,还允许带有变量和参数。为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB)。

用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中。 查看更多...

博客两周年小记

还是那句话,时间过得真快,想起前年12月5号,一时兴起,写起了博客,至今已经两年有余了,说到这有朋友难免会疑惑了,为什么才两年?博客Title却标了Since 2007?其实,主要是因为博客中有一部分是从bokee等处Copy过来的,于是就悄悄的把日期修改为原始发布日期了,这样也就出现了现在的Since 2007。想起前几天还一直没东西写,4号晚上还找人帮续费用了两年的主机,虽然很慢很慢,但很是稳定,加个cdn也就这么一直使用着。终于盼来了周末。看到飞逝的日期,突然发现,忽略了这个12月5号,博客稳定运行两周年了。

话说这两年的博客历程中,应该说最有意义的还是今年了,10年开始,没人知晓,写些自己备忘或是给朋友做参考的小文章。11年,在学校无聊,整天整理一下杂乱无章的文字,朋友说我这不算博客了,不过我觉得个人随心写,也无关他人痛痒。 查看更多...

初识新版FusionCharts(3.2)系列flash图表控件

FusionCharts Team 是家印度公司,大家可以去他们官网http://www.fusioncharts.com/

他们出品了很多工具,虽然统称为FusionCharts,但是这套flash图表控件包含以下的内容:
1、flash图表控件(FusionCharts)
2、flash地图控件(FusionMaps)
3、flash压力表控件(FusionWidgets)
4、flash电源图(PowerCharts)
另外他们有free版本的控件,可以免费使用,Evaluation版本是增强版本,不但图表漂亮了很多,功能也提升了不少,只是图表上有他们公司的标志而已,也因此,强大的国人发了很多破解版。

最近接触FusionChart图表控件,用的还是旧版,有空看了下新版3.2,发现从3.2开始已经不再是只支持xml格式数据了,同时提供了xml和json格式的支持,图表展示方面也提供了javascript的展示 查看更多...

dojo实现的两种拖拽方式(拖动、拖放)

Web2.0的时代,网页中常常会用到拖拽的效果,这里了解下使用dojo来实现拖拽。在开始尝试了解dojo拖拽效果以前,必须明确拖拽具有两种截然不同的表现效果。

第一种表现效果是图标被拖拽到哪里,其就会被直接放到哪里,这个拖拽效果是图标完全紧跟拖拽的动作,与每一个拖拽动作的运动轨迹完全契合,这种效果被称为“ 拖动”。第二种表现效果是当图标被拖拽到一个地方,松开鼠标的时候,图标会以当前位置为基础而以其它图标为参照系进行位置的自动调整。这种效果被称为“拖放”。

dojo的拖动

“拖动”与“拖放”相比较,原理更加容易理解,使用更加简单。而且更加贴近于人们直观印象中的“拖拽”效果。

最简单的拖动实例

要在 dojo 的支持下,实现拖动的效果所需要的只是使用 dojo 所提供的 dojo 标签属性标注出希望实现拖动效果的实体。 查看更多...

dojo widget生命周期及使用详解

dojowidgetDojo所开发的控件具有很强的内聚性和面向对象性。dojo的dijit._widget是dojo提供的图形界面组件库。

首先从dijit组件的核心类dijit._Widget开始
dijit._Widget是所以dijit组件的父类,dijit默认提供的组件和自己开发的组件都要继承此类。dijit._Widget提供了对组件生命周期的管理。dijit组件生命周期管理在实现的时候使用了template method设计方式。dijit._Widget的create()方法定义了默认模版。开发人员也可以覆盖create()方法,提供一套不同的生命周期实现。dijit定义的生命周期实现:

图中椭圆行的三个方法是dijit提供的扩展点,用户可以自己覆盖这些方法。 查看更多...

dojo.io.iframe异步发送form数据包

今天在使用dojo进行异步请求动作的同时,加入了一个文件上传,由于不想引入struts等框架,采用了古老的jspsmartupload,结果用xhrPost异步提交时无论如何都没有反应,鉴于公司限网,只好回家查资料了。搜索一番发现dojo中想异步上传数据包,有一个专门的方法,就是使用dojo.io.iframe。

这里,顺带提一下dojo的XHR,XHR框架是dojo对ajax支持的一组方法,允许想服务器端发出get、post、put、delete请求,这些方法包括:xhrGet、xhrPost、xhrPut、xhrDelete。具体在前面转载的文章《用Dojo实现XHR、跨域、及其他Ajax请求》中描述的很清楚,有需要的可以去了解。
这里需要注意,所有这些函数都遵守相同的语法:接受一个属性配置对象作为参数。在这些对象中您可以定义您想要发出的Ajax请求的各个方面。再一次说明,这些选项在所有XHR函数中都是一样的。 查看更多...

Dojo基本DOM操作函数记录

最近接触dojo,发现dojo很强大了,但没有系统学习过dojo,用起来还是很吃力,譬如不知道基础的dom操作等,都得找文档临时学习。总体来说,dojo目前的写法类似于extjs,但又不局限于extjs之类的框架。下面分享一下基础的dom操作函数及说明。

基本的DOM操作只是用到了dojo的核心文件.使用dojo.query将返回一个匹配到的节点数组dojo.Nodelist, 这个数组内建了一些常用的方法. 可以操作DOM

使用dojo的方法:

dojo.ready(function(){
	//TODO
});

TODO部分实现你想要的dojo操作。
查看更多...

用Dojo实现XHR、跨域、及其他Ajax请求

工作之余,收集了dojo的入门知识,以便以后查用。下面是用Dojo实现XHR、跨域、及其他Ajax请求的介绍,希望有用。

在任何浏览器上方便地实现Ajax请求是每一个Ajax框架的初衷。Dojo在这方面无疑提供了非常丰富的支持。除了XMLHttpRequest之外,动态script、iframe、RPC也应有尽有,并且接口统一,使用方便,大多数情况下都只需要一句话就能达到目的,从而免除重复造轮子的麻烦。而且,Dojo一贯追求的概念完整性也在这里有所体现,换句话说,在使用Dojo的Ajax工具的过程中不会感到任何的不自然,相反更容易有触类旁通的感觉,因为API的模式是统一的,而且这里涉及到的某些概念(如Deferred对象)也贯穿在整个Dojo之中。

Dojo的XHR函数

Dojo的XMLHttpRequest函数就叫dojo.xhr,除了把自己取名美元符号之外,这好像是最直接的办法了。它定义在Dojo基本库里,所以不需要额外的require就能使用。它可以实现任何同域内的http请求。不过更常用的是dojo.xhrGet和dojo.xhrPost,它们只不过是对dojo.xhr函数的简单封装;当然根据REST风格,还有dojo.xhrPut和dojo.xhrDelete。 查看更多...

div绝对居中、宽高自适应、多栏宽度自适应

最近工作上有需求写一些页面,很久没动手了,发现很多排版、样式等技巧都忘得差不多了,几番折腾,还算解决了基本的布局问题。下面分享一下常见的几种div布局问题。

1、div绝对居中。
效果如下:
divposition1
就是固定大小的div在浏览器中垂直、水平都居中,适合用到浮动弹出框、页面居中的登陆框等你想得到的地方。以前我也曾使用window.onload和window.onresize来控制高度自适应,宽度好说,兼容IE和其他主流浏览器的,直接文本居中,内部“margin:0 auto;”。 查看更多...