﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-wizardjk</title><link>http://www.cppblog.com/wizardjk/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 08 Apr 2026 09:52:31 GMT</lastBuildDate><pubDate>Wed, 08 Apr 2026 09:52:31 GMT</pubDate><ttl>60</ttl><item><title>VS使用Web Services——添加应用</title><link>http://www.cppblog.com/wizardjk/archive/2012/08/04/186272.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Sat, 04 Aug 2012 09:38:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2012/08/04/186272.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/186272.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2012/08/04/186272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/186272.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/186272.html</trackback:ping><description><![CDATA[使用2008版本时需要注意的问题<br />1、需要在类库中添加，如有PL层和BLL层，在BLL层添加应用。<br />2、添加引用时，在类库上点击右键，添加服务引用（图一），点击高级（图二），点击添加Web引用（图三），<br /><div><img src="http://www.cppblog.com/images/cppblog_com/wizardjk/1.jpg" border="0" alt="" width="405" height="226" /><br />图一<br /><br /><img src="http://www.cppblog.com/images/cppblog_com/wizardjk/2.jpg" width="635" height="571" alt="" /><br />图 二<br /><br /><img src="http://www.cppblog.com/images/cppblog_com/wizardjk/3.jpg" width="653" height="676" alt="" /><br />图三<br /><span style="color: red; ">填写服务的发布地址（图四），点击前往，若出现函数名称，即说明该服务可用，然后修改web引用名为你想要的名称，点击添加引用即可&nbsp;</span><br /><img src="http://www.cppblog.com/images/cppblog_com/wizardjk/4.jpg" width="829" height="644" alt="" /><br />图四<br />3、该类库中即出现如图五所示的文件夹<br /><img src="http://www.cppblog.com/images/cppblog_com/wizardjk/5.jpg" width="218" height="124" alt="" /><br />图五 &nbsp;<br />图中所示文件中的类即可实例化为代理类，进行本地使用（这个SmsWebservice与图四中不一致是因为1-4是我后来弄的，没有改名。其实四五中的名字应该是一致的）</div><img src ="http://www.cppblog.com/wizardjk/aggbug/186272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2012-08-04 17:38 <a href="http://www.cppblog.com/wizardjk/archive/2012/08/04/186272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ie9 用fck上传图片 bug</title><link>http://www.cppblog.com/wizardjk/archive/2012/02/04/164938.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Sat, 04 Feb 2012 05:51:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2012/02/04/164938.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/164938.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2012/02/04/164938.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/164938.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/164938.html</trackback:ping><description><![CDATA[<div>当FCK使用ie9上传的时候，弹出层时不能显示内容<br /><br /><div><div>原因是 IE 9 不支持<span style="color: #0000ff;">var $=document.getElementById</span>;这样的写法了。<br />解决方法可以这么来做：<br /><br />打开这个文件， <span style="color: #0000ff;">fckeditor/editor/js/fckeditorcode_ie.js</span> ，找到第 <span style="color: #0000ff;">38</span>行的这个方法：<br /><br />FCKTools.RegisterDollarFunction<br />将原来的<br /><span style="color: #0000ff;">FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};</span><br />修改方法为：<br /><span style="color: #0000ff;">FCKTools.RegisterDollarFunction=function(A){A.$=function(v){return A.document.getElementById(v);}};</span></div></div></div><img src ="http://www.cppblog.com/wizardjk/aggbug/164938.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2012-02-04 13:51 <a href="http://www.cppblog.com/wizardjk/archive/2012/02/04/164938.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用母版页后内容页的命名问题</title><link>http://www.cppblog.com/wizardjk/archive/2012/01/09/163898.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Mon, 09 Jan 2012 13:20:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2012/01/09/163898.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/163898.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2012/01/09/163898.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/163898.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/163898.html</trackback:ping><description><![CDATA[使用母版页可以用来统一命名，但是如果需要按照内容页内容动态命名，可以使用如下方法：<br />1：在母版页的.cs文件中新建一public函数<br />&nbsp;eg.<br /><div>&nbsp;&nbsp;&nbsp; <span style="color: #0000ff;">public void SetName(string name)</span><br /><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp; {</span><br /><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Page.Header.Title = name;</span><br /><span style="color: #0000ff;">&nbsp;&nbsp;&nbsp; }<br /><br /><span></span></span><span style="color: #000000;">2:在内容页aspx文件中，在引用母版页语句后添加如下语句<br /><div>&lt;%@ Page Language="C#" MasterPageFile="~/Detail.master" AutoEventWireup="true" CodeFile="IntegralDetails.aspx.cs" Inherits="IntegralDetails"&nbsp; %&gt;<br /><span style="color: #0000ff;">&lt;%@ MasterType VirtualPath="~/Detail.master" %&gt;<br /><br /></span><span>3：在内容页.cs文件中使用如下语句对页面title进行赋值</span><span style="color: #0000ff;"><br /><div>(this.Master).SetName("动态改变的title");<br /><br /><span style="color: #000000;">4：如果在内容页的aspx文件中表明本页title，不进行动态赋值，也是可以的</span></div></span></div><br /></span><span style="color: #0000ff;"></span></div><img src ="http://www.cppblog.com/wizardjk/aggbug/163898.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2012-01-09 21:20 <a href="http://www.cppblog.com/wizardjk/archive/2012/01/09/163898.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Form认证</title><link>http://www.cppblog.com/wizardjk/archive/2011/12/05/161530.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Mon, 05 Dec 2011 13:44:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/12/05/161530.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/161530.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/12/05/161530.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/161530.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/161530.html</trackback:ping><description><![CDATA[<div><span style="font-family: Verdana;">ASP.NET 的安全认证，共有&#8220;Windows&#8221;&#8220;Form&#8221;&#8220;Passport&#8221;&#8220;None&#8221;四种验证模式。</span></div>一.部署运用Form认证<br /><div><span style="font-family: Verdana;">1：新建一个测试项目（暂且为&#8220;FormTest&#8221;吧），包含三张页面（Default.aspx、Login.aspx、UserInfo.aspx）<br />2：修改web.config<br /></span>&nbsp;&nbsp; 1).认证字段<div><span style="display: inline;" id="Code_Open_Text_014153"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authentication </span><span style="color: #ff0000;">mode</span><span style="color: #0000ff;">="Forms"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br /></span><span style="color: #0000ff;"></span></span>&nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014153"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">forms </span><span style="color: #ff0000;">loginUrl</span><span style="color: #0000ff;">="Login.aspx"</span><span style="color: #ff0000;"> name</span><span style="color: #0000ff;">=".ASPXAUTH"</span><span style="color: #0000ff;">&gt;<br /></span></span>&nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014153"><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">forms</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"> <br /></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authentication</span><span style="color: #0000ff;">&gt;</span> </span></div>&nbsp;&nbsp; 2).权限字段<br /><div><span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;<br /></span></span>&nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny </span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="?"</span><span style="color: #0000ff;">&gt;<br /></span></span>&nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">deny</span><span style="color: #0000ff;">&gt;<br />&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;<br /></span><span>写在&lt;system.web&gt;节下，如果想写在&lt;configuration</span><span style="color: #0000ff;">&gt;</span><span>节下方便管理需要如下格式<br />&lt;location path="(需要访问控制的文件夹或页面文件)"&gt;<br /></span></span>&nbsp;&nbsp; &lt;system.web&gt;&nbsp; &nbsp;&nbsp; <div>&nbsp;&nbsp; &nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;<br /> </span></span>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">deny </span><span style="color: #ff0000;">users</span><span style="color: #0000ff;">="?"</span><span style="color: #0000ff;">&gt;<br /> </span></span>&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">deny</span><span style="color: #0000ff;">&gt;<br /> </span></span>&nbsp;&nbsp; &nbsp;&nbsp; <span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">authorization</span><span style="color: #0000ff;">&gt;</span></span></div>&nbsp;&nbsp; &lt;/system.web&gt; <br /><span style="display: inline;" id="Code_Open_Text_014204"><span>&lt;/location&gt;<br />3.编写登陆和退出的.CS代码<br /><div>1).<span style="font-family: Verdana;">指验证后返回请求页面</span><br />&nbsp;&nbsp; private void Btn_Login_Click(object sender, System.EventArgs e)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; if(this.Txt_UserName.Text=="Admin" &amp;&amp; this.Txt_Password.Text=="123456")<br />&nbsp;&nbsp; &nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; System.Web.Security.FormsAuthentication.RedirectFromLoginPage(this.Txt_UserName.Text,false);<br />&nbsp;&nbsp; &nbsp;&nbsp; }<br />&nbsp;&nbsp; }&nbsp;</div>2).</span></span><span style="display: inline;" id="Code_Open_Text_014204"><span>通过验证后就直接发放 Cookie ，跳转页面将由程序员自行指定，此方法多用于 Default.aspx 使用框架结构的系统</span></span><span style="display: inline;" id="Code_Open_Text_014204"><span><div>&nbsp;&nbsp; private void Btn_Login_Click(object sender, System.EventArgs e)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; if(this.Txt_UserName.Text=="Admin" &amp;&amp; this.Txt_Password.Text=="123456")<br />&nbsp;&nbsp; &nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; System.Web.Security.FormsAuthentication.SetAuthCookie(this.Txt_UserName.Text,false);<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; Response.Redirect("Default.aspx");<br />&nbsp;&nbsp; &nbsp;&nbsp; }<br />&nbsp;&nbsp; }</div>3).使用用户凭证<br /></span><span style="color: #0000ff;"><div>&nbsp;<span>protected void Logon_Click(object sender, EventArgs e)</span><br /><span>&nbsp;&nbsp;&nbsp; {</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((UserEmail.Text == "admin" &amp;&amp; UserPass.Text == "123123") || </span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (UserEmail.Text == "user" &amp;&amp;　UserPass.Text == "123123")) //允许通过验证的用户，这部分可以使用数据库用户验证替代</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //初始化一个用户凭证的实例</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormsAuthenticationTicket myTicket;</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //根据不同的用户名分配不同的role(这部分可以通过数据库role读取来替代)</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (UserEmail.Text == "admin")</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myTicket = new FormsAuthenticationTicket(1, UserEmail.Text, DateTime.Now, DateTime.Now.AddMinutes(60),false, "admin");</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; myTicket = new FormsAuthenticationTicket(1, UserEmail.Text, DateTime.Now, DateTime.Now.AddMinutes(60), false, "user");</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string encryptedTicket = FormsAuthentication.Encrypt(myTicket); //加密用户凭证</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //把用户凭证存入Cookie </span>,<span style="display: inline;" id="Code_Open_Text_014204"><span style="color: #0000ff;">FormsAuthentication.FormsCookieName</span></span>参数位于config文件中Form认证的name属性<br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket); </span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加Cookie</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Cookies.Add(authCookie);</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //跳转默认重定向的默认 URL具体见Web.Config的配置</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Redirect(FormsAuthentication.GetRedirectUrl(UserEmail.Text, Persist.Checked));</span><br /><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Msg.Text = "用户名密码出错，请重试";</span><br /><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><br /><br /><span>&nbsp;&nbsp;&nbsp; }<br />&nbsp; 使用：<br /><div>&nbsp;Welcome.InnerHtml = "Hello, " + Server.HtmlEncode(User.Identity.Name); //输出用户名<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormsIdentity id = (FormsIdentity)User.Identity;&nbsp; //获取用户标识<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FormsAuthenticationTicket ticket = id.Ticket;</div><div>//显示用户凭证中的相关属性<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cookiePath.Text = ticket.CookiePath;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expireDate.Text = ticket.Expiration.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; expired.Text = ticket.Expired.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isPersistent.Text = ticket.IsPersistent.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; issueDate.Text = ticket.IssueDate.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; name.Text = ticket.Name;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; userData.Text = ticket.UserData;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; version.Text = ticket.Version.ToString();<br /><span style="color: #000000;">4).</span><span style="color: #000000;">退出<br /><div>&nbsp;&nbsp; private void Btn_LogOut_Click(object sender, System.EventArgs e)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; System.Web.Security.FormsAuthentication.SignOut();<br />&nbsp;&nbsp; }</div>4.如何判断用户是否已经登陆及获取用户信息</span><span style="color: #000000;"><div><div>&nbsp;&nbsp; if(User.Identity.IsAuthenticated)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp; //你已通过验证，<br />&nbsp;&nbsp; }</div></div><br /></span></div><br /></span></div><br /></span> </span></div></div><img src ="http://www.cppblog.com/wizardjk/aggbug/161530.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-12-05 21:44 <a href="http://www.cppblog.com/wizardjk/archive/2011/12/05/161530.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在什么情况下应该使用adLockOptimistic，</title><link>http://www.cppblog.com/wizardjk/archive/2011/12/02/154589.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Fri, 02 Dec 2011 12:32:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/12/02/154589.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/154589.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/12/02/154589.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/154589.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/154589.html</trackback:ping><description><![CDATA[<div><span id="articlecontent" style="width: 740px"><p>在什么情况下应该使用adLockOptimistic，什么情况下应该使用adLockPessimistic....</p> <p>在什么情况下应该使用adLockOptimistic，什么情况下应该使用adLockPessimistic,什么情况下用adOpenKeyset,什么情况下用adOpenDynamic- - <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  </p> <p>附带一个小资料： <br />----------------------------------- <br />常数 常数值 说明 <br />----------------------------------- <br />adOpenForwardOnly 0 缺省值，启动一个只能向前移动的游标（Forward Only）。 <br />adOpenKeyset 1 启动一个Keyset类型的游标。 <br />adOpenDynamic 2 启动一个Dynamic类型的游标。 <br />adOpenStatic 3 启动一个Static类型的游标。 <br />----------------------------------- <br />以上几个游标类型将直接影响到Recordset对象所有的属性和方法，以下列表说明他们之间的区别。 </p> <p>--------------------------------------------- <br />Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic <br />--------------------------------------------- <br />AbsolutePage 不支持 不支持 可读写 可读写 <br />AbsolutePosition 不支持 不支持 可读写 可读写 <br />ActiveConnection 可读写 可读写 可读写 可读写 <br />BOF 只读 只读 只读 只读 <br />Bookmark 不支持 不支持 可读写 可读写 <br />CacheSize 可读写 可读写 可读写 可读写 <br />CursorLocation 可读写 可读写 可读写 可读写 <br />CursorType 可读写 可读写 可读写 可读写 <br />EditMode 只读 只读 只读 只读 <br />EOF 只读 只读 只读 只读 <br />Filter 可读写 可读写 可读写 可读写 <br />LockType 可读写 可读写 可读写 可读写 <br />MarshalOptions 可读写 可读写 可读写 可读写 <br />MaxRecords 可读写 可读写 可读写 可读写 <br />PageCount 不支持 不支持 只读 只读 <br />PageSize 可读写 可读写 可读写 可读写 <br />RecordCount 不支持 不支持 只读 只读 <br />Source 可读写 可读写 可读写 可读写 <br />State 只读 只读 只读 只读 <br />Status 只读 只读 只读 只读 <br />AddNew 支持 支持 支持 支持 <br />CancelBatch 支持 支持 支持 支持 <br />CancelUpdate 支持 支持 支持 支持 <br />Clone 不支持 不支持 <br />Close 支持 支持 支持 支持 <br />Delete 支持 支持 支持 支持 <br />GetRows 支持 支持 支持 支持 <br />Move 不支持 支持 支持 支持 <br />MoveFirst 支持 支持 支持 支持 <br />MoveLast 不支持 支持 支持 支持 <br />MoveNext 支持 支持 支持 支持 <br />MovePrevious 不支持 支持 支持 支持 <br />NextRecordset 支持 支持 支持 支持 <br />Open 支持 支持 支持 支持 <br />Requery 支持 支持 支持 支持 <br />Resync 不支持 不支持 支持 支持 <br />Supports 支持 支持 支持 支持 <br />Update 支持 支持 支持 支持 <br />UpdateBatch 支持 支持 支持 支持 <br />---------------------------------------- <br />其中NextRecordset方法并不适用于Microsoft Access数据库。 </p> <p>LockType <br />Recordset对象Open方法的LockType参数表示要采用的Lock类型，如果忽略这个参数，那么系统会以 Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、 adLockOptimistic及adLockBatchOptimistic等，分述如下： </p> <p>----------------------------------- <br />常数 常数值 说明 <br />----------------------------------- <br />adLockReadOnly 1 缺省值，Recordset对象以只读方式启动，无法运行AddNew、Update及Delete等方法 <br />adLockPrssimistic 2 当数据源正在更新时，系统会暂时锁住其他用户的动作，以保持数据一致性。 <br />adLockOptimistic 3 当数据源正在更新时，系统并不会锁住其他用户的动作，其他用户可以对数据进行增、删、改的操作。 <br />adLockBatchOptimistic 4 当数据源正在更新时，其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。 </p> <p>=====定义数据库连接的一些常量 <br />&lt;% <br />Const adOpenForwardOnly = 0 '游标只向前浏览记录，不支持分页、Recordset、BookMark <br />Const adOpenKeyset = 1 '键集游标，其他用户对记录说做的修改将反映到记录集中，但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark <br />Const adOpenDynamic = 2 '动态游标功能最强，但耗资源也最多。用户对记录说做的修改，增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。 <br />Const adOpenStatic = 3 '静态游标，只是数据的一个快照，用户对记录说做的修改，增加或删除记录都不会反映到记录集中。支持向前或向后移动 </p> <p>Const adLockReadOnly = 1 '锁定类型，默认的，只读，不能作任何修改 <br />Const adLockPessimistic = 2 '当编辑时立即锁定记录，最安全的方式 <br />Const adLockOptimistic = 3 '只有在调用Update方法时才锁定记录集，而在此前的其他操作仍可对当前记录进行更改、插入和删除等 <br />Const adLockBatchOptimistic = 4 '当编辑时记录不会被锁定，而更改、插入和删除是在批处理方式下完成的 </p> <p>Const adCmdText = &amp;H0001 <br />Const adCmdTable = &amp;H0002 <br />%&gt; </p> <p>--------------------------------------------------------------- </p> <p>ADO Recordset的CursorLocation = AdUseClient时，只有AdOpenStatic/AdOpenForwardOnly <br />的CursorType会有作用，其他的二者和AdOpenStatic有相同的效果，即无论如何设，CursorType都是adOpenStatic。 </p> <p>如果是AdUseServer，在SQL Server中上述的四种CursorType都可以用，但是RecordSet中的Resync方法只有 <br />在adOpenKeyset的CursorType才能用，AdOpenStatic不能使用。</p></span></div><img src ="http://www.cppblog.com/wizardjk/aggbug/154589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-12-02 20:32 <a href="http://www.cppblog.com/wizardjk/archive/2011/12/02/154589.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web/Services学习笔记1</title><link>http://www.cppblog.com/wizardjk/archive/2011/12/02/158495.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Fri, 02 Dec 2011 12:31:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/12/02/158495.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/158495.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/12/02/158495.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/158495.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/158495.html</trackback:ping><description><![CDATA[<div><h2>1.应当具备的基础知识</h2> <p>在继续学习之前，需要对下面的知识有基本的了解：</p> <ul><li>HTML</li><li>XML</li></ul></div><div><div> <h2>2.什么是Web Services？</h2> <ul><li>Web Services 是应用程序组件</li><li>Web Services 使用开放协议进行通信</li><li>Web Services 是独立的（self-contained）并可自我描述</li><li>Web Services 可通过使用<a href="http://baike.baidu.com/view/160665.htm">UDDI</a>来发现</li><li>Web Services 可被其他应用程序使用</li><li>XML 是 Web Services 的基础</li></ul> </div></div><div><div> <h2>3.它如何工作？</h2> <p>&nbsp;&nbsp; 基础的 Web Services 平台是 XML + HTTP。</p> <p>&nbsp;&nbsp; HTTP 协议是最常用的因特网协议。</p> <p>&nbsp;&nbsp; XML 提供了一种可用于不同的平台和编程语言之间的语言。</p>  <h3>&nbsp;&nbsp; Web services 平台的元素：</h3> <ul><li>SOAP (简易对象访问协议)</li><li>UDDI (通用描述、发现及整合)</li><li>WSDL (Web services 描述语言)</li></ul> <p>&nbsp;</p><div><h2>4.Web services 的未来</h2></div><div><p>&nbsp;&nbsp; 请不要过早地期待太多！</p> <p>&nbsp;&nbsp; Web services 平台是简单的可共同操作的消息收发框架。它仍然缺少许多诸如安全和路由等重要的特性。但是，一旦 SOAP 变得更加高级，这些事项就会得到解决。</p> <p>&nbsp;&nbsp; Web services 有望使应用程序更加容易通信。</p></div><div><div> <h2>5.最重要的事情是协同工作</h2> <p>&nbsp;&nbsp; 由于所有主要的平台均可通过 Web 浏览器来访问 Web，不同的平台可以借此进行交互。为了让这些平台协同工作，Web 应用程序被开发了出来。</p> <p>&nbsp;&nbsp; Web 应用程序是运行在 Web 上的简易应用程序。它们围绕 Web 浏览器标准被进行构建，几乎可被任何平台之上的任何浏览器来使用。</p> </div></div>&nbsp;&nbsp; <div><p>&nbsp;&nbsp; 通过使用 Web services，您的应用程序可向全世界发布功能或消息。</p> <p>&nbsp;&nbsp; Web services 使用 XML 来编解码数据，并使用 <a href="http://baike.baidu.com/view/1114894.htm">SOAP </a>借由开放的协议来传输数据。</p> <p>&nbsp;&nbsp; 通过 Web services，您的会计部门的 Win 2k 服务器可与 IT 供应商的 UNIX 服务器进行连接。</p></div><div><div> <h2>6.Web services 有两种类型的应用</h2>  <h3>&nbsp;&nbsp; 可重复使用的应用程序组件</h3> <p>&nbsp;&nbsp; 有一些功能是不同的应用程序常常会用到的。那么为什么要周而复始地开发它们呢？</p> <p>&nbsp;&nbsp; Web services 可以把应用程序组件作为服务来提供，比如汇率转换、天气预报或者甚至是语言翻译等等。</p> <p>&nbsp;&nbsp; 比较理想的情况是，每种应用程序组件只有一个最优秀的版本，这样任何人都可以在其应用程序中使用它。</p>  <h3>&nbsp;&nbsp; 连接现有的软件</h3> <p>&nbsp;&nbsp; 通过为不同的应用程序提供一种链接其数据的途径，Web services有助于解决协同工作的问题。</p> <p>&nbsp;&nbsp; 通过使用 Web services，您可以在不同的应用程序与平台之间来交换数据。</p> </div></div><br /><p>&nbsp;</p> </div></div><img src ="http://www.cppblog.com/wizardjk/aggbug/158495.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-12-02 20:31 <a href="http://www.cppblog.com/wizardjk/archive/2011/12/02/158495.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ssss</title><link>http://www.cppblog.com/wizardjk/archive/2011/12/02/155452.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Fri, 02 Dec 2011 12:29:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/12/02/155452.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/155452.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/12/02/155452.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/155452.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/155452.html</trackback:ping><description><![CDATA[<div></div><div><h1><a id="Header1_HeaderTitle" href="../../converse/">那谁的技术博客</a></h1> 			感兴趣领域:高性能服务器编程,存储,算法,Linux内核<br /><div>http://www.cppblog.com/converse/</div><br /> 		</div><img src ="http://www.cppblog.com/wizardjk/aggbug/155452.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-12-02 20:29 <a href="http://www.cppblog.com/wizardjk/archive/2011/12/02/155452.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web/Services学习笔记3</title><link>http://www.cppblog.com/wizardjk/archive/2011/10/27/159239.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Thu, 27 Oct 2011 14:00:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/10/27/159239.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/159239.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/10/27/159239.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/159239.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/159239.html</trackback:ping><description><![CDATA[WCF挂载到IIS上，若WCF中数据库访问为windows身份验证，需要<br />1：启用目录浏览<br />2：选择应用程序池.NET版本4.0<br />3：更改应用程序池中.NET4.0的标识，将本机可访问数据库的用户名、密码加上 <img src ="http://www.cppblog.com/wizardjk/aggbug/159239.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-10-27 22:00 <a href="http://www.cppblog.com/wizardjk/archive/2011/10/27/159239.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web/Services学习笔记2</title><link>http://www.cppblog.com/wizardjk/archive/2011/10/17/158560.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Mon, 17 Oct 2011 09:15:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/10/17/158560.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/158560.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/10/17/158560.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/158560.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/158560.html</trackback:ping><description><![CDATA[<div><h1>Web Services 平台元素</h1>    <div id="intro"> <p><strong>Web Services 拥有三种基本的元素。</strong></p> <p><strong>它们是：SOAP、WSDL 以及 UDDI。</strong></p> </div></div><div><div> <h2>1.什么是 SOAP？</h2> <p>基本的 Web services 平台是 XML + HTTP。</p> <ul><li>SOAP 指简易对象访问协议</li><li>SOAP 是一种通信协议</li><li>SOAP 用于应用程序之间的通信</li><li>SOAP 是一种用于发送消息的格式</li><li>SOAP 被设计用来通过因特网进行通信</li><li>SOAP 独立于平台</li><li>SOAP 独立于语言</li><li>SOAP 基于 XML</li><li>SOAP 很简单并可扩展</li><li>SOAP 允许您绕过防火墙</li><li>SOAP 将作为 W3C 标准来发展</li></ul> <p>《<a href="http://www.w3school.com.cn/soap/index.asp" title="SOAP教程">SOAP 教程</a>》</p> </div>  <div> <h2>2.什么是 WSDL?</h2> <p>WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。</p> <ul><li>WSDL 指网络服务描述语言</li><li>WSDL 使用 XML 编写</li><li>WSDL 是一种 XML 文档</li><li>WSDL 用于描述网络服务</li><li>WSDL 也可用于定位网络服务</li><li>WSDL 还不是 W3C 标准</li></ul> <p>《<a href="http://www.w3school.com.cn/wsdl/index.asp" title="WSDL 教程">WSDL 教程</a>》</p> </div>  <div> <h2>3.什么是UDDI？</h2> <p>UDDI 是一种目录服务，通过它，企业可注册并搜索 Web services。</p> <ul><li>UDDI 指通用的描述、发现以及整合（Universal Description, Discovery and Integration）。</li><li>UDDI 是一种用于存储有关 web services 的信息的目录。</li><li>UDDI 是一种由 WSDL 描述的网络服务接口目录。</li><li>UDDI 经由 SOAP 进行通迅。</li><li>UDDI 被构建于 Microsoft .NET 平台之中。</li></ul> </div></div><img src ="http://www.cppblog.com/wizardjk/aggbug/158560.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-10-17 17:15 <a href="http://www.cppblog.com/wizardjk/archive/2011/10/17/158560.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux命令练习</title><link>http://www.cppblog.com/wizardjk/archive/2011/08/21/154005.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Sun, 21 Aug 2011 03:05:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/08/21/154005.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/154005.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/08/21/154005.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/154005.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/154005.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一：将一个用户添加到sudoers中1：使用root账号，使用visudo命令，键入/root找到root账号的那一行形如root&nbsp;&nbsp;&nbsp; ALL=(ALL)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ALL，将你想要的用户名如wizard按root的那种格式在下面写上wizard ALL=（ALL） ALL ，然后：wq保存即可解释：第一...&nbsp;&nbsp;<a href='http://www.cppblog.com/wizardjk/archive/2011/08/21/154005.html'>阅读全文</a><img src ="http://www.cppblog.com/wizardjk/aggbug/154005.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-08-21 11:05 <a href="http://www.cppblog.com/wizardjk/archive/2011/08/21/154005.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>