sqlclr(四)用户定义类型udt

sqlclr(四)用户定义类型udt

ID:22437445

大小:65.50 KB

页数:7页

时间:2018-10-29

sqlclr(四)用户定义类型udt_第1页
sqlclr(四)用户定义类型udt_第2页
sqlclr(四)用户定义类型udt_第3页
sqlclr(四)用户定义类型udt_第4页
sqlclr(四)用户定义类型udt_第5页
资源描述:

《sqlclr(四)用户定义类型udt》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、SQLCLR(四)用户定义类型UDT>>教育资源库  本文示例源代码或素材下载  用户自定义类型是SQLServer2005的新特性。和前几篇文章介绍的SQLCLR相比,UDT相对有此复杂。UDT也有许多限制和必须遵守UDT规范。UDT的二进制不能超过8000个字节,必须包含一个null值表示,因为SQLServer的数据类型是允许null值的。  UDT可以是结构或类。如果是类的话需加[StructLayout(LayoutKind.Sequential)]  标签(属性),这是保证序列化时不改变属性的次序。  现在看一段代码usingSystem;usingSys

2、tem.IO;usingSystem.Data;usingSystem.Data.SqlClient;usingSystem.Data.SqlTypes;usingMicrosoft.SqlServer.Server;[Serializable][Microsoft.SqlServer.Server.SqlUserDefinedType(Format.UserDefined,MaxByteSize=1024)]publicstructPerson:INullable,IBinarySerialize{   publicoverridestringToString() 

3、  {       //用您的代码替换下列代码       returnFormatU();   }   publicboolIsNull   {       get       {           //在此处放置代码           returnm_Null;       }   }   publicstaticPersonNull   {       get       {           Personh=ne_Null=true;           returnh;       }   }   publicstaticPersonParse(Sql

4、Strings)   {       if(s.IsNull)           returnNull;       Personu=nee=parts[0];       u.age=ParseAge(parts[1]);       u.sex=parts[2];       returnu;   }   //这是占位符方法   publicstringFormatU()   {       //在此处插入方法代码       returnstring.Format(名称:{0},年龄:{1},性别:{2},name,age,sex);   }   //这是占位

5、符静态方法   publicstaticintParseAge(stringstr)   {       //在此处插入方法代码       returnint.Parse(str.Substring(0,str.LastIndexOf(岁)));   }   //这是占位符字段成员   privateintage;   publicintAge   {       get{returnage;}       set{age=value;}   }   privatestringname;   publicstringName   {       get{return

6、name;}       set{name=value;}   }   privatestringsex;   publicstringSex   {       get{returnsex;}       set{sex=value;}   }   //私有成员   privateboolm_Null;   publicbyte[]b;   publicvoidRead(BinaryReaderr)   {       name=r.ReadString();       sex=r.ReadString();       age=r.ReadInt32();   

7、    m_Null=r.ReadBoolean();   }   publicvoidWrite(BinaryWriterw12下一页>>>>这篇文章来自..,。)   {       e);       _Null);   }}  部署后在SQLServer2005中执行下面的语句createtableUdtTest(Idintnotnull,pPersonnotnull)insertintoUdtTestvalues(1,'David,24岁,男')selectid,convert(nvarchar(25),p)fromUdtT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。