如何修改带 CDATA 节点的内容??

pansha 2005-11-07 08:28:28
<内容><![CDATA[如何修改此节点]]></内容> 用asp dom 如何修改此节点内容?
我只知道用 oNode.Text="更新的数据" 但这样操作就没有 CDATA 段 ?如何才能在修改了以后还是保持他的存在呢???

创建节点:
Set oNode=objXML.createElement("column")
oNode.AppendChild oBrTab.cloneNode(True)
Set oAttribute=objXML.createNode(2,"menuid","")
oAttribute.Text=itemid
oNode.SetAttributeNode oAttribute
Set oAttribute=objXML.createNode(2,"menuname","")
oAttribute.Text=menuname
oNode.SetAttributeNode oAttribute
Set oAttribute=objXML.createNode(2,"language","")
oAttribute.Text=language
oNode.SetAttributeNode oAttribute
'oNode.attributes.setNamedItem(oXML.createNode(2,"GUID","")).text=iGUID

oNode.AppendChild objXML.createElement("内容")
oNode.lastChild.appendChild(objXML.createCDATASection(""))
oNode.AppendChild oBrTab.cloneNode(True)
oNode.AppendChild objXML.createElement("发布时间")
oNode.lastChild.Text=addtime
oNode.AppendChild oBrTab.cloneNode(True)
oNode.AppendChild objXML.createElement("addip")
oNode.lastChild.Text=addip
oNode.AppendChild oBrTab.cloneNode(True)

set tempnode=objXML.SelectSingleNode("web/webmodule/menutype/typeitem[@type='1']")
tempnode.AppendChild oNode
tempnode.AppendChild oBr.cloneNode(True)
savexml(xmlpath)
...全文
220 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cds27 2005-11-07
  • 打赏
  • 举报
回复
例子:
test.xml:
<root>
<node>
<![CDATA[ok]]>
</node>
</root>


js:
<script language="jscript">
doc=new ActiveXObject("MSXML2.DOMDocument.4.0");
doc.load("test.xml");
doc.selectSingleNode("//node").firstChild.nodeValue="no"
alert(doc.selectSingleNode("//node").firstChild.xml)
</script>
pansha 2005-11-07
  • 打赏
  • 举报
回复
自言自语:
tempnode.childNodes.item(0).replaceChild objXML.createCDATASection(ReplaceStr("content")),tempnode.childNodes.item(0).firstChild
我用此方法。功能是实现了。是否有比这更简单的方法呢/?
第2章(\代码\第02章) • sample01.htm 将JavaScript代码插入在标签与标签之间 • sample02.htm 将JavaScript代码放在了标签与标签之间 • sample03.htm JavaScript与HTML混合执行 • sample04.htm 在同一个网页中使用不同脚本语言 • sample05.htm 判断浏览器对JavaScript版本的支持情况 • sample06.htm 引用外部JavaScript • sample07.htm 在同一个HTML文档中多次引用外部脚本文件 • sample08.htm 使用外部脚本文件和嵌入的JavaScript代码 • sample09.htm 边加载边解析的JavaScript代码 • sample10.htm 先加载后解析的JavaScript代码 • sample11.htm 单行注释语句 • sample12.htm 多行注释语句 • sample13.htm 使用HTML注释语句隐藏JavaScript代码 • sample14.htm 提示用户浏览器不支持客户端脚本语言 • sample15.htm 直接执行的JavaScript代码 • sample16.htm 直接调用函数 • sample17.htm 使用“javascript:”语句调用函数或方法 • sample18.htm 通过事件调用JavaScript代码 • sample19.htm 一段错误的JavaScript代码(调试用) 第3章(\代码\第03章) • sample01.htm 转换成数字型 第4章(\代码\第04章) • sample01.htm 字符串直接量 • sample02.htm 使用转义字符 • sample03.htm 数组直接量的使用方法 • sample04.htm 数组直接量 • sample05.htm 函数直接量的使用方法 • sample06.htm 对象直接量 第5章(\代码\第05章) • sample01.htm 全局变量 • sample02.htm 在不同的语句块中使用全局变量 • sample03.htm 局部变量的使用方式 • sample04.htm 在函数体中定义全局变量 • sample05.htm 使用没有定义的变量 • sample06.htm 重复定义变量 • sample07.htm 引用未赋值的变量 • sample08.htm 变量的优先级 • sample09.htm 随处定义的变量 • sample10.htm 随处定义的变量 • sample11.htm 嵌套函数中变量的有效范围 • sample12.htm 变量没有语句块的限制 • sample13.htm 常量的使用 第6章(\代码\第06章) • sample01.htm 先使用后递增 • sample02.htm 先递增后使用 • sample03.htm 先使用后递减 • sample04.htm 先递减后使用 • sample05.htm 字符串运算符 • sample06.htm 逻辑与运算符 • sample07.htm 逗号运算符 • sample08.htm 使用delete运算符删除变量 • sample09.htm 使用delete运算符删除对象属性 • sample10.htm 删除对象 • sample11.htm 使用delete运算符删除数组元素 • sample12.htm in运算符在对象中的使用 • sample13.htm in运算符在数组中的使用 • sample14.htm instanceof运算符 • sample15.htm new运算符 • sample16.htm this运算符 • sample17.htm this运算符 • sample18.htm void运算符 第7章(\代码\第07章) • sample01.htm 单支选择的if语句 • sample02.htm if…else语句 • sample03.htm if…else if语句 • sample04.htm if…else if…else语句 • sample05.htm if语句的嵌套 • sample06.htm if语句的嵌套(多次嵌套) • sample07.htm switch语句 • sample08.htm switch语句(省略default语句) • sample09.htm switch语句(不能省略的break语句) • sample10.htm for语句 • sample11.htm 逗号运算符与for语句的结合使用 • sample12.htm while语句 • sample13.htm do…while语句 • sample14.htm do…while语句与while语句的区别 • sample15.htm 遍历对象属性和数组元素 • sample16.htm 使用for each…in语句遍历对象属性和数组元素 • sample17.htm 对象的引用 • sample18.htm with语句 • sample19.htm with语句的等价代码 • sample20.htm label语句 • sample21.htm break语句 • sample22.htm 在嵌套的循环语句中使用break语句 • sample23.htm label语句与break语句相结合 • sample24.htm continue语句 • sample25.htm label语句与continue语句相结合 • sample26.htm 抛出异常 • sample27.htm 捕捉异常(捕捉使用throw语句抛出的异常) • sample28.htm 捕捉异常(捕捉JavaScript产生的异常) • sample29.htm 抛出不同的异常 • sample30.htm 抛出不同的异常(多catch语句块) • sample31.htm finally语句 • sample32.htm 空语句 • sample33.htm return语句 第8章(\代码\第08章) • sample01.htm 使用对象直接量创建自定义对象 • sample02.htm 使用对象直接量创建有方法的自定义对象 • sample03.htm 使用自定义构造函数创建对象 • sample04.htm 使用参数的构造函数创建对象 • sample05.htm 创建对象时传递不完整的参数 • sample06.htm 使用有缺省值的构造函数创建对象 • sample07.htm 使用方法的构造函数创建对象 • sample08.htm 使用方法的构造函数创建对象 • sample09.htm 遍历对象属性 • sample10.htm 遍历对象属性并获得属性值 • sample11.htm 遍历对象属性和方法 • sample12.htm 遍历对象属性和方法时进行判断 • sample13.htm 遍历对象属性值 • sample14.htm 索引对象属性 • sample15.htm 添加对象属性 • sample16.htm 删除对象属性 • sample17.htm 删除对象属性 • sample18.htm 将对象赋值给对象属性 • sample19.htm 将对象赋值给对象属性 • sample20.htm 添加方法 • sample21.htm 删除方法 • sample22.htm 引用原型对象 • sample23.htm 继承属性 • sample24.htm 设置继承的属性值 • sample25.htm 通过原型对象修改对象属性 • sample26.htm 通过原型对象添加对象属性 • sample27.htm 本地属性与继承属性 • sample28.htm 灵活定义属性值的方式 • sample29.htm 在构造函数中使用全局变量 • sample30.htm 在继承中使用全局变量 • sample31.htm 在继承中使用全局变量(一种解决办法) 第9章(\代码\第09章) • sample01.htm 布尔对象与布尔值 • sample02.htm 布尔值隐式转换为布尔对象 • sample03.htm 布尔值与布尔对象的区别 • sample04.htm 复制一个布尔对象 • sample05.htm 将日期对象的日期部分和时间部分转换成字符串 • sample06.htm 将日期部分转换为字符串 • sample07.htm 将时间部分转换为字符串 • sample08.htm 将时间部分转换为字符串 • sample09.htm 获取日期对象中日期部分 • sample10.htm 获取日期对象中时间部分 • sample11.htm 以毫秒表示法设置和返回日期对象的毫秒表示法 • sample12.htm 获得当前时间的毫秒表示 • sample13.htm 获得指定时间的毫秒表示 • sample14.htm 日期之差 • sample15.htm 求圆的面积 • sample16.htm 数字对象与数字 • sample17.htm 字符串长度 • sample18.htm 创建字符串 • sample19.htm 字符串与Unicode编码 • sample20.htm 返回字符串中的一个字符 • sample21.htm 通过字符串的起始位置和结束位置来获得子字符串 • sample22.htm slice()方法的使用 • sample23.htm substr()方法的使用 • sample24.htm 查找子字符串在字符串中的位置 • sample25.htm 统计一个字符串在另一个字符串中出现的次数 • sample26.htm 使用正则表达式搜索子字符串 • sample27.htm 替换使用字符串查找到的子字符串 • sample28.htm 扩展字符串的匹配方式 • sample29.htm 使用正则表达式匹配要替换的子字符串 • sample30.htm 更多的替换字符串 • sample31.htm 将字符串分割成数组 • sample32.htm 转换大小写 • sample33.htm 与HTML相关的方法 • sample34.htm 字符串比较 • sample35.htm 修改字符串中的某一个字符 • sample36.htm 创建Object对象 • sample37.htm 返回对象的构造函数 • sample38.htm 判断对象的类型 • sample39.htm 执行字符串中的JavaScript代码 • sample40.htm 判断对象属性是否为自有属性 • sample41.htm 判断一个对象是否是另一个对象的原型对象 • sample42.htm 判断对象的属性是否可以被枚举 • sample43.htm 监视属性值的变化情况 第10章(\代码\第10章) • sample01.htm 直接调用函数 • sample02.htm 将函数返回值赋值给对象属性 • sample03.htm 将函数的返回值作为数据在表达式中进行运算 • sample04.htm 直接将函数的返回值输出 • sample05.htm 通过事件调用函数 • sample06.htm 递归调用函数 • sample07.htm 递归调用函数(使用临时的函数名) • sample08.htm 传递参数的方法 • sample09.htm 传递参数个数多于函数定义的参数个数 • sample10.htm 传递参数个数少于函数定义的参数个数 • sample11.htm 传递参数个数少于函数定义的参数个数(使用默认值) • sample12.htm Arguments对象的使用方法 • sample13.htm Arguments对象的使用方法 • sample14.htm 实际传送的参数个数和参数值 • sample15.htm 定义不确定参数个数的函数 • sample16.htm 使用callee属性递归调用函数 • sample17.htm 判断参数个数是否正确 • sample18.htm 引用原型对象 • sample19.htm 查看构造函数名 • sample20.htm 判断函数调用情况 • sample21.htm 使用apply()方法将函数作为对象的方法调用 • sample22.htm 使用call()方法将函数作为对象的方法调用 • sample23.htm 函数的自定义属性 • sample24.htm 置换图片 • sample25.htm 检测一个值是否是非数字 • sample26.htm 转换成整数 • sample27.htm 转换成整数(使用不同进制) • sample28.htm 字符串编码与解码 • sample29.htm URI编码与解码 • sample30.htm URI组件编码与解码 第11章(\代码\第11章) • sample01.htm 创建空数组 • sample02.htm 创建数组的同时为数组元素赋值 • sample03.htm 创建指定长度的数组 • sample04.htm 将字符串分割成数组 • sample05.htm 数组元素的值 • sample06.htm 输出数组的所有元素 • sample07.htm 输出数组的所有元素(使用for循环) • sample08.htm 输出数组的所有元素(使用for each循环) • sample09.htm 数组长度 • sample10.htm 添加数组元素 • sample11.htm 通过为数组元素赋值的方法添加数组长度 • sample12.htm 删除数组元素的值 • sample13.htm 通过改变数组长度来添加和删除数组元素 • sample14.htm 创建二维数组 • sample15.htm 将数组转换成字符串 • sample16.htm 将数组转换成本地字符串 • sample17.htm 通过连接符将数组元素连接成字符串 • sample18.htm 将元素添加在数组尾部 • sample19.htm 截取数组中的一部分 • sample20.htm 从前向后查找元素在数组中的位置 • sample21.htm 查找值为5的元素 • sample22.htm 从后向前查找元素在数组中的位置 • sample23.htm 将数组中的元素颠倒排序 • sample24.htm 删除数组尾部元素 • sample25.htm 删除数组头部元素 • sample26.htm 在数组头部或尾部添加元素 • sample27.htm 在数组的任何位置添加数组元素 • sample28.htm 在数组的任何位置删除数组元素 • sample29.htm 替换数组中的元素 • sample30.htm 数组元素的排序 • sample31.htm 数组元素的排序(使用函数比较) • sample32.htm 颠倒数组中元素的次序 • sample33.htm 返回数组中大于50的元素(使用循环) • sample34.htm 返回数组中大于50的元素 • sample35.htm 查找数组中的元素 • sample36.htm 输出数组中的元素 • sample37.htm 判断数组中的元素是否都大于50 • sample38.htm 判断数组中的元素是否至少有一个大于50 • sample39.htm 返回数组中所有元素的平方值 • sample40.htm 返回数组中元素之和 • sample41.htm 返回数组中元素之和(加上初始值) • sample42.htm 返回数组中最大的元素 • sample43.htm 将二维数组转换成一维数组 • sample44.htm 返回数组中元素之和 • sample45.htm 两种不同的匹配方式 • sample46.htm 两种不同的匹配方式(使用g参数) • sample47.htm 返回用于创建数组的字符串 • sample48.htm 返回数组第1个元素出现的位置 第12章(\代码\第12章) • sample01.htm 客户端对象层次 • sample02.htm 通过name属性值引用对象 • sample03.htm 通过数组下标引用对象 • sample04.htm 在HTML标签中设置事件驱动 • sample05.htm 在JavaScript代码中设置事件驱动 • sample06.htm 调用内置对象的方法 • sample07.htm 直接调用JavaScript代码 • sample08.htm 调用用户函数 • sample09.htm 在超链接中使用事件(使用click事件) • sample10.htm 在超链接中使用事件(click事件的处理代码为跳转网页的语句) • sample11.htm 在超链接中使用事件(将click事件处理语句写在href属性值中) • sample12.htm 事件的返回值 • sample13.htm this运算符与参数传递 • sample14.htm 鼠标移动事件 • sample15.htm 鼠标点击事件 • sample16.htm 键盘事件 • sample17.htm 限制文本框中输入的字数 • sample18.htm 加载事件与卸载事件 • sample19.htm 得到焦点与失去焦点事件 • sample20.htm 提交事件与重置事件 • sample21.htm 选择事件与改变事件 第13章(\代码\第13章) • sample01.htm 警告框 • sample02.htm 确认框 • sample03.htm 提示框 • sample04.htm 状态栏的默认信息 • sample05.htm 状态栏的瞬间信息 • sample06.htm 打开一个空白窗口 • sample07.htm 打开一个有内容的窗口 • sample08.htm 在命名窗口中打开文档 • sample09.htm 设置新开窗口的特征 • sample10.htm 不显示新开窗口的浏览历史 • sample11.htm 窗口名称 • sample12.htm 关闭当前窗口 • sample13.htm 在打开的窗口中关闭窗口 • sample14.htm 关闭其他窗口 • sample15.htm 判断窗口是否已经关闭 • sample16.htm 对其他窗口的引用 • sample17.htm 窗口得到焦点 • sample18.htm 移动窗口 • sample19.htm 调整窗口大小 • sample20.htm 滚动文档 • sample21.htm 在状态栏显示时间 • sample22.htm 跑马灯 • sample23.htm 延时注册 • sample24.htm 计数器 • sample25.htm 框架页 • sample26.htm 内置框架 • sample27.htm 框架数量 • sample28.htm 对框架页的引用 • sample29.htm 通过框架名对框架页的引用 • sample30.htm 复杂的框架页 • sample31.htm 在框架中对其他窗口的引用 • sample32.htm 操作新开窗口中的数据 第14章(\代码\第14章) • sample01.htm 在网页上输出文字 • sample02.htm write()和wirteln()的区别 • sample03.htm 输出文字时的注意事项 • sample04.htm 在内置框架中输入文字 • sample05.htm 在内置框架中输入文字(document.open()方法的使用) • sample06.htm 测试代码 • sample07.htm 测试代码(注销document.close()语句) • sample08.htm 输出文档 • sample09.htm 不覆盖当前浏览历史记录 • sample10.htm 覆盖当前浏览历史记录 • sample11.htm 超链接颜色 • sample12.htm 网页的前景色和背景色 • sample13.htm 最后修改时间与文档URL • sample14.htm 跑马灯 • sample15.htm referrer属性的使用 • sample16.htm 文档所在域 • sample17.htm 图片信息 • sample18.htm 置换图片 • sample19.htm 置换图片(使用this引用) • sample20.htm 随机图片 • sample21.htm 随机图片(与load事件结合) • sample22.htm 提示图片不存在 • sample23.htm 查看超链接的各部分 • sample24.htm 随机广告 • sample25.htm Anchor对象和Link对象的区别 第15章(\代码\第15章) • sample01.htm Form对象的属性 • sample02.htm 验证表单数据 • sample03.htm 确认提交和重置数据 • sample04.htm 将表单提交到不同的URL • sample05.htm 限制文本框中的输入字数 • sample06.htm 自动选择文本框中的文字 • sample07.htm 自动定位在第一个文本框 • sample08.htm 只允许提交一次 • sample09.htm 改变按钮上的文字 • sample10.htm 获取单选框与复选框的值 • sample11.htm 限制复选框的被选择数量 • sample12.htm 全选或取消全选 • sample13.htm 使用下拉列表框提交表单 • sample14.htm 添加下拉列表框中的选项 • sample15.htm defaultSelected和selected的区别 • sample16.htm 选课 • sample17.htm 二级联动菜单 • sample18.htm 预览图片 • sample19.htm 下拉列表框中的选项排序 • sample20.htm 统计表单控件元素 第16章(\代码\第16章) • sample01.htm Screen对象的属性 • sample02.htm 满屏显示网页 • sample03.htm 判断浏览器是否支持Java • sample04.htm 浏览器的基本属性 • sample05.htm 显示浏览器的默认主页 • sample06.htm 查看浏览器支持的MIME类型 • sample07.htm 显示Flash • sample08.htm 跳转 • sample09.htm 加载和刷新文档 • sample10.htm 通过修改当前文档的URL来加载新文档 第17章(\代码\第17章) • sample01.htm 创建与读取Cookie • sample02.htm 读取Cookie • sample03.htm 精确读取Cookie值 • sample04.htm 精确读取Cookie值(使用数组) • sample05.htm 设置Cookie的有效期 • sample07.htm Cookie的域 • sample08.htm Cookie的安全性 • sample09.htm 为Cookie编码 • readCookie.htm 读取Cookie • cookie\sample06.htm Cookie的路径 第18章(\代码\第18章) • sample01.htm DOM • sample02.htm 节点的访问方法 • sample03.htm Node对象的常量 • sample04.htm Document接口的属性 • sample05.htm 访问文档中的特殊节点 • sample06.htm 查看某个元素出现的次数 • sample07.htm 查看特定节点是否存在 • sample08.htm 查看指定id值的节点下的子节点 • sample09.htm 节点的名称 • sample10.htm 获得一个节点下的所有子节点 • sample11.htm 子节点与兄弟节点 • sample12.htm 节点的值 • sample13.htm 插入一个节点 • sample14.htm 插入一个节点(添加一个Text节点) • sample15.htm 插入一个节点(删除原节点) • sample16.htm 复制节点 • sample17.htm 在一个节点前插入节点 • sample18.htm 删除节点 • sample19.htm 删除节点(使用删除了的节点) • sample20.htm 获取节点名称 • sample21.htm 获得节点的属性值 • sample22.htm 添加属性与删除属性 • sample23.htm 查看Element节点下的所有属性 • sample24.htm 获得节点的属性值 • sample25.htm 添加属性与删除属性 • sample26.htm 改变文字 • sample27.htm 移动文字 第19章(\代码\第19章) • sample01.htm 使用正则表达式替换字符串 • sample02.htm 简单地匹配字符串 • sample03.htm 匹配字符串和子字符串 • sample04.htm 引用匹配成功的字符串 • sample05.htm 全局匹配 • sample06.htm 测试匹配是否成功 • sample07.htm RegExp的静态属性 • sample08.htm 验证邮政编码 • sample09.htm 验证身份证号码 • sample10.htm 验证电话号码 • sample11.htm 验证URL • sample12.htm 验证Email • sample13.htm 使用正则表达式和DOM结合 第20章(\代码\第20章) • sample01.htm 创建一个XMLHttpRequest对象 • sample02.htm 用户注册 第21章(\代码\第21章) • sample01.htm 使用JavaScript实现二级联动菜单 • sample02.htm 将下拉列表框内置于Iframe中 • sample03.htm 在Iframe中获取服务器端数据 • sample04.htm 使用Ajax从服务器端获取数据 • sample05.htm 使用get方式提交数据 • sample06.htm 使用post方式提交数据 • sample07.htm 在Ajax中使用post方式提交数据 • sample08.htm 在服务器端获得HTTP请求头 • sample09.htm 在客户端获得HTTP响应头 • sample10.htm 获取文件信息 • sample11.htm 获取服务器时间 • sample12.htm 砍掉Ajax的缓存 • sample13.htm 异步方式显示文档信息 • sample14.htm 在Ajax中使用同步处理 • sample15.htm 在Ajax中使用同步处理(改良后) • sample16.htm 网页的编码 • sample17.htm 网页的编码 • sample18.htm 网页的编码 • sample19.htm 读取不同编码的文本文件 • sample20.htm 获取动态网页程序返回的内容 第22章(\代码\第22章) • sample01.xml 完整的XML文件代码 • sample02.xml 无效的XML文件 • sample03.xml 空标签 • sample04.xml 无效的XML文件 • sample05.xml 区分大小写 • sample06.xml XML的属性值 • sample07.xml 转义字符 • sample08.xml 注释 • sample09.xml CDATA标签 • sample10.htm 在IE浏览器中解析XML文件 • sample11.htm 在其他浏览器中解析XML文件 • sample12.htm 跨浏览器解析XML文件 • sample13.htm 在IE浏览器中解析XML字符串 • sample14.htm 在其他浏览器中解析XML字符串 • sample15.htm 跨浏览器解析XML字符串 • sample16.htm 创建解析XML文件的函数 • sample17.htm 创建解析XML字符串的函数 • sample18.htm 输出XML文档的信息 • sample19.htm 访问根节点 • sample20.htm 访问根节点下的所有子节点 • sample21.htm 定位到节点 • sample22.htm 输出节点与子孙节点的值 • sample23.htm 通过循环输出所有子节点信息 • sample24.htm 返回节点的属性值 • sample25.htm 访问属性节点 • sample26.htm 获得元素节点的所有属性节点 • sample27.htm 获得元素节点的所有属性节点(跨浏览器) • sample28.htm 通过标签名查找节点 • sample29.htm 通过标签ID值查找节点 • sample30.htm 修改节点的值 • sample31.htm 删除节点 • sample32.htm 创建与添加节点 • sample33.htm 将节点插入在指定节点之前 • sample34.htm 在文本节点和注释节点中添加数据 • sample35.htm 替换节点 • sample36.htm 替换节点值 • sample37.htm 删除节点值 • sample38.htm 复制节点 • sample39.htm 异步获取XML文件 • sample40.htm 处理从服务器上获取的XML文档 • sample41.htm 获取服务器中返回的XML文档 第23章(\代码\第23章) • sample01.htm 内联样式 • sample02.htm 内部样式 • sample03.htm 外部样式 • sample04.htm 注释 • sample05.htm 类选择符 • sample06.htm ID选择符 • sample07.htm 伪类 • sample08.htm 样式继承 • sample09.htm 样式层叠 • sample10.htm 样式冲突 • sample11.htm 使用CSS设计网页 • sample12.htm HTML、XML与CSS的结合使用 • sample13.htm HTML、XML与CSS的结合使用(改良后) • sample14.htm 修改文字大小 • sample15.htm 下拉菜单
&1.XML简介 XML的背景 1) XML代表可扩展的标记语言(eXtensible Markup Language); 2) XML由W3C联盟发展维护; 3) XML是一种元语言,可以用来定义其它标签语言; 4) XML没有定义任何标记,它提供了一种工具定义标记以及它们之间的结构关系; 5) XML是一种用于结构化文本交换的标记语言; 6) XML代表了内容的结构也代表了内容本身; 7) XML继承自SGML(标准通用标记语言)。SGML的前身GML由IBM在1960年发明,用于描述设备无关的文本 8) XML是SGML的子语言,由SGML简化而来,起初的目的是为Web的结构文档提供服务。 9) W3C组织在1998年2月10日发布XML1.0版,第二个版本发布于2000年10月9日。 10)XML是分层的树形结构的自解释的一种可扩展的标记语言。 XML和HTML的关系 1) 事实上,HTML和XML不能够进行比较的。因为XML是一种元语言,而HTML是一种定义好的标记语言。XML是描述数据的语言,HTML是描述数据 外观的语言。 2) HTML有一套确定的标记。在W3C标准规范中定义了HTML标记的含义并由部分浏览器实现了。 3) HTML标记非常适合描述人类易读的可视化文本。 4) HTML定义了许多表现指令用以优化在浏览器中的显示。 5) 在HTML标记中,数据固有的结构丢失了。 6) HTML没有维持数据类型信息的完整性、约束、或实体间的其它关系,而XML提供了这些特征。 对XML文件的要求,格式良好(符合XML的语法要求),有效的XML; XML的用途,数据传输的中间件,做为通用文档格式 1,数据交换 2,web服务 3,内容管理 4,web集成 5,充当配置文件 格式良好的XML文件的规范 XML文档是一种严格规范的语言,必须按照规范来写。 XML文档的框架结构 XML文档=序言+元素+杂项(可选) 1)序言 序言=(XML声明)+(杂项)+(文档类型声明) XML声明 如: 文档类型声明 规定元素的结构和属性列表的取值 如: 2)元素 空元素 非空元素 内容 内容=(子元素|字符数据|字符数据段|引用|处理指令|注释)* 字符数据 字符数据中,不能含有&,,',",需要采用实体引用的方式 字符数据段 引用 3)杂项 处理指令 XML为其它应用程序准备的接口。 注释 空白符指空格、回车等 XML文件事例 ... XML文件的写法 xml文档是有标签和标签中的内容组成的,标签和标签中的内容合成为元素 非空元素 (起始标签) aaa(内容) (结束标签) 空元素 格式良好的XML文档的规范 1)文档声明位于文件的开头 2)文档中只能定义一个唯一的根元素(根元素是在文档声明之后的最外层的元素) 3)标签必须闭合,且不能交叉,有元素的起始标签,就必须有其结束标签(空元素除外) 4)层层嵌套,每一对标签总是出于另一对标签的内或和其处于同一层,不能交叉(根元素chuw) 5)大小写敏感,起始标签和结束标签的名字要一致 6)属性值必须用引号引起来 7)注意特殊字符,使用时需要使用转义字符。 注意: 1.第一行一定要写 2.xml文件是由元素和元素的内容以及属性组成的,一个xml文件中只能有一个根元素,标签和标签的内容加在一起叫作一个元素。xml是大小写 敏感的,只能以字母或下划线开头。 字符转义 < 代表 "" , " 代表双引号。 & 代表 "&" , ' 代表单引号 字符数据段,不解析 ....的部分不必使用转义,其中内容会直接输出。 引用 实体声明 使用实体,引用 &引用名 事例: (XML文件的声明) (注释) (根元素) (子元素) b) then {return 1} else{return 0} }]]> (空元素) 张三 XSLT,是用于对XML进行文档格式转换,把一个XML文档转换成另一种格式的XML文档,但是其中内容是不变的。 &2.DTD(Document Type Difinition DTD文档是用于规定XML文档的结构。只有结构符合所引用的DTD文件的XML文件才能称之为有效的XML文件。 DTD(文档类型定义) !DOCTYPE 定义DTD文件名 !ELEMENT 定义元素中可用的数据类型 #PCDATA 可解析字符串。 1)DTD的调用 方式一:调用内部文档类型定义。 注意点: (1) studinfo与(#PCDATA)有空格 (2) 文档类型名与根元素名必须一致 方式二:调用外部文档类型定义,需要写一个DTD文档 注意点: (1)standalone="no" (2)注意dtd文件的路径 2)DTD的结构 1.元素类型声明 指明元素的名称和元素含有的内容。 元素类型声明= 元素内容说明='EMPTY'|'ANY'|混合内容|元素内容|'#PCDATA' #PCDATA: 只有可析的字符数据才能作为元素的内容 元素内容: 元素内部只能出现指定的子元素 事例:有子元素的元素结构定义 "?" 表示子元素只可以出现一个,也可以不出现 (0到1) "+" 表示子元素必须出现,可以出现多个 (1到多) "*" 表示子元素可以出现多个,也可以不出现,(0到多) Enumerated:枚举类型,由“|”分隔的可能的子元素,在可能出现的子元素中只能有一个出现。 EMPTY:元素内容为空时才写(空元素,其中不能有内容) (无子元素) ANY:元素内容可以任意,也可以为空 混合内容:标记文本和可析字符串 2.元素属性表声明 属性:由“=”分隔的成对的属性名和属性值构成,只能出现在元素标记的内部。 结束标记不能属性,一个元素可以具有多个属性 语法: 属性取值类型 1、CDATA:可析字符(文本) 2、Enumerated:枚举类型,由“|”分隔的可能的属性值列表 属性默认值: 注意 1、#REQUIRED:必须提供属性值 2、IMPLIED:可提供也可不提供 3、FIXED:不能修改 事例: zhangshan 实体声明 实体:存储了任意符合规则的xml文档单元片断。 1、内部通用实体 定义格式 引用格式 &实体名; 2、外部通用实体 定义格式 引用格式 &实体名; 事例: zhangshan 20 beijing haidian &schoolinfo; 记号声明 用记号标识非xml格式的数据 定义格式 3)DTD的缺陷,DTD中的类型比较少,有一些约束在DTD中是表达不了的,DTD不支持XML语法. &3.NameSpace(命名空间) namespace是为了解决XML文档中的命名冲突问题的。 DTD不支持命名空间,解析器无法测试命名空间。 1、作用: 解决XML文档中命名冲突的问题,即将 XML文档与引用URI标识的名域相结合,来 限定其中的元素和属性名。 示例: t1 man s1 girl 2、名域的声明 (1)直接定义 xmlns:名域前缀="名域的URI"(唯一性) 类比:名字与身份证 名域的使用,名域前缀:需要限定的元素名 示例: zhangshan man stu1 girl (2)缺省定义 xmlns=名域的URI zhangshan man stu1 girl 3、名域的使用 (1)用名域限定元素 zhangshan man stu1 girl (2)用名域限定属性 zhangshan man caoyang,no1 stu1 girl haidian,no2 4、名域的作用范围 名域能够把声明它的元素和该元素的所有子元素关联起来,除非它们被其他的名域声明所覆盖。 &XML Schema Schema 也是XML文档,用于定义XML文档的结构。 目标名域 使用目标名域中的限制,要只用这个schema文件结构生成XML文档中必须使用者个默认名域。 schema文件的扩展名为 .xsd schema文档的语法和XML的语法相同。 schema文档也有根元素,根元素为schema。 参照类型约束,来约束元素的内容 元素的默认和固定值 1) 简单元素可以有一个默认或固定值: 2) 当没有指定值时,一个默认的值自动分配给元素。在这个例子中,默 认值为red: 3) 一个固定值也是自动分配给元素的,你不能指定 其它值。在这个例子中,默认值为red: ref关键字 参照....定义。 属性结构的定义,属性也可以使用固定值或者是默认值 schema文件中也可以定义元素结构和类型,schema文件中对元素内容加以限制 schema中可以定义元素内容类型 1. 简单类型 2. 自定义类型,复杂类型,子元素组合 简单类型,基本类型加限制 simpleType:简单类型定义 restriction:基本类型引用 enumeration:使用枚举类型,从给定值中选择且必选其一。 minInclusive:简单类型加最小值约束,且包含设定的最小值 maxExclusive:简单类型加最大值约束,且包含设定的最大值 以下是其使用的事例 . 简单类型加限制 只能使用非负整数3到7包含3和7。 . 复杂类型定义 复杂类型定义事例: 整体schema文档事例 演示simpleType用法,即自定义类型 学生(id = "1000") 姓名 年龄(必须是int,并且只能取一定范围的值) 父亲(父母二者选一) 母亲 专业(枚举类型) 知识点: simpleType restriction enumeration minInclusive maxExclusive 针对以上schema文件的有效的XML文件事例 shang zhang 30 lishi computer XML文档的解析 SAX :事件机制驱动。在遇到相应的节点时,会发出一个事件,当解析器发现元素开始、元素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。 SAX的优缺点:   优点: 不用事先调入整个文档,占用资源少; SAX解析器代码比DOM解析器代码小,适于Applet,下载   缺点: 不是持久的;事件过后,若没保存数据,那么数据就丢了,比较消耗时间; 只能顺序处理,不能选择读取。不支持文档的创建和修改。 无状态性;从事件中只能得到文本,但不知该文本属于哪个元素;   使用场合:Applet;只需XML文档的少量内容,很少回头访问;机器内存少 SAX处理流程 UNIX color 分析这个代码片断的 SAX 处理器一般情况下将产生以下事件: startDocument() startElement (samples) characters (white space) startElement (server) characters (UNIX) endElement (server) characters (white space) startElement (monitor) characters (color) endElement (monitor) characters (white space) endElement (samples) SAX API 允许开发人员捕捉这些事件并对它们作出反应。 SAX 处理涉及以下步骤: 创建一个事件处理程序。 创建 SAX 解析器。 向解析器分配事件处理程序。 解析文档,同时向事件处理程序发送每个事件。 要实现SAX解析XML文档的方法, XMLReader和XMLReaderFactory XMLReader read=XMLReaderFactory.createXMLReader();生成XMLReader对象, 使用XMLReader对象的方法parse(File f,ContentHandler handler),ContentHandler是一个定义好事件处理方法的接口, DTDHandler ,EntityResolver ,ErrorHandler这三个接口和 ContentHandler接口相同,但是其中定义的是其他事件处理方法,一般只是实现ContentHandler接口。 使用SAX解析XML文档,需要先有SAXParserFactory对象,他的对象是通过自身的静态方法newInstance(),然后再通过SAXParserFactory对象来创建SAXParser对象,使用SAXParser对象的 parse(File f,DefaultHandler handler),DefaultHandler是用来处理解析时发出的事件的类,就可以进行解析。DefaultHandler实现了ContentHandler,DTDHandler ,EntityResolver ,ErrorHandler,四个接口,但是只给出了空实现,便于使用者覆盖相应的方法。 SAX解析的其他方法请参阅JAVA API文档。(javax.xml.parsers ,org.xml.sax ,org.xml.sax.helpers) DOM (文档对象模型)Document Object Modle 为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来操作这个树结构。   优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;   缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;   使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU) DOM解析是将整个的XML文档元素结构读入内存,由根元素向下形成子元素分级树状关系。 DOM的解析 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(name); 以上三行代码,使用来生成Document对象的,Document对象就代表了读入内存后结构化的XML文档。 使用Document对象的getDocumentElement()方法获得子节点,可以通过不断的迭代便利所有节点,这些节点就代表了元素,从根元素开始一直到最内层的子元素。 getElementsByTagName(String tagname) 这个方法可以通过元素的名来或得该元素内层元素,也就是或得了这个节点的所有子节点(NodeList)NodeList的方法getLength()(列表中的节点数),通过循环使用 Node item(int index) (返回集合中的第 index 个项)方法,来获得每个子节点。 DOM解析的其他方法请参阅JAVA API文档。(org.w3c.dom) 选择 DOM 还是选择 SAX,这取决于下面几个因素: 应用程序的目的: 数据容量: 数据多少部分会被使用 对速度的需要: DOM4j,JDOM 开源的XML文档解析器,实现DOM,SAX接口,保留了DOM和SAX的基本语法,对解析性能进行了优化。 JDOM 需要jdom.jar和 JDOM的背后使用的是使用SAX对文件进行扫描的。 SAXBuilder builder=new SAXBuilder();//创建解析器 使用SAX扫描之后的结果保存成DOM结构的树。JDOM对解析过程作了简化。 JDOM中的方法便的更加易用。例如:getRootElement(),getChildren("...")方法的返回值是java.util.List类型,getText()方法直接可以返回元素中的内容,他的返回值类型是String类型。 JDOM也可以对XML文档进行写操作。 XMLOutputter类的对象可以向文件中写信息,setEncoding("")设置内码,setNewLine(true),设置换行。output(Document docFileWriter write)方法可以向文件中写入。
易语言5.1 相对于易语言5.0更新说明:   支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。   使用说明如下:函数声明和调用方法与DLL命令一致;“库文件名”以.lib或.obj为后缀的将被视为静态库,可使用绝对路径或相对路径(相对当前源代码所在目录),如依赖多个静态库请分别列出并以逗号分隔;“在库中的对应命令名”请务必准确填写静态库中公开导出的符号名称(C函数(cdecl)编译后,符号名称通常是在函数名称前加下划线(_));“在库中的对应命令名”以@开头表示以cdecl方式调用,否则表示以默认的stdcall方式调用;各参数声明要与其定义一致。   请参考易语言安装目录内的例程:samples\静态编译\调用LIB和OBJ 1. 静态编译方面的改进和优化。 2. 符号重命名程序(resym.exe)增加对.obj文件的支持,并更新了文档(sdk\static_docs)。 3. 编译生成安装软件时已支持打包静态编译后的程序,但需事先静态编译出该程序。 4. 升级加密狗驱动程序,增加了对 Windows 7, Vista 等操作系统的支持。 5. 操作系统界面功能支持库(shell.fne)中的“执行()”命令增加一个参数“窗口显示方式”,作用与核心库“运行()”命令的同名参数一致。 6. 数据库操作支持库增加读写长整数字段的功能,但受限于系统接口暂不能读写超出整数范围的数值。 7. 修改高级表格支持库,通过鼠标调整行高列宽时不改变当前光标行列号。 8. 修改BUG:在IDE中打开源代码文件(.e)后,高级选择夹组件不能正确切换到“现行子夹”属性设定的子夹。 9. 修改BUG:矢量动画支持库中的“矢量编辑框”组件在光标位于组件右下角时按右光标键进入下一行会导致显示错误。 10. 修改BUG:矢量动画支持库中的“矢量编辑框”组件在光标位于组件左上角时按左光标键进入前一行可能会导致显示错误或内存申请失败。 11. 修改BUG:网络传送支持库在使用代理下载时可能会导致程序崩溃。 12. 修改BUG:超级列表框.置列图片()有时功能不正常或导致随机错误。 13. 修改BUG:Sqlite3数据库支持库中的“Sqlite记录集.绑定参数()”命令不支持汉字/UTF-8。 14. 修改BUG:VCL相关支持库部分组件在修改个别属性或调用个别方法后不可见,并改进了Delphi版本的支持库SDK。 15. 修改BUG:高级表格在列类型为数值型时,添加新行且省略标题的情况下,会导致程序异常。 16. 修改BUG:数值计算支持库“大数.四舍五入()”命令在最高位进位时,会导致程序异常。 17. 修改BUG:办公组件支持库打印进度对话框的标题和用户设置的内容不一致。 18. 修改BUG:办公组件静态编译后无法正常销毁。 19. 修改BUG:应用接口支持库“取内存容量信息()”命令不能正常处理大于2G的内存。 20. 修改BUG:超级列表框在属性“整行选择”为真时,鼠标单击第一列右面也会导致第一列中的选择框被选中或取消选中。 21. 修改BUG:Sqlite3数据库支持库中“Sqlite数据库.取错误文本()”返回的文本是UTF-8编码(应是GB18030编码)。 -------------------------------------------------------------------------------- 易语言5.0 相对于易语言4.x更新说明(2010/02/01):   增加静态编译功能,支持挂接第三方链接器(比如VC6中的link.exe)。   静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构更合理(取消了“易格式体”),加载速度更快,而且有效解决了“病毒误报”和“易被脱壳”的难题。   为实现静态编译,易语言编译器、核心支持库、集成开发环境(IDE)等均有重大更新,支持库开发架框有扩展性调整,绝大多数官方支持库都已针对静态编译完成自身改造并提供静态库。   目前绝大多数官方支持库均已支持静态编译,只有极少数不支持静态编译:vclbase.fne, jedi.fne, com.run/cominf.run/ocx.run。   第三方支持库,由源代码作者按照静态编译技术文档(参见sdk\static_docs)完成自身改造并提供静态库后,可支持静态编译。外部OCX组件和COM组件,不支持静态编译。   此次重大版本升级不影响以前的源代码(.e)和模块(.ec)。只要代码或模块中未用到“不支持静态编译”的支持库、COM/OCX等,都可以静态编译。以前编译好的模块(.ec)甚至不需要重新编译即可直接支持静态编译。   支持库开发框架调整是扩展性调整,比较好的做到了向前向后兼容。即,新版支持库可被旧版易语言或易程序使用,旧版支持库也可被新版易语言或易程序使用(只是不支持静态编译)。   静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别静态链接接到各个独立模块(EXE/DLL)中。 版权所有 (C) 2009 - 2010,保留所有权利。 大连大有吴涛易语言软件开发有限公司 http://www.eyuyan.com -------------------------------------------------------------------------------- 易语言5.0测试版3相对于测试版2更新内容: 1. 支持设置程序(EXE)图标 2. 支持设置使用通用组件库6.0 3. 支持“链接后动作(post_link_action)”(参见tools\link.ini中注释) 4. 重新整理所有官方支持库的静态库,有望彻底解决链接时可能出现的符号冲突 5. 全面取消静态编译中的人为功能限制(此前有最多5个支持库同时参与静态链接等功能限制) 6. 公开易语言静态编译技术文档(参见sdk\static_docs),便于第三方支持库作者针对静态编译进行支持库改造 7. 修改以下多个BUG: 1) 修改在静态编译的DLL中调用其它DLL失败的BUG 2) 修改静态编译后“选择列表框”在“单选”属性为真时不显示项目内容的BUG 3) 修改核心库中“播放音乐”命令在没有声卡或声卡被禁用时未正确释放资源的BUG 4) 修改静态编译后“读配置项”命令在第三个参数“配置项名称”为空文本时导致程序崩溃的BUG 5) 修改高级选择夹中的组件在窗口载入后强制得到焦点的BUG 6) 修改MYSQL支持库跨静态编译的EXE和DLL传递连接句柄和记录集句柄无效的BUG(改动较大,可能会产生兼容性问题,我们已经仔细测试,也请使用到此库的用户帮助我们多多测试,以便及早发现问题,谢谢) 7) 其它修改 注意:静态编译后的易语言EXE和DLL之间不能再共享“某些”句柄或资源,这一点和原动态连接时的程序行为不能保持一致,使用时请务必设法避免此类用法(MYSQL支持库我们作了特别处理)。 注意:静态编译后常量数据位于PE文件的.rdata段中,只可读不可写,编程时请避免修改它们。譬如以下的代码,静态编译后就可能会出现问题: a = " " GetWindowTextA(hWnd, a, 20) 正确的代码为: a = 取空白文本 (20) GetWindowTextA(hWnd, a, 20) 易语言5.0测试版2相对于测试版1的更新内容: 1. 修改了很多由于符号冲突而导致无法完成静态编译的BUG 易语言5.0测试版1发布于2009/12/28,是易语言5.0静态编译版第一个公开测试版本 ******************************************************************************** ** 以下是易语言4.x及以前版本的升级信息 ******************************************************************************** 易语言4.14版相对于4.13更新说明: 对易语言核心支持库、编译器、开发环境的更新: 1. 修复了打印机对象的自定义纸张尺寸的支持问题 2. 修复了打印机对象的打印份数的支持问题 3. 修复了滑块条的选择长度不能到最大的问题 对其它支持库的更新: 1. 修改XML解析支持库,解决“XML树.取节点值文本()”返回的文本会失效的BUG。 2. 修改高级表格支持库,解决在鼠标按下和抬起之间收到时钟周期事件的情况下,无法收到“被单击”事件的BUG。 3. 修改扩展界面支持库三,解决单击卷帘菜单后导致日期框不能弹出下拉窗口的BUG。 4. 修改XP风格支持库,解决GDI资源泄露,以及在使用通用组件库六时组合框标题出现重影的BUG。 5. 修改扩展界面支持库一,解决树形框项目无法通过鼠标点击进入编辑状态的BUG。 6. 修改高级表格支持库,解决插入行/插入列在未指定行号/列号的情况下插入位置不正确的BUG。 7. 修改文本语音转换支持库,增加“机读文本.重新创建并初始化()”方法。 8. 修改应用接口支持库,增强“取快捷方式目标”命令功能,可以获取目标、参数、启始位置、图标、运行方式、快捷键、备注等信息。 9. 修改扩展界面支持库三,解决高级选择夹会导致所在窗口的收不到“首次激活”事件的BUG,相应地修改了核心库和开发环境。 10. 为所有支持库文件统一添加了版本信息。 -------------------------------------------------------------------------------- 易语言4.13版相对于4.12更新说明(2009/4/13): 对易语言编译器、开发环境、核心支持库的更新: 1. 修改核心支持库,为窗口增加一个“窗口类名”属性。 2. 修改核心支持库,为外部数据库的连接类命令增加参数“不显示ODBC连接对话框”。 3. 修改核心支持库,解决用“播放音乐()”播放“音频采样大小为24位”的WAV文件时产生噪音的BUG。 4. 修改编译器,可以为编译出的EXE、DLL添加版本信息(通过“程序配置”设定)。 5. 修改集成开发环境,自动记忆非独立编译时是否写出依赖文件的选项。 6. 大幅提高编译速度。 对其它支持库的更新: 1. 修改高级表格支持库,在双击单元格进入编辑状态后,不能收到第一个“字符输入”事件的BUG。 2. OpenGL支持库中的部分英文名称常量已改为中文,并统一在所有常量名称之前加前缀“GL_”,以减少与其它库的冲突机率。 3. 互联网支持库中的“FTP目录列表”命令返回的文件时间改为FTP服务器返回的原始时间,不做任何时区转换。 4. 互联网支持库中的“置代理服务器”命令增加了参数,用于支持代理服务器用户认证。 5. 修改控制台操作支持库中“控制台对象.取显示区大小”的参数名称及其说明。 6. 修改外部数据库在4.12版中导致的不兼容问题,并增加了对MS SQL Server数据库中image和text字段类型的说明。 7. 修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8. 改进应用接口支持库中“设置屏幕分辨率”命令。 9. 修改外部数据库在“表中记录数为零”时可能导致程序崩溃的BUG。 10. 修改扩展界面支持库一,修改“超级列表框.取标题()”不能返回长度大于256的包含汉字的文本。 11. 修改扩展界面支持库一,为“超级列表框.查找表项()”增加可空参数“列索引”,以指定查找哪一列。 12. 修改扩展界面支持库一,添加“工具条.置标题()”方法。 13. 修改高级表格支持库在表格空白处(所有单元格之外)单击鼠标导致当前光标处单元格自动进入编辑状态的BUG。 14. 修改扩展界面支持库一,为“超级列表框”增加“检查框状态被改变”事件。 15. 修改扩展界面支持库一,为“树形框”增加“是否已加粗()”方法。 16. 修改扩展界面支持库一,为“树形框”增加多态检查框功能,相应地添加了多个与检查框相关的属性、方法和事件。 17. 修改高级表格支持库,允许“复制选定文本()”“剪切选定文本()”在“允许选择块”属性为假时复制剪切当前单元格中的文本。 18. 修改扩展界面支持库三,为“高级选择夹”增加“不点燃选中子夹”属性。 19. 修改XML解析支持库,增加写出CDATA数据功能,解决解析XML时错误的丢弃换行和TAB字符的BUG,解决读取节点值时对CDATA数据进行转义处理的BUG。 20. 修改扩展界面支持库一,超级列表框“置列图片()”导致列图片被强行设置到标题左边的BUG。 21. 修改通用对象支持库,“快速字节集对象.倒找字节集()”的一个BUG。 22. 修改扩展界面支持库一,“超级列表框.取标题()”在表项标题为空的情况下可能会返回乱码文本的BUG。 23. 修改农历日期支持库,内部农历数据错误(2013年四五月份大小进错位)的BUG。 24. 修改远程服务支持库,“远程服务.启动()”第三个参数的描述与实际不符的BUG。 25. 修改应用接口支持库,“取硬盘信息()”命令,将尽量获取能够获取的信息(有时只能获取部分信息)。 26. 修改文本语音转换支持库,为数据类型“机读文本”的方法“文本到语音()”增加超时等待和事件反馈功能,并增加方法“是否可用()”,并在该对象创建时,自动选择一个“可能”为中文的语音库(通过名称猜测)。 27. 修改MySql支持库,第二次连接失败会导致前一次连接句柄无法使用的BUG。 28. 修改VCLBase支持库,解决VCL组件“对齐”属性和VCL滚动框失效的BUG。 其它更新: 1. 修改“树型框操作类.e”例程,加入项目时检查索引数组下标越界的BUG -------------------------------------------------------------------------------- 易语言4.12版相对于4.11更新说明: 对易语言编译器、开发环境、核心支持库的更新: 1. 修改“文件是否存在”命令不支持“路径字符大于127的文件”的BUG,感谢易友企达软件。 2. 修改“到全角”命令对“~”转全角字符结果不对的BUG,感谢易友叮咚茶。 3. 修改窗口“位置”属性和“可视”属性在特定情况下相互冲突的BUG,感谢易友牛非牛。 4. 修改核心支持库,窗口的“销毁()”命令,在销毁窗口后,不能再次载入窗口的BUG,感谢易友hsy_jj,上上签。 5. 修改核心支持库,窗口底图方式增加“图片缩放”功能,感谢易友世恒。 6. 修改核心支持库“组合框.可有焦点()”命令,在组合框获得焦点后,还是返回“假”的BUG,感谢易友lilho_e。 7. 修改核心支持库“销毁”方法增加了一个参数“立即销毁”。 8. 修改核心支持库,画板在调整尺寸后,不能重画的BUG,感谢易友浮云缭绕。   9. 修改编辑框在字体变大,编辑框高度自动调整后,原来的编辑框仍然会留在窗口上的BUG,感谢易友水影。   10. 修改核心支持库“插入字节集”命令的帮助说明,感谢易友低调生存。   11. 修改“变体型”对数值型数组数据支持不完善的BUG,感谢易友神2。   12. 修改核心支持库,“横向滚动条”和“纵向滚动条”位置被改变后,禁止由“真”变为“假”的BUG,感谢易友ming1228。   13. 修改窗口“在任务条中显示”属性和“总在最前”属性在特定情况下相互冲突的BUG,感谢易友ok5168。   14. 修改易语言开发环境,为自定义数据类型时,粘贴代码,数据类型为“”的BUG,感谢易友叮咚茶。   15. 修改核心支持库“组合框.禁止=真”,在给“组合框.列表项目”属性赋值后,“组合框.禁止=真”失效的BUG,感谢易友子涵。 16. 修改易语言编译器,可以指定独立编译的程序运行时的支持库释放目录,感谢易友西风。 17. 修改核心支持库,“其它”类别增加了六个命令(“取组件名称”“寻找组件”等),用作支持窗口组件反查。 18. 修改核心支持库“播放音乐()”命令,个别WAV文件不能播放的BUG,感谢易友破天一箭,流川枫,别康桥,得心应手,一帆风,z284949127,上等兵,yanshi810,xushushun。 19. “特殊功能支持库”中的“置入代码”命令已移入核心库,原有命令已被隐藏。 20. 在开发环境中打开被调用命令的参数引导(Alt+→)后,对每个参数的说明已可体现出是否为数组类型。 21. 修改“取配置节名”在节名个数超过一定数量时可能会导致返回值出错的BUG。 22. 修改“取对象类型”命令取不到FNR支持库中窗口组件类型名称的BUG。 对其它支持库的更新: 1. 修改应用接口支持库“取窗口标题”命令在指定窗口标题为空的情况下返回窗口类名称的BUG,感谢易友叮咚茶。 2. 修改应用接口支持库“取文件版本信息”在失败的情况下返回上次结束的BUG,同时添加逻辑型返回值,感谢易友yhan。 3. 修改应用接口支持库“取窗口类名”命令在指定窗口不存在的情况下取出窗口类名为乱码的BUG。 4. 修改通用对象支持库中“快速文本对象”“快速字节集对象”没有复制构造函数的BUG,感谢易友wentianxin。 5. 修改应用接口支持库“截取屏幕区域”命令未及时释放GDI资源的BUG,感谢易友醉。 6. 修改数值计算支持库“大数.导入文本()”,允许参数文本以一个或多个0开头,感谢易友王军。 7. 修改应用接口支持库“取窗口标题”在窗口标题以汉字开头的情况下可能返回空文本的BUG,感谢易友叮咚茶。 8. 修改数据结构支持库,为数据类型“表”添加方法“删除键值对”“删除所有键值对”,感谢易友.end。 9. 修改VCLBase支持库,因为设置数据类型“键值编辑器”的“可调整列位置”属性时会引发异常“可调整列位置 是不支持的选项”,所以将其删除,感谢易友MMiao79,nfh_china。 10. 修改应用接口支持库“取窗口标题”最多只能返回511个字符的BUG,感谢易友叮咚茶。 11. 修改数据结构支持库中数据类型“表”未及时释放内存的BUG,感谢易友.end。 12. 修改应用接口支持库“取窗口标题”命令取得的标题比实际标题少1到2个字符的BUG,感谢易友叮咚茶,wentianxin。 13. 修改高级表格在表头列类型为非文本的情况下“取数据()”返回结果不对的BUG,感谢易友小熊。 14. 修改应用接口支持库“取窗口标题”命令在取其它进程中的窗口标题时取出的文本不完整的BUG,感谢易友叮咚茶。 15. 修改扩展界面支持库一“工具条.取状态()”命令说明中的笔误。   16. 修改windows媒体播放器“鼠标按键被按下”事件中,第一个参数“鼠标按键”说明中的笔误,感谢易友xyx20021129。   17. 修改热键框“功能键”的属性名称,感谢易友mingriver。 18. 修改高级表格支持库,解决在部分打印机中打印不出图片的BUG,感谢易友97998。 19. 修改数据图表支持库,解决“柱状图控件”与“曲线图控件”在第一个X轴标注文字为空文本的情况下,导致X轴其它标注文字显示不完整的BUG,感谢易友wentianxin。 20. 修改高级表格,“回车键功能”属性增加“3.无”,感谢易友hswad。 21. 修改数据库支持库在记录集未置数据库连接的情况下调用“删除(3)”导致程序异常退出的BUG,感谢易友王庆。 22. 修改外部数据库组件不支持MS SQL Server中的nvarchar类型的BUG,感谢易友见易思迁。 23. 修改外部数据库组件无法读取MSSQL中binary类型字段的BUG,感谢易友NightCAT。   24. 修改外数数据库.查询()之后自动定位到首记录,感谢易友见易思迁。 25. 修改远程服务支持库在客户端连接失败的情况下出现socket句柄泄露的BUG,感谢易友readyisme。 26. 修改数据库支持库“记录集.写字段”在字段名称不存在的情况下也返回真的BUG,感谢易友liyunxing。 27. 修改高级表格,置图片多次GDI资源泄露问题,感谢易友borisc。   28. 修改超级菜单,当菜单条不可见时在代码中修改菜单的可视属时,弹出菜单的子菜单标题不可见的BUG,感谢易友搞怪。 29. 修改数值运算支持库大数除法的一处BUG,感谢易友zhen。 30. 修改MySql支持库,添加了“取影响行数” 方法,感谢易友浮云缭绕。 31. 修改高级表格调整行列数时未正确处理现有合并单元格的BUG,感谢易友wentianxin。   32. 修改互联网支持库,“HTTP读文件”命令支持读取HTTPS协议文件,感谢易友季翔。 33. 修改XML解析支持库,在连续两个自结束节点()存在时可能导致导入失败的BUG,感谢易友.end。 34. 修改XML解析支持库,允许XML文件中双引号之间的属性文本中存在任意字符,包括,感谢易友技术支持部、user190。 35. 完善XML解析支持库,增加对CDATA的支持,和XML文本格式化功能,感谢易友goomoo。 36. 完善XML解析支持库,导出到文本或字节集时必要的时候使用自结束节点格式,感谢易友goomoo。 37. 修改应用接口支持库,完善了“是否与互联网连接”和“是否登入网络”的命令说明,并隐藏了后者,感谢易友mijac。   38. 修改数值计算支持库,“曲线拟合.三次样条插值()”的第二个参数“三次样条方程系数”可以直接接受“曲线拟合.三次多项式方程()”的计算结果作为参数,感谢易友搞怪。 39. 修改高级表格支持库,增加“表头被单击”“表头被双击”事件。 40. 修改高级表格支持库,将属性“表头可单击”更名为“响应表头被单击”。 41. 修改扩展界面支持库一,在主窗口刷新时透明标签没有及时刷新的BUG,感谢易友地球销售代表。 42. 修改VCLBase支持库,高级分隔条“高亮渐变起始颜色”属性名称重复的BUG。 其它更新: 1. 更新了易语言知识库(ESDN)(仅在完全安装版中提供)。 2. 增加了“硬件操作精解-精简版”教程(仅在完全安装版中提供) 3. 在“行业控件”类例程中新增“Grid++report报表控件”。 4. 在“行业控件”类例程中新增“滴答报表控件”。 5. 在“行业控件”类例程中新增“skinsharp皮肤控件”。 6. 在“硬件控制”类“加密锁”例程中新增“ET199”。 7. 修改易语言安装制作程序,允许在开始菜单生成多级程序组(目录),感谢易友银戒指、电子商务。 8. 修改远程服务支持库例程“网络数据库中间件.e”中删除意外断开连接客户的BUG,感谢易友雨纷飞。   9. 修改了购买易语言的说明信息,由学习版50元,改为免费,感谢易友majiyunsea。 -------------------------------------------------------------------------------- 易语言4.11版相对于4.10更新说明: 对易语言编译器、开发环境、核心支持库的更新: 1. 修改易语言编译器“‘调用外部DLL命令的程序’执行结束后未释放该DLL”的BUG,感谢易友企达软件。 2. 修改易语言编译器编译动态链接库时提示“寻找指定库命令失败”的BUG。 3. 修改易语言开发环境,在调试状态下允许通过双击设计窗口中的组件跳转到对应的事件处理子程序。 4. 修改易语言开发环境“在窗体设计器中拖动组件导致GDI资源泄漏”的BUG。 5. 修改易语言开发环境,解决了程序集名称过长不显示程序集名称选择夹的BUG。 6. 修改核心支持库,窗口的“销毁()”命令改为通过PostMessage间接实现。 对其他支持库和相关例程的更新: 1. 修改支持库例程“INI手术室.e”,在勾选“是否使用Windows通用组件库6.0版”后编译,工具栏上的图标无法显示的BUG。 2. 修改扩展功能支持库一“当窗口总在最前时,气球提示框会被窗口挡在后面”的BUG。 3. 修改扩展功能支持库一“设置文件拖放”的错误,感谢易友叮咚茶。 4. 修改MySql支持库“读字段值”,当参数“字段索引”被传入类型为小数的参数值后,读取失败的BUG。 5. 更新多线程支持库:启动线程() 增加一个可选参数,用于接收线程句柄;并增加以下命令:等待线程,强制结束线程,关闭线程句柄。感谢易友zhe001。 6. 修改保密通讯支持库可能导致程序异常退出的BUG。 7. 修改高级表格预览时表格线不显示的BUG,感谢易友一帆风。 8. 修改高级表格选择块时鼠标回到首选择单元格致使该单元格自动进入编辑状态的BUG,感谢易友民政,wanwan5。 9. 修改农历日期框被禁止后文本和按钮不变灰的BUG,感谢易友p_anch;修改农历日期框控件默认大小为200*24。 10. 修改XP风格支持库“应用XP风格后令单选框文本颜色与选择框文本颜色失效”的BUG,感谢易友yulimate。 11. 修改VCLBase支持库中“单一实例”组件,“标识文本”属性为空文本时组件功能失效的BUG。 12. 修改数据操作支持库“记录集.读字节集()”读取失败的BUG,感谢易友rsrs168,xuejsh。 13. 修改DirectX支持库“输入设备.置鼠标边界()”命令说明中的笔误。 14. 修改高级表格累加公式功能可能累加其它列的BUG,并允许结果列小于开始列,感谢易友浮云缭绕。 15. 修改高级表格在粘贴“类CSV”格式文本时错误处理连续分隔符的BUG,感谢易友风精灵。 16. 修改高级表格在列类型为选择型时取不出表头文本的BUG,感谢易友恶人磨。 17. 修改可执行数据转换支持库令转换后的正则表达式支持库无法载入的BUG。 18. 修改高级表格,增加了“可否被编辑”事件,可在此事件中返回假以阻止当前选中单元格进入编辑状态,感谢易友123yizheng123。 19. 增加超级列表框状态图片组及其索引的说明,索引不能大于14(Windows的局限),感谢易友企达软件。 20. 优化调整Java支持库中JVM的查找及加载策略。 21. 修改XP风格支持库令分组框文本颜色无效的BUG,感谢易友破天一箭。 22. 修改易语言下载快车例程在程序已启动情况下新建下载任务时获取的URL缺少最后一个字符的BUG,感谢易友520zone。 23. 修改数据操作支持库中“记录集.删除(3)”不能删除所有记录的BUG,感谢易友rsrs168。 24. 修改数据库操作支持库有时取不到记录集记录数量的BUG,感谢易友h179635532。 25. 修改树形框“图片组被重新赋值后导致之前动态加入的项目丢失”的BUG,感谢易友菜鸟老大。 26. 修改高级表格“修改单元格数值时导致计算列无穷递归计算”的BUG,感谢易友一帆风。 27. 修改数值计算支持库“计算大数相乘时存在递归进位的情况下导致结果出错”的BUG,感谢易友chegjigfg。 28. 修改网络通讯支持库“网络服务器.断开连接()”导致CPU使用率100%的BUG,感谢易友尘土.飞扬,.end。 29. 修改数值计算支持库求实矩阵逆的BUG(注意不再返回矩阵行列式),感谢易友wuestuary。 30. 修改MySql支持库写入空字节集失败的BUG,感谢易友angelye。 31. 修改高级表格最后一行(或行)只显示半行(或列)而没有出现滚动条的BUG,感谢易友cbw,liweiyong和zye7504。 32. 修改高级表格,用鼠标或键盘选中高级表格某单元格时使其尽量完整显示(而不是只显示单元格上边或左边一部分),感谢易友 esir。 33. 修改易语言完整版安装程序“未选中安装多媒体教程的情况下仍然安装了多媒体教程”的BUG,感谢易友秋风下的落叶。 34. 网络通讯支持库网络服务器、网络客户端和网络数据报的“接收”方法均增加一个参数,用于返回是否接收成功。感谢易友.end。 35. 修改WORD2000支持库Word程序的文档即将保存事件的第二个参数修改无效的BUG,感谢易友97998。 36. 修改DirectX支持库“MIDI音乐.播放()”不支持含空格的文件名的BUG,感谢易友张飞,klasp。 37. 修改应用接口支持库“取网卡信息列表()”命令消耗大量内存且不释放的BUG,感谢易友伟业,花无心。 38. 修改农历日期支持库内部取节气的一处数据错误,感谢易友净莲。 39. 修改超级列表框不能通过对“现行选中项”属性赋值-1从而取消选中现行选中项的BUG,感谢易友zye7504。 40. 修改超级菜单支持库,在没有菜单条的窗口上放置一个超级菜单组件,运行时在标题栏点右键导致程序异常退出的bug,感谢易友狼性本色。 41. 修改超级列表框多次调用“置列图片(-1)”导致程序无故退出的BUG,感谢易友redxblue。 42. 修改应用接口支持库“是否与互联网链接()”未及时关闭网络连接句柄的BUG,感谢易友zzy90。 43. 修改超级列表框表项编辑对话框删除表项时未同时删除子表项的BUG,感谢易友TLSWR。 44. 修改MySql支持库"取字段属性"方法返回的字段属性值与字段类型常量无法对应的BUG,感谢易友gaoheran。 45. 修改互联网支持库“HTTP读文件”命令不能读取非80端口URL的BUG,感谢易友goomoo。 46. 修改超级列表框刷新问题和图标显示问题。 47. 增加超级列表框插入表项的帮助说明,“类型”属性为“大图标列表框”或“小图标列表框”的情况下,将始终在所有表项的最后插入新的表项,感谢易友redsleaf。 48. 修改超文本浏览框,补充完善了对事件“已就绪”和“载入完毕”的说明,感谢易友qq136013347。 49. 修改超文本浏览框未释放BSTR指针的BUG,感谢易友东灿。 50. 扩展界面支持库二“提取加入图片”命令增加一个参数以提取小图标,感谢易友redxblue。 51. 修改超级编辑框“最大允许长度”属性为0时最大允许输入长度仍被限制为64K的BUG,感谢易友红花。 52. 修改扩展界面支持库二“RTF到纯文本”命令无法处理\emdash\lquote\rquote等殊符号的BUG,感谢易友zjc2008。 53. 修改扩展界面支持库二超级编辑框设定字符格式为“#禁止更改”后无法取消“禁止更改”的BUG。 54. 修改超文本浏览框的逻辑型属性或逻辑型方法返回值可能有误的BUG,感谢易友wincom1。 55. 修改IP编辑框无法得到“获得焦点”和“失去焦点”事件的BUG,感谢易友hedogn,poplarshine。 56. 修改IP编辑框的默认窗口尺寸为104*20。 57. 为IP编辑框增加“地址被改变”事件,感谢易友zjzqs。 58. 修改压缩解压支持库“生成的压缩包内文件日期和解压缩后文件日期与原被压缩文件日期不符”的BUG,感谢易友wanwan5。 59. 修改易语言知识库中办公组件帮助文档中的笔误,感谢易友sxfxx。 60. 修改易语言知识库中“取网卡信息列表”命令例程有重复的程序集名称导致程序无法编译的错误,感谢易友cjdn。 61. 修改VCL相关支持库中在组件事件中销毁窗口可能导致程序非法访问内存的错误,感谢易友redxblue,nfh_china。 62. 修改VclBase支持库中位图按钮类型为“确认”、“是”时修改按钮标题后在运行时不显示按钮图片的BUG,感谢易友redxblue。 63. 扩展功能支持库一增加“拖放树型框项目”命令。 其它更新: 1. 在“行业控件”类例程中新增“Grid++report报表控件”。 -------------------------------------------------------------------------------- 易语言4.10版相对于4.06版(修订版1)更新说明: 1. 更新易语言开发环境和核心支持库,提供对VCL控件的更好支持。 2. 增加了易语言支持库开发包(SDK),目前有C++版本和Delphi版本。 3. 增加了两个用Delphi开发的支持库,VCLBase 和 JEDI,含大约20个封装自VCL的易语言窗口组件。 4. 增加了“硬件控制”方面的多个例程。 5. 增加了“网友优秀作品”例程。 6. 修改开发环境主程序,独立编译前提示,修改整体搜索的BUG。 7. 修改了通过右键菜单新建的.e文件不能直接保存的问题。 8. 修改了日期框自动跳转日期的问题。 9. 修改了MySQL支持库“执行SQL语句”的问题。 10. 修改了特殊功能支持库中“调用子程序”的问题。 11. 修改了“数据库语言转换器.e”转换出现乱码的错误。 12. 修改了“数据库管理器.e”有密码打开失败的错误。 13. 修改了“MIDI测试.e”音乐文件在桌面不能播放的错误。 14. 修改了多媒体支持库“CD播放.是否有CD”的BUG。 15. 修改了Excel支持库设置字体下划线无效的BUG。 16. 修改了“气球提示框”单击鼠标或按键导致提示框关闭未发送“提示框即将隐藏”事件的BUG。 17. 修改了“shellEx支持库”注册热键的BUG。 18. 修改了“网络通讯支持库”内存泄露的BUG。 19. 修改了小数型数据到文本函数多次执行出错的问题。 20. 修改了正则表达式“搜索全部”时假死的问题,和程序中多次频繁调用正则容易出错的问题。 21. 修改了多个支持库例程。 22. “可执行文件数据转换”支持库的代码打乱功能得到了较大的提升,不同的打乱码将得到差异性很大的结果,因此用户可以尝试使用不同的打乱码来从技术上应对杀毒软件的误报。 关于可执行文件数据转换,说明如下: 1、多次重复转换可能会导致转换后的可执行文件或易语言支持库无法使用,请确保只转换一次; 2、对于非易语言编译的可执行文件或DLL,不保证转换后能够正常使用; 3、如果想转换易语言独立编译可执行文件,应该在易语言的系统设置里面直接设置打乱码后进行编译转换,而不能在独立编译后再使用本命令来转换; 4、尽量在易语言系统设置里面设置打乱码后进行编译转换,在这种情况下,所编译出来的可执行文件将得到最好的打乱效果。 -------------------------------------------------------------------------------- 易语言4.06版(修订版1)相对于4.06版更新说明: 1. 未注册情况下,除不提供编译功能外,不再有其它任何限制,即等同于以前的学习版功能。 2. 核心库中播放音乐功能已支持多个音乐同时播放(混音)。 3. 修改了扩展界面支持库二中动画框PNG图片透明的问题。 4. 修改了可执行文件数据转换支持库,在Win98下转换的支持库存在载入失败的问题。 5. 修改了数据库支持库不能正常读写双精度小数的问题。 6. 修改了mysql支持库“读字段值”、“查找记录”、“创建表”、“修改表”的问题。 7. 修改了编码转换支持库部分情况下不能正常进行编码转换的问题。 8. 修改了远程服务支持库不能同时启动两个服务器的问题。 9. 对以往支持库的相关例程做了修正更新。 10. 对安装包中的部分执行文件(.exe)进行了重新编译。 -------------------------------------------------------------------------------- 易语言4.06版相对于4.05版(修订版1)更新说明: 1. 扩展界面支持库二中增加了动画框组件 2. 增加了可执行文件数据转换支持库,以应付一些使用落后的特征码查毒技术的杀毒软件,使其不再或很难对易语言编译出来的程序和易语言本身支持库误报. 3. "工具->系统配置->目的程序安全"选项中增加了编译结果打乱码设置,设置此选项后将会自动对"编译"、"独立编译"、"编译生成安装软件"菜单功能所产生的结果进行自动打乱。 4. 远程服务支持库修改了服务端和客户端线程句柄泄露的错误. 5. 高级表格支持库,在类型为“选择型”的单元格中按下空格键前后,将分别触发“将被编辑”“结束编辑”事件. -------------------------------------------------------------------------------- 易语言4.05版(修订版1)相对于4.05版更新说明: 1. 编译器,更正了“对全局数组变量和局部变量多次赋值可能无效”的BUG。 2. 核心库,更正了“取时间间隔”命令的BUG。 3. 扩展界面支持库三,更正了高级选择夹“无法删除表头字体”和“‘竖排子夹名称’属性为‘真’时子夹名称显示不完整”的BUG;外加一项改进:编辑“子夹管理”时可预览字体和字体颜色。 -------------------------------------------------------------------------------- 易语言4.05版相对于4.04版更新说明: 1. 对以往支持库和相关例程发现的问题做了修正更新。 2. 开发环境新增了剪辑历史处理和展开全部代码功能 -------------------------------------------------------------------------------- 易语言4.04版相对于4.03版更新说明: 1. 对以往支持库和相关例程发现的问题做了修正更新。 2. 增加了3个支持库: 自定义图形支持库 编码转换支持库 矢量动画支持库 -------------------------------------------------------------------------------- 易语言4.03版相对于4.02版更新说明: 编程环境新增快速跳转夹和书签支持。 系统新增长文本常量支持。 新增“代码编辑框”支持库 新增“通用对象支持库”,内含“快速文本对象”“快速字节集对象”等数据类型。 特殊功能支持库:新增“取文本”等三个命令。 Sqlite数据库支持库:“Sqlite表”新增“查找”方法;将Sqlite版本升级至目前最新的3.3.4版。 扩展界面支持库三:改进卷帘式菜单控件,允许修改非选中菜单中的项目属性;改进高级选择夹控件在表头样式为梯形时的外观显示;改进部分属性和方法的说明信息。 扩展界面支持库五:修改气球提示框控件在Windows98系统下字体不清晰的BUG;新增对的支持。 扩展界面支持库六:对多功能条控件进行的小的改进。 农历日期支持库:修改农历日期框控件调用“增减日期”“置农历日期”“置公历日期”等方法后未及时更新显示文本的BUG。 数据结构支持库:修改"链表.加入节点"方法有时不能按键值正确排序的BUG。 其它一些支持库的改进和修正 -------------------------------------------------------------------------------- 易语言4.02版相对于4.0版更新说明: 1、DLL命令调用功能全面增强,具体请参见核心支持库手册里面的“调用API.e”例程和相关文档。 2、新增位图操作和易LOGO两个支持库。 3. 核心库中的外部数据库组件被修正。 4、以下支持库被修正或增加新功能: 互联网服务支持库 网络传送支持库 mysql支持库 Sqlite数据库支持库:增加了20个命令以直接返回相关数据(而不是写入到参数变量中)。 扩展界面支持库三:增加了提示文本功能,同时更新了卷帘式菜单和高级选择夹的属性编辑对话框并增加了相关方法;在卷帘式菜单控件的“项目”属性编辑对话框中,如果项目名称为空文本,则显示为“未命名”,以便于用户以鼠标点击选中。 扩展界面支持库五:“汽球提示框”更名为“气球提示框”并增加“批量关联组件”方法,以方便用户动态指定提示文本;修改其“提示框即将弹出”事件的参数“手柄横向坐标”“手柄纵向坐标”,由屏幕坐标改为客户坐标,以方便用户处理。 数据图表支持库:曲线图和柱状图增加了“显示标注”和“提示文本”属性;鼠标指向曲线图和柱状图的相应区域时会有提示框弹出并显示当前数据值。 XML解析支持库:增加导入导出字节集功能,另外增加了9个命令以直接返回相关数据(而不是写入到参数变量中)。 -------------------------------------------------------------------------------- 易语言4.0版相对于易语言3.8正式版更新说明: 1、“新建”对话框布局改变,将一些新建项目进行了分类,大家可以在Samples和Wizard目录中组织目录,“新建”对话框会自动列出。 2、新的“文本代码编辑器”工具。 代码编辑方式是以文本方式编辑,在每一行程序编辑完成后不必回车确认,直接下移光标继续输入。或按[Shift+回车]可代替原单键[回车]形式。 可以将代码以文本方式复制到记事本,或从记事本将文本代码粘贴回来,系统自动恢复为程序代码。 “系统配置”中可以设置改变编辑区字体及字号。 “系统配置”中的“输入新语句后自动检查语法错误”项选中时,当光标在代码行末时回车,就可以编译当前行检查是否有语法错误,并在提示面板中提示出来。默认为选中。 若“系统配置”的“输入新语句后自动检查语法错误”项未勾选,代码编辑时将不会弹出错误提示,代码编辑后的运算符号不会规范整理,而会在调试或编译时给出错误提示,或使用全程提示工具检查,或通过按[Shift+回车]编译当前行进行检查。 3、新的“全程提示”工具,当用户将鼠标移至常量、变量、属性表等名称上停留片刻,会显示当前名称的相关信息。对未事先声明的变量不作任何提示。 4、新的“寻找替换管理器”工具。可以在当前程序集中进行寻找与替换。 5、新的“程序调试管理器”工具。新设计的“调用表”面板与“监视表”面板代替了原调试面板,具体使用与原来的调试方法类似,可用“查看表达式/变量”菜单查看当前子程序变量值。 6、新的“整体搜寻管理器”工具。提示夹中增加“搜寻1”、“搜寻2”两个面板。使用“整体搜寻”菜单命令可将搜寻结果显示在其中,并且可以对比查看。 7、新的“条件断点管理器”工具。新增“条件断点”菜单,可以设置断点时给定一组条件,方便调试,如果断点不是条件公式,就会自动转换为普通断点。 8、新的“组件排列管理器”工具。当没有安装扩展组件、OCX组件或COM组件时,不显示分类,当组件排列拥挤时,自动增加分类。 9、新的“配色方案管理器”工具。编辑代码区与属性表的配色方案已合并,且支持任意颜色自由定制,大家可将自定义的配色方案拷贝到Clr目录中,就可在列表中看到。 请使用菜单“工具”→“系统配置”→“程序显示”→“颜色配置”,在下拉列表中选择本Clr目录中的颜色配置文件。 10、“提示”面板中显示命令帮助内容时,将会显示当前命令所处的上级支持库分类信息,以利于用户查询所在支持库。 11、调试中断后回到代码编译界面,可将鼠标移到变量上查看变量值提示。 12、备注直接使用单引号标注,并兼容打开以前版本的代码自动改为单引号标注形式。 13、热键调整:如原直接使用键盘的方向键可展开命令,现在需要使用[ALT+方向键]才可以展开,“单步跟踪”热键有所改动。 编辑时原[F1]热键插入文件名称路径现改为[F2]热键插入。[F10]可删除一行,[CTRL+K]可屏蔽一行。 14、菜单调整:如“配置”子菜单移至“程序”菜单下,增加“条件断点”菜单,原“易向导”菜单改为“执行易向导”菜单.....具体请自行对比。 15、Samples目录中增加大量的经典例程,供大家学习交流。 16、Ecom易模块目录中新增若干易模块及例程。 17、易向导中增加“通用密码登录管理向导”及“OpenGL向导”。 18、系统配置对话框的“编译选项”中新增“是否使用Windows通用组件库6.0版”选项,默认不选中。如果选中,编译后的程序将使用6.0版风格的组件。 19、推出了以下新的支持库: 农历月历支持库中新增“农历月历”组件 拖放支持库 正则表达式支持库 进程通讯支持库 BT下载支持库 网络通讯支持库二 扩展界面支持库三中增加“高级选择夹”组件(本库必须在易语言4.0以上版本中使用) 应用接口支持库 OpenGL支持库 DirectX发支持库 SQLite数据库支持库 控制台操作支持库 扩展界面支持库五 20、办公组件支持库已升级,推荐大家使用该升级后的支持库。 21、新表格组件改名为高级表格以区分基本支持库中的表格,方便大家定义数据类型。 22、网络传送支持库更新及易语言下载快车已更新。 23、基本组件中的打印机组件已支持自定义纸张,“开始打印”方法中当“纸张”参数为-1时,可以自定纸张宽高。 24、“打印机”对象和“打印设置信息”数据类型中的打印纸类型新增了100多种扩展打印纸类型。 25、系统核心支持库中的“寻找字节集”和“倒找字节集”命令各增加一个参数。 26、窗口组件的基本事件中加入了“滚轮被滚动”事件,以支持鼠标滚轮编程。 27、核心库“其它”类别中增加了“DLL命令调用转向”命令,以支持程序中对非固定文件名DLL中的输出命令进行调用。 28、编辑组件的文本型属性时可以编辑多行文本。 29、组件箱右上角增加一个按钮,可以在组件图标排列与组件名列表中切换。 30、“输出调试文本”命令支持通用数据类型。 31、编译使用了易模块的易程序时,由过去仅在易语言安装目录ECOM下寻找所需要的易模块文件改为首先在易程序所处目录下寻找,然后再去ECOM目录下寻找。 32、易模块管理对话框中新增了“创建指定易模块文件的接口程序集”按钮。 33、为规范编程,多个易语言打开同一个源代码时,将会提示切换到打开的程序中,否则请另存为新文件名后再打开,以保护程序。但如果你用新建方式打开程序时,不受此保护。 34、修改了用户程序当支持库不存在时弹出的出错信息。 35、所有图片组属性的组件选索引时支持直接通过选取图片组的方式输入。在索引项目后多了一个按钮,点击按钮后弹出图片组预选窗口,直接选中图片即可。 36、扩展界面库一中的树型框增加了“右键单击项目”事件。 37、系统颜色配置里面新增了“窗体设计器背景”项。 38、编译时实施了严格的重复名称检查,编译选项中新增“严格的重复名称检查”选项,为了兼容以前的程序,默认为不选中,建议将其选中。 39、支持库列表中增加排序功能,可按拼音顺序排列支持库。具体是支持库面板的鼠标右键菜单中增加“排序”子菜单。 40、核心支持库中的“窗口”数据类型增加了“置父窗口”方法。 41、核心库中的“数值转换”类中新增了“到字节”、“到短整数”、“到整数”、“到长整数”、“到小数”命令。 42、核心库中的“位运算”类中新增了“左移”、“右移”、“合并整数”、“合并短整数”命令。 43、核心库中的“变体型”数据类型新增“取字节集”方法,并且其“赋值”方法支持置入字节集类型数据。 44、核心库中的“载入”命令被改进,当以对话框方式载入不可视窗口时,不再强制显示并等待,而直接返回, 然后可以通过设置该窗口的可视属性为真来显示该对话框。此改进后,可以进行以下操作: 载入 (窗口1, , 真) 窗口1.标题 = "演示" 窗口1.可视 = 真 45、核心库中的“从字节集转换”命令更名为“取字节集数据”,并增加一个参数,以支持从字节集中随意取出部分数据。 46、核心库中的“打印机”对象有所改进,并且增加了四个方法用作在Windows2000/NT/XP下设置自定义纸张类型。 47、“支持库配置”对话框上方加入了查找功能。 48、“支持库配置”对话框下方增加了删除支持库按钮。 49、“系统配置”对话框内“颜色配置”部分增加了“导入”按钮。 50、左侧支持库列表中数据类型部分列入了成员事件并加入了全面的提示。 51、属性表下方的事件组合框内对已有事件子程序的事件进行了标记,并将自有事件和固定事件分开。 52、鼠标指针属性新增“手型”类型。 53、对列表式组件箱进行了排序。 54、窗口设计器中右键单击组件后所弹出的菜单内新增了“查看数据类型定义”菜单项。 55、组件右键菜单中加入“锁定”和“解除锁定”菜单,锁定组件时只能使用键盘的光标键移动或使用SHIFT的组合改变大小。 56、当前系统正在编辑一份易程序时,双击打开新易程序时,会弹出询问对话框,用户可以选择重新启动一份易语言系统打开程序。 57、输入备注时不再有提示框出现。 58、单行编辑框文字垂直居中。 59、恢复了调试变量表。 60、恢复了在行尾回车时自动询问增加未定义的变量、子程序、常量名(仅当“输入新语句后自动检查语法错误”系统设置被选中时有效)。 61、打印机对象改正了默认纸张的设置问题。 62、核心支持库增加“置错误提示管理”命令,用作支持用户自行提示严重错误信息。 63、核心支持库中的“选择夹”组件增加了“是否填充背景”、“背景颜色”两个属性,用作解决“隐藏自身”属性为真时选择夹内 一些子组件的刷新问题。 64、系统的“程序”菜单中新增“重新名称关联”菜单项。 65、加入了源代码加密功能。 66、核心库中“服务器”组件的“取回客户”方法支持在“数据到达”事件中使用。 67、核心库中“媒体播放”类别中增强了对MP3播放的支持。 68、核心库中“系统处理”类别中增加了“多文件对话框 ”命令。 69、编译器所支持语法格式改进,返回值支持直接引用其成员,如“a.方法1 ().a1.方法2 ()”语句格式现在已经可以使用。 70、系统的“工具->系统配置”菜单中新增“目的程序安全”选项夹。 71、系统的“编辑”菜单中新增“到最近修改处”菜单项。 72、改进了各种编程语言对易语言DLL的调用支持。 73、新增扩展界面支持库六、DirectX3D支持库。 74、自定义鼠标指针支持彩色。 75、易模块管理功能被去除,支持新的易模块引入功能,且易模块公开支持项目增多。 76、系统自易模块中新增3D图形引擎支持易模块。 -------------------------------------------------------------------------------- 易语言3.8正式版(修正第二版)相对于3.8测试版的改动部分: 1、支持开发并使用易语言向导程序,具体例程请见lib\ewizard\samples目录下的“应用程序向导.e”及“API助手.e”文件。 2、源程序编辑窗口右键菜单中新增“收缩屏蔽”功能,可以用作一次性屏蔽大段代码。 3、系统不再默认载入所有支持库,而必须在支持库配置中指定。 4、源程序的载入速度得到提高。 5、推出了以下新的支持库: 易向导支持库 农历日期支持库 远程服务支持库 扩展界面支持库三 互联网服务支持库 邮件接受支持库 多媒体支持库 表格支持库 超级菜单支持库 保密通讯支持库 办公组件支持库 另外,图表支持库和表格支持库现在支持和打印机对象合作打印。 -------------------------------------------------------------------------------- 易语言3.8测试版相对于3.7正式版的改动部分: 1、支持完全的面向对象编程,可以在程序中定义并使用对象。 2、编写DLL时其中的公开子程序可以接受文本数据类型参数,且可以返回文本和字节集型数据。 3、支持源程序代码的收缩和展开(操作方法:选中程序块后单击右键选“收缩”菜单项,在子程序头上可以直接左键单击子程序名左边的减号)。 附,易语言面向对象开发特性简要说明: 1、易语言支持类的构造、析构、继承、虚拟方法、多态、封装特性。 2、对象的构造: 构造顺序为:先构造基类对象,再构造其继承类对象,如果类中具有对象成员,则先于其所处对象构造。 3、对象的析构: 析构顺序为:先析构继承类对象,再析构基类对象,如果类中具有对象成员,则在其所处对象后析构。 4、继承: 任何类均可以指定另外一类作为其基类,继承层数不限。 5、虚拟方法: 在基类中的方法可以被其继承类中的同名方法覆盖,当调用此方法时,系统自动根据所调用的对象 实体去调用对应的方法。 6、多态性: 可以将一个继承类对象赋予到其基类数据类型变量中,此时对此基类对象变量进行操作,将反映出继承类对象的特性。 7、类的封装: A、类的所有成员数据变量只能由该类本身的方法代码所访问,属于私有性质。 B、在继承类中可以以“类名.方法名”的方式指定访问基础类中的方法。 C、只有标记为“公开”的方法才能在类代码外部通过该类的对象实体来访问。 -------------------------------------------------------------------------------- 易语言3.7正式版相对于3.7测试版的改动部分: 1、编辑环境可以打开未安装对应支持库的易语言源程序。 2、“内码转换”支持GBK与日文内码SJIS之间的转换。 3、核心支持库中的“对象”数据类型增加了“取接口”方法。 4、“到字节集”、“到文本”命令被增强。 5、“数值到人民币”改名为“数值到金额”。 6、“取系统语言”命令支持linux,并增加日文类别。 7、“取操作系统类别”命令支持linux。 8、所有COM封装对象的“取子对象”方法更改为“取接口”,并增加一参数以取出指定接口。 9、改进后的packcom工具,用3.7测试版中的packcom生成的npk请使用本版本中的packcom打开后保存,以进行转换。 10、对测试过程中发现的所有问题都已经纠正。 -------------------------------------------------------------------------------- 易语言3.7测试版 相对于 3.6 正式版的新增功能: 1、对微软COM技术的全面支持,包括ActiveX组件、OLE自动机、COM类型库等等,详细说明请见ESDN帮助 2、跨平台的网络通讯支持库 3、跨平台的Mysql数据库支持库,且功能全面加强 4、跨平台的多线程支持库 5、EXCEL2000支持库(直接操作Excel) 6、WORD2000支持库(直接操作Word) 7、PowerPoint2000支持库(直接操作PowerPoint) 8、数据图表支持库(柱形图,饼形图、曲线图) 9、脚本语言支持库(可以运行VB script Jave script等脚本) 10、文本语音支持库(提供对文本转语音输出以及语音识别的支持) 11、易语言支持库在运行时支持动态加载 12、枚举常量的支持(详细说明见ESDN帮助) 13、更新了setup安装程序(即菜单"编译生成安装软件"的功能改进,解决了反安装时删除全部目录的问题,添加额外文件时增加了批量添加,还有更多安装功能的增强!) 14、部分功能的加强(如:树型框可以高速批量加入项目、标准输入命令支持密码输入、启动多线程支持参数等等) 15、其他很多地方改进。 -------------------------------------------------------------------------------- 易语言 3.6 公司成立纪念版 相对于 3.5 正式版的新增功能: 1、增加了对Linux平台的支持,可以用易语言在Windows环境下编写Linux控制台程序 2、增加了Windows动态链接库(DLL)的编写,用易语言能编写出DLL供自己以及其他编程语言(VB,VC,Delphi等)调用。 3、增加了控制台操作的2个命令“标准输出”、“标准输入”, 4、增加了3个命令:“指针到文本”(文本操作),“指针到字节集”(字节集操作)、“写到内存”(其他),最佳使用场合在易语言回调子程序和易语言DLL公开子程序中用作对外输出数据。 5、增加了图形图像支持库 - 格式1.0版,支持多种图片格式的转换。 6、增加了XP风格界面库1.1版,支持部分控件的4种风格类型的转换。 7、增加了文件压缩/解压缩支持库1.0版,支持.zip格式的压缩解压,同时用本库压缩的.zip文件也可以被其他压缩软件使用 8、增加了多线程支持库1.1版,供对多线程的支持,并通过实现进入许可证机制以避免多线程冲突。 9、增加了数据库操作支持库1.0版,本支持库用来访问各种类型数据库。 10、增加了MySql支持库1.1版,本支持库实现对MySql的支持。 11、扩展界面支持库二1.1版中增加了“IP编辑框”窗口组件,支持对IP地址的输入和编辑。 12、修改了易模块的接口结构,在支持原有结构的基础上,增加了新的接口创建方式。 13、开发环境增加了即时输入提示。 14、全面增补帮助文档(esdn.chm),增订图片及例程。 15、其他很多地方改进。 以上新增功能详细情况请看易语言新版esdn帮助文档(esdn.chm),均有详细说明及例程。 -------------------------------------------------------------------------------- 易语言 3.5 正式版 相对于 3.39 版的新增功能: 1、增加了扩展界面支持库二,包含超级按钮、高级影像框、分隔条、 超级编辑框等窗口单元,包含图片组处理、文档格式转换等分类命令。 2、增加了端口访问支持库,以支持对计算机端口的直接访问。 3、图片组支持真彩且制作工具性能提升。 4、表格拖动选择闪烁的问题已经解决。 5、系统配置中可以设置不显示程序备注。 6、数据源支持设置基于单元格的只读属性。 7、组合框和列表框的数据绑定实现方式改变。 8、其他很多地方改进。 -------------------------------------------------------------------------------- 易语言 3.39 正式版相对 3.38 版的新增功能: 1、可以读取繁体版易语言编写的程序。 2、增加了 cncnv 内码转换支持库。 3、增加了树型框的事件和方法。 4、改进了打印预览。 5、运行时树型框的“项目”属性可以读出当前项目数据。 6、可以在“程序设置”对话框中设置程序版本号。 7、改正了读取SQL SERVER数据库出现的问题。 8、改正了xp下托盘图标弹出菜单单击桌面不消失的问题。 -------------------------------------------------------------------------------- 易语言 3.38 正式版相对 3.36 版的新增功能: 1、支持加密狗。 2、操作系统界面功能支持库中增加了“关闭系统”命令,支持重启、关机、注销、休眠、冬眠。 3、改进了扩展界面支持库中的透明标签单元。 4、其他改进。 -------------------------------------------------------------------------------- 易语言 3.36 正式版相对 3.3 版的新增功能: 1、开发环境支持源代码打印。 2、开发环境窗口单元箱增加了滚动按钮。 3、改进了安装卸载子系统。 4、改进了端口组件,添加了方法和属性。 5、改进了“操作系统界面功能支持库”中的“创建快捷方式”命令。 6、改进了OCX支持。 -------------------------------------------------------------------------------- 易语言 3.3 正式版相对 3.2 版的新增功能: 1、新增了“操作系统界面功能支持库”,支持Windows外壳功能。 2、试用限次在各版本之间不再累加。 3、支持数据库加密。系统核心支持库数据库类别中增加了“是否已加密”、 “置数据库密码”、“密码输入框”、“复制密码”命令。“打开”命令 的数据库密码参数已经启用,改进了数据库管理器和易之表以支持加密 数据库; 4、数据操作支持库一中增加了对RSA数字签名和验证的支持(提供了“数字 签名钥匙测试.e”例程),并增加了对RC4加密算法的支持; 5、系统核心支持库中的“文件读写”类别中增加了“打开加密文件”命令, 用作保存加密文件数据,并提供了“加解密工具.e”例程; 6、改进了安装程序的卸载功能。 -------------------------------------------------------------------------------- 易语言 3.2 正式版相对 3.1 版的新增功能: 1、增加了对OCX组件(即ActiveX组件)的支持。 易语言 3.1 正式版相对 3.0 版的新增功能: 1、支持独立编译,独立编译后的易语言程序可以脱离易语言系统单独运行。 易语言3.0 正式版相对测试五版的新增功能: 1、增加电子注册支持。 易语言3.0 测试五版本相对于测试版三新增功能: 1、“系统处理”命令类别中加入了对配置文件进行操作及取操作系统类别的命令。 2、改进了调试过程中查改容器的功能(移到了工具条上)。 3、完成了安装制作工具的开发,具体请见系统setup目录中的readme.txt文件说明。 只是由于目前编译功能尚未开放,所以暂时不能被使用。 易语言3.0 测试三版本相对于测试版二新增功能: 1、加入了程序调试支持系统。 易语言3.0 Beta版本相对于2.51版本新增加的功能和需要注意点: 一、新增功能: 建立了完全的易程序编译器系统,支持全编译,可以直接将程序编译为CPU指令码 运行,从而突破了长期以来的速度瓶颈。 二、新增特性: 1、子程序指针值为该子程序的内存代码地址,可以直接传递给DLL命令用作回调。 2、只有被使用到的代码和数据才会被编译到可执行文件中。 3、如果需要屏蔽子程序中的某段程序使之不会被编译输出,直接使用类似: “判断循环首(假)”或 “如果真(假)”括住该语句块即可。 4、程序配置中允许设置任
内容简介 XQuery是专门针对XML的查询语言,其作用类似于关系数据库的SQL。   本书比较深入全面地介绍了XQuery相关知识,包括XQuery的概述和快速指南,如何使用XQuery编写简单和复杂的查询,如何对XML数据过滤、排序和分组,还讲述了FLWOR表达式、XPath及提取、组合数据的XQuery工具。本书的附录提供了XQuery的函数、内置类型及错误信息,因此可以作为XQuery编程指南。   本书的特点是用简洁的语言深入浅出地介绍了XQuery方方面面的知识,在讲述有些内容时把XQuery与其他广为人知的技术如SQL等相对比,使得读者可以很快上手。阅读本书只须要了解一些基础的XML背景知识。本书除了用于指导编程外,还可用作提高与优化XML数据检索性能的参考书。   本书不仅适合那些须要操作大量XML数据的程序员(不管是使用C#还是Java等语言的程序员都适合阅读本书),还适合管理XML数据库的管理员,以及那些非IT行业但须要频繁使用XML数据的业务人员。   这是一本适合作为XQuery学习教材和参考指南的书。 作者简介 Priscilla Walmsley,多年深入从事XQuery和XML Schema相关工作。她是W3C XML Schema工作组1999年到2004年的成员。此外,她还编写了广受好评的《Definitive XML Schema》(Prentice Hall出版社)(译者注:中文名《XML模式权威教程》)一书。最近Priscilla担任Datypic(www.datypic.com)的常务董事,在那里她专注于XML和面向服务架构(SOA)相关的咨询和培训。 目录 前言 第1章 XQuery介绍  1.1 什么是XQuery  1.2 转向XQuery  1.3 路径表达式  1.4 FLWOR表达式  1.5 添加XML元素和属性  1.6 函数  1.7 连接  1.8 求和与分组 第2章 XQuery基础  2.1 XQuery语言的设计  2.2 XQuery与其他标准的关系  2.3 处理查询  2.4 XQuery数据模型  2.5 类型  2.6 命名空间 第3章 表达式:XQuery的组成部分  3.1 表达式种类  3.2 关键字和名称  3.3 查询中的空白符  3.4 字面值  3.5 变量  3.6 函数调用  3.7 注释  3.8 计算顺序和括号  3.9 比较表达式  3.10 条件(ifIthen-else)表达式  3.11 逻辑表达式 第4章 使用路径定位输入文件 4.1 路径表达式 4.2 谓词 4.3 动态路径 4.4 输入文件 4.5 深入了解上下文 第5章 在结果中增加元素和属性  5.1 包含输入文件中的元素和属性  5.2 直接元素构造器  5.3 计算构造器 第6章 使用FLWOR表达式查询和连接  6.1 使用路径表达式查询  6.2 FLWOR表达式  6.3 量化表达式  6.4 选择不同的值  6.5 连接 第7章 排序和分组  7.1 XQuery中的排序  7.2 分组  7.3 对值求聚合 第8章 函数  8.1 内置函数与用户自定义函数  8.2 调用函数  8.3 用户自定义函数 第9章 高级查询  9.1 复制并修改输入文件  9.2 使用位置和序列编号  9.3 合并结果  9.4 使用中间.XML文档 第10章 命名空间与XQuery  10.1 命名空间  10.2 命名空间和XQuery  10.3 查询中的命名空间声明  10.4 在结果中控制命名空间声明 第11章 深入了解类型  11.1 XQuery类型系统  11.2 内置类型  11.3 类型、节点和原子值  11.4 XQuery中的类型检查  11.5 自动类型转换  11.6 序列类型  11.7 构造器和转换 第12章 查询、序言和模块  12.1 查询的结构:序言和主体  12.2 集中使用多个模块中的查询  12.3 变量声明  12.4 声明外部函数 第13章 在XQuery中使用Schema  13.1 什么是Schema  13.2 为什么在查询中使用Schema.  13.3 W3C XML Schema:概述  13.4 作用域内的Schema定义  13.5 Schema校验和类型分配  13.6 序列类型和Schema 第14章 静态类型  14.1 什么是静态类型  14.2 typeswitch表达式  14.3 treat表达式  14.4 类型声明  14.5 zero-or-one,one—or-more和exactly—one函数 第15章 查询设计的原则  15.1 查询设计的目标  15.2 清晰化  15.3 模块化  15.4 健壮性  15.5 错误处理  15.6 性能 第16章 操作数值  16.1 数值类型  16.2 创建数值  16.3 比较数值  16.4 算术操作符  16.5 数值函数 第17章 操作字符串  17.1 xs:string类型  17.2 创建字符串  17.3 比较字符串  17.4 子字符串  17.5 得到字符串的长度  17.6 字符串连接和拆分  17.7 操作字符串  17.8 空白符和字符串  17.9 国际化考虑 第18章 正则式  18.1 正则式的结构  18.2 表示单个字符  18.3 表示任意字符  18.4 表示字符的组  18.5 字符类表达式  18.6 勉强模式  18.7 锚  18.8 向后引用  18.9 使用标记  18.10 使用替换变量的子表达式 第19章 操作日期、时间和时间段  19.1 日期和时间类型  19.2 时间段类型  19.3 提取日期、时间和时间段的组成部分  19.4 使用算术操作符处理日期、时间和时间段  19.5 日期组成部分类型 第20章 操作限定名,URI和ID 20.1 操作限定名 20.2 操作uRI 20.3 操作ID 第21章 操作其他×ML组件  21.1 XML  21.2 处理指令  21.3 文档  21.4 文本节点  21.5 XML实体和字符引用  21.6 CDATA段 第22章 其他XQuery相关的标准  22.1 序列化  22.2 XQueryX  22.3 XQuery修改功能  22.4 全文检索  22.5 用于Java(XQJ)的XQuery API 第23章 实现工具特有的特征  23.1 一致性  23.2 XML,版本支持  23.3 设置查询上下文  23.4 选项声明和扩展表达式  23.5 指定序列化参数 第24章 SQL用户的×Query  24.1 关系模型与XML数据模型  24.2 比较SQL语法和XQuery语法  24.3 结合SQL与XQuery  24.4 SQL/XML 第25章 XSLT用户的XQuery  25.1 XQuery和XPath  25.2 XQuery与XSLT  25.3 XQuery 1.0/XPath 2.0和XPath 1.0的差别 附录A 内置函数参考 附录B 内置类型 附录C 错误汇总 索引
Microsoft SQL Server 2005 Express Edition SQL Server 文档小组无法回答技术支持问题,但是欢迎您对本自述文档提出建议和意见。您可以使用提供的链接快速、直接地发送电子邮件反馈。请使用英语发送您的反馈信息。 若要通过邮件提交有关本文档的反馈信息,请单击此处:提交反馈。 目录 1.0 简介 2.0 下载并安装 SQL Server Express 2.1 .NET Framework 2.0 2.2 SQL Server Express 2.3 SQL Server Express 的管理工具 2.4 访问安装文档 2.5 SQL Server 2005 自述文件 3.0 安装问题 4.0 其他信息 4.1 服务帐户和网络协议 4.2 用户实例功能 4.3 WMI 提供程序和用户实例功能 4.4 联机丛书 4.5 获取 SQL Server Express 帮助 4.6 新闻组支持 4.7 提供有关 SQL Server Express 的反馈 5.0 数据库引擎 6.0 复制 [顶部] 1.0 简介 Microsoft SQL Server 2005 Express Edition (SQL Server Express) 是一个免费且易于使用的 SQL Server 2005 版本,它替换了 Microsoft Desktop Engine (MSDE)。与 Microsoft Visual Studio 2005 集成之后,SQL Server Express 可以轻松的开发功能强大且安全的数据驱动应用程序,并允许快速部署这些应用程序。SQL Server Express 可以根据协议重新进行发布,并可作为客户端数据库以及基本服务器数据库使用。SQL Server Express 是独立软件供应商 (ISV)、服务器用户、非专业开发人员、Web 应用程序开发人员、网站宿主以及客户端应用程序编程爱好者的理想之选。 未及时包括在本自述文件中的任何有关 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 有关使用 SQL Server Express 新闻组提供反馈的信息,请参阅 4.6 新闻组支持部分。 [顶部] 2.0 下载并安装 SQL Server Express 本节介绍有关安装 .NET Framework 2.0、SQL Server Express 以及可用于连接到 SQL Server Express 的工具的信息。 2.1 .NET Framework 2.0 在安装 SQL Server Express 之前,必须安装 .NET Framework 2.0。 SQL Server Express 依赖于特定 2.0 版本的 .NET Framework。如果您已安装了其他版本的 .NET Framework,则 SQL Server Express 安装可能会在运行时发生意外情况。您可以从此 Microsoft 网站下载 .NET Framework 2.0。 注意: .NET Framework 2.0 由 Microsoft Visual Studio 2005 和所有版本的 SQL Server 2005 自动安装。 [顶部] 2.2 SQL Server Express SQL Server Express 可从此 Microsoft 网站下载获得。 注意: 下载和提取产品时,请务必按照下载站点提供的说明进行操作。 安装 SQL Server Express 之后,请在命令提示符下使用以下命令连接到 SQL Server Express: sqlcmd -S Server\Instance 其中 Server 是计算机名称,Instance 是要连接到的实例名称。如果已在安装过程中使用了默认的命名实例,则将实例指定为“SQLExpress”。 [顶部] 2.3 管理 SQL Server Express 的工具 有关连接到 SQL Server Express 数据库并进行管理的信息,请参阅 Microsoft 知识库文章 907716。 [顶部] 2.4 访问安装文档 SQL Server Express 的安装要求文档中概述了硬件和软件要求。 [顶部] 2.5 SQL Server 2005 自述文件 SQL Server 2005 自述文件可以从此 Microsoft 网站在线获取。 注意: 未及时包括在本自述文件中的任何有关 SQL Server 2005 和 SQL Server Express 的信息都将发布到 Microsoft 知识库文章 907284 中。 [顶部] 3.0 安装问题 本部分详细介绍此版本中的安装问题。 3.1 现有的 SQL 本机客户端安装可能导致安装失败 安装可能失败并回滚,同时显示以下错误消息:“找不到产品 Microsoft SQL 本机客户端的安装包。请使用安装包 sqlncli.msi 的有效副本重试安装。”若要解决此问题,请使用“添加或删除程序”卸载 SQL 本机客户端。对于群集,请从所有节点中卸载 SQL 本机客户端。然后,再次运行 SQL Server 安装程序。 [顶部] 3.2 系统配置检查器失败并显示“性能监视器计数器检查失败”消息 在开始安装 SQL Server 之前,系统配置检查器 (SCC) 会验证性能监视器计数器注册表项的值。如果 SCC 无法验证现有的注册表项,或者 SCC 无法运行 Lodctr.exe 系统程序,则 SCC 检查会失败,并且安装程序会被阻止。若要完成安装,您必须手动增加注册表项。 注意: 如果注册表编辑不当,则可能会导致严重的问题并可能需要您重新安装操作系统。Microsoft 不保证可以解决因注册表编辑不当而导致的问题。在编辑注册表之前,请备份所有重要数据。有关如何备份、恢复和编辑注册表的信息,请参阅 Microsoft 知识库文章 256986。 若要手动增加计数器注册表项,请执行下列操作: 在任务栏中,依次单击“开始”和“运行”,在“运行”文本框中键入 regedit.exe,再单击“确定”。 导航到以下注册表项:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]。查找下列项: "Last Counter"=dword:00000ed4 (5276) "Last Help"=dword:00000ed5 (5277) 验证值。上一步 (5276) 中的 Last Counter 值必须与以下注册表项内 Perflib\009 中 Counter 项的最大值相等,上一步 (5277) 中的 Last Help 值必须与以下注册表项内 Perflib\009 中 Help 项的最大值相等:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]。 注意: “009”是用于英语(美国)的项。 如有必要,请修改 \Perflib 项中 Last Counter 和 Last Help 的值。在右窗格中,右键单击 Last Counter 或 Last Help,选择“修改”,单击 Base = Decimal,在“值”数据字段中设置值,再单击“确定”。如有必要,请对其他项重复此操作,然后关闭注册表编辑器。 再次运行 SQL Server 2005 Express Edition 安装程序。 [顶部] 3.3 SQL Server Express 联机丛书中包含关于操作系统支持的错误信息。 SQL Server Express 联机丛书中的“硬件和软件要求 (SQL Server Express)”主题中没有提供操作系统的精确列表。SQL Server Express 支持下列操作系统。 Windows Server 2003 SP1 Windows Server 2003 Enterprise Edition SP1 Windows Server 2003 Datacenter Edition SP1 Windows Small Business Server 2003 Standard Edition SP1 Windows Small Business Server 2003 Premium Edition SP1 Windows XP Professional SP2 Windows XP Home Edition SP2 Windows XP Tablet Edition SP2 Windows XP Media Edition SP2 Windows 2000 Professional Edition SP4 Windows 2000 Server Edition SP4 Windows 2000 Advanced Edition SP4 Windows 2000 Datacenter Server Edition SP4 [顶部] 3.4 如果在 Windows Server 2003 中禁用了加密服务,则安装程序会失败并显示“Windows 徽标要求”对话框 Windows 加密服务提供程序 (CSP) 是执行身份验证、编码和加密服务的代码,基于 Windows 的应用程序通过 Windows Server 2003 中的 CryptoAPI 访问这些服务。如果停止或禁用 CSP 服务,则 SQL Server 安装程序会失败并显示“Windows 徽标要求”消息。 注意: 在 Windows Server 2003 故障转移群集中运行 SQL Server 安装程序之前,必须在所有群集节点上启动 CSP 服务。 若要在 Windows Server 2003 中启用 Windows CSP 服务,请执行下列操作: 在“控制面板”中,打开“管理工具”,再双击“服务”。 在“名称”列中,右键单击“加密服务”,再单击“启动”。 关闭“服务”。 运行安装程序。 [顶部] 3.5 未在 Windows 中完全启用 MSDTC 由于未在 Windows 中完全配置 Microsoft 分布式事务处理协调器 (MS DTC),因此,应用程序可能无法在分布式事务中登记 SQL Server Express 资源。此问题会影响使用分布式事务的链接服务器、分布式查询以及远程存储过程。为了避免出现此类问题,您必须在安装有 SQL Server Express 的服务器中完全启用 MS DTC 服务。 若要完全启用 MS DTC,请执行下列操作: 在“控制面板”中,打开“管理工具”,再双击“组件服务”。 在左窗格的“控制台根目录”中,单击“组件服务”,再展开“计算机”。 右键单击“我的电脑”,再单击“属性”。 在 MSDTC 选项卡中,单击“安全配置”。 在“安全设置”下,选中所有复选框。 验证是否已将“DTC 登录帐户”名称设置为 NT AUTHORITY\NetworkService。 [顶部] 3.6 默认情况下不安装示例数据库 默认情况下,不在 SQL Server Express 中安装示例数据库。Northwind 和 pubs 示例数据库可以从 Microsoft 网站进行下载。Adventureworks 示例数据库可从此 Microsoft 网站安装。 [顶部] 3.7“强制加密”配置可能会导致 SQL Server Express 安装程序失败 如果现有的 SQL Server 客户端安装配置为启用了“强制加密”选项,则安装程序可能会失败。若要解决此问题,请在所有 SQL Server 客户端上禁用此选项。对于 SQL Server 2000 中的 Microsoft 数据访问组件 (MDAC) 客户端,请使用 SQL Server 2000 客户端网络实用工具。对于 SQL 本机客户端,请使用“添加或删除程序”卸载 SQL 本机客户端。在群集中,请卸载所有节点中的 SQL 本机客户端。然后,再次运行 SQL Server 2005 安装程序。 [顶部] 3.8 sp_configure 的设置可能会导致安装程序在升级系统数据库时失败 如果在更早 Community Technology Preview (CTP) 版本的 SQL Server Express 中禁用了 sp_configure 选项“SMO 和 DMO XP”,则在使用 SAVESYSDB 卸载该早期实例,然后使用 USESYSDB 安装本版本时,将可能无法从命令提示符下进行安装。若要解决此问题,请确保在使用安装程序升级系统数据库之前,已启用上述选项。有关详细信息,请参阅此 Microsoft 网站上 SQL Server 联机丛书中的“设置服务器配置选项”。 [顶部] 3.9 安装 SQL Server 2000 的默认实例可能会禁用 SQL Server Express 如果您的计算机已安装 SQL Server 2000 管理工具和 SQL Server Express 的默认实例,则可以使用 SQL Server 安装程序安装 SQL Server 2000 的默认实例。但是,这样做会禁用已安装的 SQL Server Express 实例。因此,如果计算机上已安装 SQL Server 2000 管理工具和 SQL Server Express 的默认实例,则不要安装 SQL Server 2000 的默认实例。 [顶部] 3.10 在 Windows 域控制器中安装 SQL Server Express 安全说明: 我们不建议在域控制器中运行 SQL Server Express。 可以在 Windows 域控制器中安装 SQL Server Express;但是,SQL Server Express 无法在 Windows Server 2003 域控制器中像本地服务或网络服务那样运行。SQL Server 服务帐户应以 Windows 域用户帐户的身份运行。您也可安装 SQL Server 服务帐户以本地系统的身份运行,但是不建议使用此选项。 不要在安装完 SQL Server Express 之后更改服务器的角色。例如,如果您在成员服务器中安装了 SQL Server Express,则不要使用 Dcpromo 工具将该服务器提升为域控制器。或者,如果您在域控制器中安装了 SQL Server Express,则不要使用 Dcpromo 将该服务器降级为成员服务器。如果在安装完 SQL Server Express 之后更改服务器的角色,便会导致功能丢失,不支持这样做。 [顶部] 3.11 现有的 SQL 本机客户端安装可能导致安装失败 安装可能失败并回滚,同时显示以下错误消息:“找不到产品 Microsoft SQL 本机客户端的安装包。请使用安装包 sqlncli.msi 的有效副本重试安装。”若要解决此问题,请使用“添加或删除程序”卸载 SQL 本机客户端。对于群集,请从所有节点中卸载 SQL 本机客户端。然后,再次运行 SQL Server 安装程序。 [顶部] 3.12 卸载 SQL Server Express 和 Visual Studio 2005 的预发布版本 安装前,您必须删除 SQL Server Express、Visual Studio 2005 和 .NET Framework 2.0 的所有以前内部版本。由于这两个产品都依赖于相同版本的 .NET Framework,因此必须按照以下顺序卸载它们: SQL Server Express Visual Studio 2005 .NET Framework 2.0 [顶部] 3.13 维护模式下将提示输入 Setup.exe 的路径 如果在维护模式下安装新的 SQL Server 2005 组件,系统将提示您指定 SQL Server 2005 安装媒体中 Setup.exe 文件的位置。指定该文件位置时,路径中一定要包含“Setup.exe”。例如,路径“D:\”将失败,而“D:\Setup.exe”将成功。 [顶部] 3.14 Setup 命令 Shell 脚本的故障排除失败 路径变量中包含括号时,Setup 命令 shell 脚本可以生成 Windows 脚本错误。出现该错误的原因是命令 shell 脚本不支持路径变量中包含的括号。在将 32 位组件安装到 64 位计算机的 Windows (WOW64) 32 位子系统中的 Windows 时可能会出现该错误。例如,下列路径值为“C:\Program Files (x86)\”的脚本将生成一个错误,因为 shell 脚本解释器会将扩展的 PATH 变量中的括号错误地解释为 IF/ELSE 语句的一部分: IF "%SOME_PATH%" == "" ( SET PATH=%PATH%;%PATH_A% ) ELSE ( SET PATH=%PATH%;%PATH_B% ) 若要解决此问题,请更改该脚本以删除括号。例如: IF "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_A% IF NOT "%SOME_PATH%" == "" set PATH=%PATH%;%PATH_B% 或者从路径中删除包含括号的 SQL 项。 [顶部] 4.0 其他信息 4.1 服务帐户和网络协议 在 SQL Server Express 中,本地系统帐户即为网络服务帐户。 SQL Server Express 可侦听本地命名管道和共享内存。执行默认安装时,无法远程连接到 SQL Server Express。您需要启用 TCP/IP 并检查是否已启用防火墙。 若要启用 TCP/IP,请执行下列操作: 在“开始”菜单中,选择“所有程序”,依次指向 Microsoft SQL Server 2005 和“配置工具”,再单击“SQL Server 配置管理器”。 或者,您可以通过右键单击“我的电脑”并选择“管理”来打开计算机管理器。在“计算机管理”中,依次展开“服务和应用程序”和“SQL Server 配置管理器”。 展开“SQL Server 2005 网络配置”,再单击“InstanceName 的协议”。 在协议列表中,右键单击要启用的协议,再单击“启用”。 协议的图标将更改为显示该协议已启用。 若要启用防火墙,请执行下列操作: 依次单击“开始”和“控制面板”,再单击“网络连接”。 在左侧的导航栏中,单击“更改 Windows 防火墙的设置”。 在“异常”选项卡的“程序和服务”框中,您可能看到已列出 SQL Server,但未将其选择为异常。如果您选中该复选框,则 Windows 将打开端口 1433 以允许 TCP 请求进入。或者,如果您未看到列出 SQL Server,则请执行下列操作: 单击“添加程序”。 单击“浏览”。 导航到 drive:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BINN 将文件 sqlservr.exe 添加到异常列表中。 [顶部] 4.2 用户实例功能 SQL Server Express 允许非管理员用户在没有 DBCreator 特权的情况下也能复制或移动数据库(使用 Xcopy 部署)。有关详细信息,请参阅此 Microsoft 网站上的 SQL Server Express 联机丛书中的“非管理员用户实例”。 [顶部] 4.3 WMI 提供程序和用户实例功能 动态生成的用户实例中不支持 WMI Provider for Server Events。此程序仍运行于父 SQL Server Express 实例中。 [顶部] 4.4 联机丛书 SQL Server Express 联机丛书可从此 Microsoft 网站下载获得。 注意: 由于 SQL Server Express 是 SQL Server 2005 的一个受限版本,因此,SQL Server Express 联机丛书中的文档很大程度上依赖于 SQL Server 2005 联机丛书中的内容。 SQL Server 2005 联机丛书可从此 Microsoft 网站下载获得。 Microsoft 定期发布 SQL Server Express 联机丛书和 SQL Server 2005 联机丛书的可下载更新。我们建议您安装这些更新以及时更新该文档的本地副本中相应的信息。 [顶部] 4.5 获取 SQL Server Express 帮助 Microsoft 通过以下四个主要信息来源提供有关 SQL Server Express 的信息: SQL Server Express 文档和示例 SQL Server 2005 文档 Microsoft Developer Network (MSDN) 和 TechNet 上的 SQL Server 站点 其他 Microsoft 网站上的 SQL Server 信息 您也可以通过 SQL Server 社区从其他人或直接从 Microsoft 支持人员处获取帮助。有关详细信息,请参阅 SQL Server Express 联机丛书中的“获取 SQL Server Express 帮助”。 [顶部] 4.6 新闻组支持 有关新闻组支持的信息,请从此 Microsoft 网站访问 SQL Server Express 新闻组。请不要使用其他 Microsoft 新闻组张贴有关 SQL Server Express 的问题。 可在 SQL Server Express 网站日志中找到来自 SQL Server Express 小组的最新信息。 注意: 仅支持英语版的新闻组。 [顶部] 4.7 提供有关 SQL Server Express 的反馈 可通过下列方式提供有关 SQL Server Express 的建议和错误报告: 在此 Microsoft 网站发送有关 SQL Server Express 的功能和用户界面的建议和错误报告。 使用 SQL Server Express 联机丛书中的反馈功能发送有关文档的建议以及报告其中不正确的内容。 选择自动将错误报告和功能使用情况数据发送给 Microsoft 进行分析。 有关详细信息,请参阅 SQL Server 联机丛书中的“提供有关 SQL Server 2005 的反馈”。 [顶部] 5.0 数据库引擎 本部分说明 SQL Server 2005 数据库引擎和数据库引擎特定的命令提示实用工具的最新项,这些最新项也应用于 SQL Server Express。 [顶部] 5.1 在 Windows Server 2003 SP1 中运行时连接可能会被强行关闭 如果 TCP/IP 网络处于打开状态,则指向 Windows Server 2003 Service Pack 1 中运行的 SQL Server Express 数据库引擎实例的客户端连接可能会失败,并出现以下错误:“提供程序号: 7,错误: 10054,错误消息:‘TCP 提供程序: 现有连接被远程主机强行关闭’”。 如果要通过大量客户端连接尝试来测试可伸缩性,则可能会出现此错误。若要解决此问题,请使用 regedit.exe 实用工具将名为 SynAttackProtect 的新 DWORD 值添加到注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\(值数据为 00000000)中。 安全说明: 设置此注册表项可能会使服务器受到 SYN Flood 拒绝服务攻击。测试完成时,请删除该注册表值。 注意: 如果注册表编辑不当,可能会导致严重问题并可能需要重新安装操作系统。Microsoft 不保证可以解决因注册表编辑不当而导致的问题。在编辑注册表之前,请备份所有重要数据。有关如何备份、恢复和编辑注册表的信息,请参阅 Microsoft 知识库文章 256986。 [顶部] 5.2 安全的 Service Broker 对话需要数据库主密钥 SQL Server 2005 联机丛书错误地说明了当跨数据库使用对话安全设置进行会话时,SQL Server 会创建通过数据库主密钥加密的会话密钥。实际上,对于所有使用对话安全设置进行的会话而言,会话密钥均通过数据库主密钥进行加密。如果数据库主密钥不可用,则在创建数据库主密钥或会话超时之前,会话的消息将一直保留在 transmission_queue 中并出现错误。您可以使用 ENCRYPTION = OFF 参数创建未加密的对话,也可以使用以下命令创建数据库主密钥: CREATE MASTER KEY ENCRYPTION BY PASSWORD = '' [顶部] 5.3 公共语言运行时用户定义类型应只有一个序列化 每个字节顺序的用户定义类型 (UDT) 对象的实例只能有一种序列化表示形式。如果序列化或反序列化例程识别出某个特定对象具有多种表示形式,则可能会在下列情况下出现错误: 在验证通过 RPC 传递的字节顺序的 UDT 期间,UDT 验证执行 UDT 的反序列化/重新序列化,并要求生成的字节与原始字节完全相同。如果验证失败,则会出现错误:“System.Data.SqlClient.SqlException,传入的 TDS RPC 协议流不正确。参数 1 (""):提供的值不是数据类型 的有效实例。请检查源数据中的无效值。” 在 DBCC 期间,字节顺序的 UDT 列中存储的字节数必须等于计算的 UDT 值序列化。如果不相等,则 DBCC CHECKTABLE 例程将会报告一致性错误。 [顶部] 5.4 尚未通过设置启用网络连接 为了提高安全性,SQL Server Express 针对某些新安装禁用了网络连接。如果您使用的是 SQL Server Enterprise Edition、Standard Edition 或 Workgroup Edition,或计算机上已经安装有 SQL Server,则不会禁用使用 TCP/IP 协议的网络连接。除非计算机上已经安装有 SQL Server,否则 Named Pipes 连接仅适用于本地连接。对于所有安装,都会启用 Shared Memory 协议,以允许服务器的本地连接。根据具体的安装条件和安装选项,可能会停止 SQL Browser 服务。 [顶部] 5.5 包含用户定义类型的程序集注意事项 下列限制适用于包含用户定义类型的公共语言运行时 (CLR) 程序集。 公共语言运行时用户定义类型只能有一个序列化 字节顺序的用户定义类型对象的各个实例只能有一种序列化表示形式。如果序列化或反序列化例程检测到某个特定对象具有多种表示形式,则在以下情况下可能会显示错误: 在验证通过 RPC 传递的字节顺序的用户定义类型的过程中,用户定义类型验证过程会对该用户定义类型执行反序列化/重新序列化,并要求生成的字节与原始字节完全相同。如果验证失败,您将看到以下错误:“System.Data.SqlClient.SqlException,传入的 TDS RPC 协议流不正确。参数 1 (""): 提供的值不是数据类型 的有效实例。请检查源数据中的无效值。” 在 DBCC CHECKTABLE 过程中,在字节顺序的用户定义类型列中存储的字节必须与计算出的 UDT 值的序列化表示形式相同。如果不相同,则 DBCC CHECKTABLE 例程将报告一个一致性错误。 有关更新有用户定义类型类的程序集的已更新的限制 可以按下列方式使用 ALTER ASSEMBLY 更新 CLR 用户定义类型: 修改用户定义类型类的公共方法,但不更改签名或属性。 添加新的公共方法。 以任何方式修改私有方法。 使用 ALTER ASSEMBLY 不能更改本机序列化的用户定义类型中包含的字段,包括数据成员和基类。不支持所有其他更改。 [顶部] 5.6 SQL Server 不保证更新程序集时的数据一致性 如未指定 WITH UNCHECKED DATA,则在新的程序集版本对表、索引或其他持久站点中的现有数据产生影响时,SQL Server 将会阻止执行 ALTER ASSEMBLY。更新公共语言运行时 (CLR) 程序集时,SQL Server 并不保证计算列、索引、索引视图或表达式与基础例程和类型保持一致。执行 ALTER ASSEMBLY 时需谨慎操作,以确保在表达式结果和基于存储在程序集中的该表达式的值之间没有不匹配。 [顶部] 5.7 卷影复制服务的快照自动恢复功能的注意事项 卷影复制服务 (VSS) 的快照自动恢复功能具有下列限制。 多个持续自动恢复的快照 在 Windows Server 2003 Service Pack 1 (SP1) 和更高版本中,您只能创建单个持续自动恢复的快照。若要创建其他快照,您必须首先应用知识库文章 891957 中所述的更新。 注意: 如果尚未应用此更新,则可以通过以下方式创建新的持续自动恢复的快照:首先删除现有的持续自动恢复的快照,然后创建一个新的持续自动恢复的快照。 自动恢复的快照和全文目录 快照自动恢复功能不支持全文目录。创建自动恢复的快照之后,在该快照中,数据库中的所有全文目录都将处于脱机状态。在从快照中附加数据库时,全文目录会永久保持脱机状态。但附加的数据库中的其他所有数据均可用。 在从自动恢复的快照中直接附加包含全文目录的数据库时,附加操作将返回以下错误消息: Server: Msg 7608, Level 17, State 1, Line 1 An unknown full-text failure (0xc000000d) occurred during "Mounting a full-text catalog". 如果不需要直接从快照中附加数据库,则可以通过如下方式来避免此问题:先将快照中的数据库文件和全文目录复制到基于驱动器号的常规卷中,然后从该位置附加数据库。只要附加命令指定了所复制的全文文件的正确位置,即可正常使用这些全文目录。 [顶部] 5.8 注册公共语言运行时程序集的限制 SQL Server 不允许使用相同的名称、区域性和公钥注册程序集的不同版本。如果计划保留九月份 CTP 版本之前的 SQL Server Express 版本中的数据库,则在安装该版本之前,必须删除具有多个注册的程序集的所有其他实例,只保留一个实例。 [顶部] 5.9 创建 EXTERNAL_ACCESS 和 UNSAFE 程序集 若要在 SQL Server 中创建 EXTERNAL_ACCESS 或 UNSAFE 程序集或者要加载程序集,必须满足下列两个条件之一: 程序集经过强名称签名或使用证书进行了 authenticode 签名。此强名称(或证书)在 SQL Server 中作为非对称密钥(或证书)创建,并具有相应的登录名,该登录名具有 EXTERNAL ACCESS ASSEMBLY 权限(对于 EXTERNAL ACCESS 程序集)或 UNSAFE ASSEMBLY 权限(对于 UNSAFE 程序集)。 数据库所有者 (DBO) 具有 EXTERNAL ACCESS ASSEMBLY(对于 EXTERNAL ACCESS 程序集)或 UNSAFE ASSEMBLY(对于 UNSAFE 程序集)权限,并且该数据库的 TRUSTWORTHY 属性设置为 ON。 除了要在服务器进程中运行公共语言运行时 (CLR) 代码之外,建议始终将数据库的 TRUSTWORTHY 属性设置为 ON。并且建议通过 master 数据库中的程序集文件创建非对称密钥。然后,必须创建映射到此非对称密钥的登录名,并且为该登录名授予 EXTERNAL ACCESS ASSEMBLY 或 UNSAFE ASSEMBLY 权限。 下面的 Transact-SQL 语句将执行完成下列操作所需的步骤:创建非对称密钥,将一个登录名映射到此密钥,然后为该登录名授予 EXTERNAL_ACCESS ASSEMBLY 权限。必须在执行 CREATE ASSEMBLY 语句之前执行下面的 Transact-SQL 语句: USE master GO CREATE ASYMMETRIC KEY HelloWorldKey FROM EXECUTABLE FILE = 'C:\HelloWorld.dll' CREATE LOGIN HelloWorldLogin FROM ASYMMETRIC KEY HelloWorldKey GRANT EXTERNAL ACCESS ASSEMBLY TO HelloWorldLogin GO [顶部] 5.10 应用程序角色与元数据可见性限制以及动态管理视图的兼容性 在某个应用程序角色下运行的程序的行为可能会发生更改,因为在默认情况下,SQL Server Express 将限制 master 数据库元数据对于应用程序角色的可见性。作为临时解决方法,您可以启用跟踪标志 #4616。有关详细信息,请参阅知识库文章 906549。 [顶部] 5.11 未实现 SUPPLEMENTAL_LOGGING 数据库选项 在此版本的 SQL Server 中未实现 SUPPLEMENTAL_LOGGING 数据库选项。此选项可以设置,但不起任何作用。 [顶部] 5.12 sys.dm_clr_loaded_assemblies 显示无法加载的程序集 由于任何原因未能加载到服务器地址空间中的程序集仍将显示在 sys.dm_clr_loaded_assemblies 动态管理视图中。 [顶部] 5.13 XQuery 更改 联机丛书中未说明 SQL Server Express XQuery 实现的以下几个方面: 没有将 CDATA 部分生成的字符视为空格字符。例如,select cast(''as xml).query(' <![CDATA[ ]]> {"abc"}') 返回 abc。 支持构造空元素和空属性。 命名空间前缀 xmlns 用于标识命名空间声明属性,不能在 XQuery 表达式中重新声明。这是 XQuery 规范要求的行为。 将“for”与源表达式 () 一起使用会生成一个静态的错误。 在使用 xml 数据类型的 query() 方法构造的 XML 文档中,CDATA 部分中的回车符变为换行符。为了进行文本 XML 分析,使用换行符代替之前的回车符实体引用 ( )。 包含 local-name() 和 namespace-uri() 的 Transact-SQL 用户定义函数为确定性函数。 [顶部] 5.14 xsd:dateTime 转换的限制比所述限制更少 不包含日期和时间分隔符 T 或时区的 xs:dateTime 值的字符串表示可以在 value() 方法中转换为 SQL datetime 类型,如以下示例所示: declare @aaa xml set @aaa = '' select @aaa.value('(//AAA)[1]/@MyDate', 'datetime') [顶部] 5.15 XML 架构支持 SQL Server 2005 联机丛书中未说明 SQL Server 2005 对 XML 架构以下几个方面的支持: 可以将 Reporting Services (RDL) 的 XML 架构加载到 XML 架构集合中。 如果 xs:dateTime 和 xs:time 类型的值包含具有三个以上小数位数的副值,则这些值不会返回错误,而是会被进行舍入。 当基类型具有 fixed="true" 时,如果在派生类型中重新定义 maxInclusive,便会拒绝使用 XML 架构。 限制 xs:dateTime、xs:data 和 xs:time 等数据类型的派生类型将忽略 minInclusive、minExclusive、maxInclusive 和 maxExclusive 部分的尾随空格。 [顶部] 5.16 不应使用 RC4 加密 请勿使用 RC4 加密保护 SQL Server 2005 中的数据,而改为使用分组密码,如 AES 256 或 Triple DES。 [顶部] 6.0 复制 本部分介绍了有关复制的最新信息。 [顶部] 默认情况下禁用复制功能 Microsoft SQL Server 2005 Express Edition 可以用作所有复制类型的订阅服务器,但是默认情况下不会为此版本安装复制功能。 若要安装复制组件,请执行下列操作: 在“功能选择”页中,展开“数据库服务”。 单击“复制”,再单击“整个功能将被安装在本地硬盘上”。 若要安装连接组件和复制管理对象 (RMO),请执行下列操作: 在“功能选择”页中,单击“客户端组件”,再单击“整个功能将被安装在本地硬盘上”。 [顶部] © 2005 Microsoft Corporation。保留所有权利。

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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