﻿<?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>博客园-zitsing's blog</title><link>http://www.cnblogs.com/zitsing/</link><description>Web开发</description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 06:57:46 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 06:57:46 GMT</pubDate><ttl>60</ttl><item><title>如何追上一个女生的秘密</title><link>http://www.cnblogs.com/zitsing/archive/2008/08/26/1276425.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Tue, 26 Aug 2008 02:06:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/08/26/1276425.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1276425.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/08/26/1276425.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1276425.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1276425.html</trackback:ping><description><![CDATA[<font face="Verdana">1、任何一个女孩子在被人追的时候，心理都是很复杂的，有着欲拒还迎的矛盾心理。（知己知彼）<br />
2、不要怕你的主动会带来她的反感，你不主动，她也不主动，也就慢慢淡下来了。（主动出击）<br />
3、不要在乎别人对自己的看法。（避免外界干扰）<br />
4、开始付出的辛苦将得到加倍的爱——值。（确定价有所值）<br />
5、只要是你对她有好感，就是真心喜欢她。（怀疑自己是否真的喜欢她，不能确定，也就放弃了。）（确定自己信念）</font>
<img src ="http://www.cnblogs.com/zitsing/aggbug/1276425.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41937/" target="_blank">[新闻]Google拟在9月发布自有浏览器 或采用火狐内核</a>]]></description></item><item><title>MySql恶心人的事</title><link>http://www.cnblogs.com/zitsing/archive/2008/08/22/1274116.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Fri, 22 Aug 2008 07:17:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/08/22/1274116.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1274116.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/08/22/1274116.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1274116.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1274116.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>我使用mysql 自带的一个mysql.exe工具建立用户并制定表。</p>
<p>代码如下：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_153234" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_153234').style.display='none'; document.getElementById('Code_Open_Image_153234').style.display='inline'; document.getElementById('Code_Open_Text_153234').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_153234" style="display: none" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_153234').style.display='none'; getElementById('Code_Closed_Image_153234').style.display='inline'; getElementById('Code_Closed_Text_153234').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span class="cnblogs_code_Collapse" id="Code_Closed_Text_153234">Code</span><span id="Code_Open_Text_153234" style="display: none"><br />
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">、</span><span style="color: #0000ff">GRANT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">ALL</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PRIVILEGES</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;web.</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TO</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">tsingsuser</span><span style="color: #ff0000">'</span><span style="color: #000000">@</span><span style="color: #ff0000">'</span><span style="color: #ff0000">%</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;IDENTIFIED&nbsp;</span><span style="color: #0000ff">BY</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">aeonsoft</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">WITH</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">GRANT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">OPTION</span><span style="color: #000000">;<br />
<br />
</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">、</span><span style="color: #0000ff">GRANT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">ALL</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PRIVILEGES</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;web_bbs.</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TO</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">tsingsuser</span><span style="color: #ff0000">'</span><span style="color: #000000">@</span><span style="color: #ff0000">'</span><span style="color: #ff0000">%</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;IDENTIFIED&nbsp;</span><span style="color: #0000ff">BY</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">aeonsoft</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">WITH</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">GRANT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">OPTION</span><span style="color: #000000">;<br />
</span></span></div>
<p>&nbsp;</p>
<p>//1和2不同时存在，只是放在tsingData.sql文本里，他们的不同之处就是库名不一样。</p>
<p>在shell中的命令如下：</p>
<p>mysql.exe -u root -p123456 tsingData &lt; tsingData.sql</p>
<p>&nbsp;</p>
<p>结果：</p>
<p>1给web库创建了tsinguser用户</p>
<p>2创建了tisnguser用户，但没指定web_info库。（他谁都没指定）</p>
<p>&nbsp;</p>
<p>结论：mysql数据库名不能带下划线。如果带了通过以上命令不能给库创建用户。</p>
<p>&nbsp;</p>
<p>mysql恶心之处：</p>
<p>1、网上资料少。( 至少中文的很少)</p>
<p>2、这个问题网上只有一个人出现，但也没人解决。（用mysql高手少，即使多也都不热情）</p>
<p>3、mysql文档中既然明确指出库名，表明支持下划线"_"和美元符"$"（美元符支持不支持我没试，但下划线支持的太变态，还不如不支持呢！！）</p>
<p>&nbsp;</p>
<p>还有一个cnblogs恶心的地方，我辛辛苦苦写了以篇文章发表以后只有开头几行，我都<img src="http://www.cnblogs.com/Emoticons/qface/055243801.gif"  alt="" />死了。</p>
<p>不信你可以把1代码copy到你bolgs里试试！！</p>
<img src ="http://www.cnblogs.com/zitsing/aggbug/1274116.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41936/" target="_blank">[新闻]微软正在构思将Wi-Fi带入汽车</a>]]></description></item><item><title>求助MySql 备份与还原问题！</title><link>http://www.cnblogs.com/zitsing/archive/2008/08/15/1268760.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Fri, 15 Aug 2008 07:53:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/08/15/1268760.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1268760.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/08/15/1268760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1268760.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1268760.html</trackback:ping><description><![CDATA[<p>我在网上查了资料，下面2两句就是备份与还原</p>
<p>mysqldump.exe -h 152.152.152.32 -u root -p123456 tsingtest &gt; C:\123.sql 数据库导出</p>
<p>mysqldump.exe -h 152.152.152.32 -u root -p123456 tsingtest &lt; C:\123.sql数据库导入</p>
<p>&nbsp;</p>
<p>可是数据库备份可以，但还原不可以！！不知道为什么？？</p>
<p>请帮帮看看，哪里出错了！谢谢</p>
<p>还有今天是不是中邪了！！！cmd 妈的都给我过不去，连一个目录都进步去了！！！！</p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/zitsing/aggbug/1268760.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41935/" target="_blank">[新闻]对比测试：IE8 Beta 2 VS Firefox 3.0.1</a>]]></description></item><item><title>数据库性能优化注意事项</title><link>http://www.cnblogs.com/zitsing/archive/2008/08/11/1265179.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Mon, 11 Aug 2008 06:13:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/08/11/1265179.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1265179.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/08/11/1265179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1265179.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1265179.html</trackback:ping><description><![CDATA[<p>数据库系统是管理信息系统的核心，基于数据库的联机事务处理（OLTP）以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。从大多数系统的应用实例来看，查询操作在各种数据库操作中所占据的比重最大，而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句。举例来说，如果数据的量积累到一定的程度，比如一个银行的账户数据库表信息积累到上百万甚至上千万条记录，全表扫描一次往往需要数十分钟，甚至数小时。如果采用比全表扫描更好的查询策略，往往可以使查询时间降为几分钟，由此可见查询优化技术的重要性。<br />
笔者在应用项目的实施中发现，许多程序员在利用一些前端数据库开发工具（如PowerBuilder、Delphi等）开发数据库应用程序时，只注重用户界面的华丽，并不重视查询语句的效率问题，导致所开发出来的应用系统效率低下，资源浪费严重。因此，如何设计高效合理的查询语句就显得非常重要。本文以应用实例为基础，结合数据库理论，介绍查询优化技术在现实系统中的运用。<br />
分析问题<br />
许多程序员认为查询优化是DBMS（数据库管理系统）的任务，与程序员所编写的SQL语句关系不大，这是错误的。一个好的查询计划往往可以使程序性能提高数十倍。查询计划是用户所提交的SQL语句的集合，查询规划是经过优化处理之后所产生的语句集合。DBMS处理查询计划的过程是这样的：在做完查询语句的词法、语法检查之后，将语句提交给DBMS的查询优化器，优化器做完代数优化和存取路径的优化之后，由预编译模块对语句进行处理并生成查询规划，然后在合适的时间提交给系统处理执行，最后将执行结果返回给用户。在实际的数据库产品(如Oracle、Sybase等)的高版本中都是采用基于代价的优化方法，这种优化能根据从系统字典表所得到的信息来估计不同的查询规划的代价，然后选择一个较优的规划。虽然现在的数据库产品在查询优化方面已经做得越来越好，但由用户提交的SQL语句是系统优化的基础，很难设想一个原本糟糕的查询计划经过系统的优化之后会变得高效，因此用户所写语句的优劣至关重要。系统所做查询优化我们暂不讨论，下面重点说明改善用户查询计划的解决方案。&nbsp; <br />
解决问题<br />
下面以关系数据库系统Informix为例，介绍改善用户查询计划的方法。<br />
1．合理使用索引<br />
索引是数据库中重要的数据结构，它的根本目的就是为了提高查询效率。现在大多数的数据库产品都采用IBM最先提出的ISAM索引结构。索引的使用要恰到好处，其使用原则如下：<br />
●在经常进行连接，但是没有指定为外键的列上建立索引，而不经常连接的字段则由优化器自动生成索引。<br />
●在频繁进行排序或分组（即进行group by或order by操作）的列上建立索引。<br />
●在条件表达式中经常用到的不同值较多的列上建立检索，在不同值少的列上不要建立索引。比如在雇员表的&#8220;性别&#8221;列上只有&#8220;男&#8221;与&#8220;女&#8221;两个不同值，因此就无必要建立索引。如果建立索引不但不会提高查询效率，反而会严重降低更新速度。<br />
●如果待排序的列有多个，可以在这些列上建立复合索引（compound index）。<br />
●使用系统工具。如Informix数据库有一个tbcheck工具，可以在可疑的索引上进行检查。在一些数据库服务器上，索引可能失效或者因为频繁操作而使得读取效率降低，如果一个使用索引的查询不明不白地慢下来，可以试着用tbcheck工具检查索引的完整性，必要时进行修复。另外，当数据库表更新大量数据后，删除并重建索引可以提高查询速度。<br />
2．避免或简化排序<br />
应当简化或避免对大型表进行重复的排序。当能够利用索引自动以适当的次序产生输出时，优化器就避免了排序的步骤。以下是一些影响因素：<br />
●索引中不包括一个或几个待排序的列；<br />
●group by或order by子句中列的次序与索引的次序不一样；<br />
●排序的列来自不同的表。<br />
为了避免不必要的排序，就要正确地增建索引，合理地合并数据库表（尽管有时可能影响表的规范化，但相对于效率的提高是值得的）。如果排序不可避免，那么应当试图简化它，如缩小排序的列的范围等。<br />
3．消除对大型表行数据的顺序存取<br />
在嵌套查询中，对表的顺序存取对查询效率可能产生致命的影响。比如采用顺序存取策略，一个嵌套3层的查询，如果每层都查询1000行，那么这个查询就要查询10亿行数据。避免这种情况的主要方法就是对连接的列进行索引。例如，两个表：学生表（学号、姓名、年龄&#8230;&#8230;）和选课表（学号、课程号、成绩）。如果两个表要做连接，就要在&#8220;学号&#8221;这个连接字段上建立索引。<br />
还可以使用并集来避免顺序存取。尽管在所有的检查列上都有索引，但某些形式的where子句强迫优化器使用顺序存取。下面的查询将强迫对orders表执行顺序操作：<br />
SELECT ＊ FROM orders WHERE (customer_num=104 AND order_num&gt;1001) OR order_num=1008<br />
虽然在customer_num和order_num上建有索引，但是在上面的语句中优化器还是使用顺序存取路径扫描整个表。因为这个语句要检索的是分离的行的集合，所以应该改为如下语句：<br />
SELECT ＊ FROM orders WHERE customer_num=104 AND order_num&gt;1001<br />
UNION<br />
SELECT ＊ FROM orders WHERE order_num=1008<br />
这样就能利用索引路径处理查询。<br />
4．避免相关子查询<br />
一个列的标签同时在主查询和where子句中的查询中出现，那么很可能当主查询中的列值改变之后，子查询必须重新查询一次。查询嵌套层次越多，效率越低，因此应当尽量避免子查询。如果子查询不可避免，那么要在子查询中过滤掉尽可能多的行。<br />
5．避免困难的正规表达式<br />
MATCHES和LIKE关键字支持通配符匹配，技术上叫正规表达式。但这种匹配特别耗费时间。例如：SELECT ＊ FROM customer WHERE zipcode LIKE &#8220;98_ _ _&#8221;<br />
即使在zipcode字段上建立了索引，在这种情况下也还是采用顺序扫描的方式。如果把语句改为SELECT ＊ FROM customer WHERE zipcode &gt;&#8220;98000&#8221;，在执行查询时就会利用索引来查询，显然会大大提高速度。<br />
另外，还要避免非开始的子串。例如语句：SELECT ＊ FROM customer WHERE zipcode[2，3] &gt;&#8220;80&#8221;，在where子句中采用了非开始子串，因而这个语句也不会使用索引。<br />
6．使用临时表加速查询<br />
把表的一个子集进行排序并创建临时表，有时能加速查询。它有助于避免多重排序操作，而且在其他方面还能简化优化器的工作。例如：<br />
SELECT cust.name，rcvbles.balance，&#8230;&#8230;other columns<br />
FROM cust，rcvbles<br />
WHERE cust.customer_id = rcvlbes.customer_id<br />
AND rcvblls.balance&gt;0<br />
AND cust.postcode&gt;&#8220;98000&#8221;<br />
ORDER BY cust.name<br />
如果这个查询要被执行多次而不止一次，可以把所有未付款的客户找出来放在一个临时文件中，并按客户的名字进行排序：<br />
SELECT cust.name，rcvbles.balance，&#8230;&#8230;other columns<br />
FROM cust，rcvbles<br />
WHERE cust.customer_id = rcvlbes.customer_id<br />
AND rcvblls.balance&gt;0<br />
ORDER BY cust.name<br />
INTO TEMP cust_with_balance<br />
然后以下面的方式在临时表中查询：<br />
SELECT ＊ FROM cust_with_balance<br />
WHERE postcode&gt;&#8220;98000&#8221;<br />
临时表中的行要比主表中的行少，而且物理顺序就是所要求的顺序，减少了磁盘I/O，所以查询工作量可以得到大幅减少。<br />
注意：临时表创建后不会反映主表的修改。在主表中数据频繁修改的情况下，注意不要丢失数据。<br />
7．用排序来取代非顺序存取<br />
非顺序磁盘存取是最慢的操作，表现在磁盘存取臂的来回移动。SQL语句隐藏了这一情况，使得我们在写应用程序时很容易写出要求存取大量非顺序页的查询。<br />
有些时候，用数据库的排序能力来替代非顺序的存取能改进查询。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
实例分析</p>
<p>下面我们举一个制造公司的例子来说明如何进行查询优化。制造公司数据库中包括3个表，模式如下所示：<br />
1．part表<br />
零件号零件描述其他列<br />
（part_num）（part_desc）（other column）<br />
102，032Seageat 30G disk&#8230;&#8230;<br />
500，049Novel 10M network card&#8230;&#8230;<br />
&#8230;&#8230;<br />
2．vendor表<br />
厂商号厂商名其他列<br />
（vendor _num）（vendor_name） （other column）<br />
910，257Seageat Corp&#8230;&#8230;<br />
523，045IBM Corp&#8230;&#8230;<br />
&#8230;&#8230;<br />
3．parven表<br />
零件号厂商号零件数量<br />
（part_num）（vendor_num）（part_amount）<br />
102，032910，2573,450,000<br />
234，423321，0014，000，000<br />
&#8230;&#8230;<br />
下面的查询将在这些表上定期运行，并产生关于所有零件数量的报表：<br />
SELECT part_desc，vendor_name，part_amount<br />
FROM part，vendor，parven<br />
WHERE part.part_num=parven.part_num<br />
AND parven.vendor_num = vendor.vendor_num<br />
ORDER BY part.part_num<br />
如果不建立索引，上述查询代码的开销将十分巨大。为此，我们在零件号和厂商号上建立索引。索引的建立避免了在嵌套中反复扫描。关于表与索引的统计信息如下：<br />
表行尺寸行数量每页行数量数据页数量<br />
（table）(row size)（Row count）（Rows/Pages）（Data Pages）<br />
part15010，00025400<br />
Vendor1501，000 2540<br />
Parven13 15，000300 50<br />
索引键尺寸每页键数量页面数量<br />
（Indexes）(Key Size)（Keys/Page)(Leaf Pages）<br />
part450020<br />
Vendor45002<br />
Parven825060<br />
看起来是个相对简单的3表连接，但是其查询开销是很大的。通过查看系统表可以看到，在part_num上和vendor_num上有簇索引，因此索引是按照物理顺序存放的。parven表没有特定的存放次序。这些表的大小说明从缓冲页中非顺序存取的成功率很小。此语句的优化查询规划是：首先从part中顺序读取400页，然后再对parven表非顺序存取1万次，每次2页（一个索引页、一个数据页），总计2万个磁盘页，最后对vendor表非顺序存取 1.5万次，合3万个磁盘页。可以看出在这个索引好的连接上花费的磁盘存取为5.04万次。<br />
实际上，我们可以通过使用临时表分3个步骤来提高查询效率：<br />
1．从parven表中按vendor_num的次序读数据：<br />
SELECT part_num，vendor_num，price<br />
FROM parven<br />
ORDER BY vendor_num<br />
INTO temp pv_by_vn<br />
这个语句顺序读parven（50页），写一个临时表（50页），并排序。假定排序的开销为200页，总共是300页。<br />
2．把临时表和vendor表连接，把结果输出到一个临时表，并按part_num排序：<br />
SELECT pv_by_vn，＊ vendor.vendor_num<br />
FROM pv_by_vn，vendor<br />
WHERE pv_by_vn.vendor_num=vendor.vendor_num<br />
ORDER BY pv_by_vn.part_num<br />
INTO TMP pvvn_by_pn<br />
DROP TABLE pv_by_vn<br />
这个查询读取pv_by_vn(50页)，它通过索引存取vendor表1.5万次，但由于按vendor_num次序排列，实际上只是通过索引顺序地读 vendor表（40＋2=42页），输出的表每页约95行，共160页。写并存取这些页引发5＊160=800次的读写，索引共读写892页。<br />
3．把输出和part连接得到最后的结果：<br />
SELECT pvvn_by_pn.＊，part.part_desc<br />
FROM pvvn_by_pn，part<br />
WHERE pvvn_by_pn.part_num=part.part_num<br />
DROP TABLE pvvn_by_pn<br />
这样，查询顺序地读pvvn_by_pn(160页)，通过索引读part表1.5万次，由于建有索引，所以实际上进行1772次磁盘读写，优化比例为 30∶1。笔者在Informix Dynamic Sever上做同样的实验，发现在时间耗费上的优化比例为5∶1(如果增加数据量，比例可能会更大)。</p>
<p>小结</p>
<p>20％的代码用去了80％的时间，这是程序设计中的一个著名定律，在数据库应用程序中也同样如此。我们的优化要抓住关键问题，对于数据库应用程序来说，重点在于SQL的执行效率。查询优化的重点环节是使得数据库服务器少从磁盘中读数据以及顺序读页而不是非顺序读页。 </p>
<img src ="http://www.cnblogs.com/zitsing/aggbug/1265179.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41934/" target="_blank">[新闻]iPhone存在严重密码安全漏洞</a>]]></description></item><item><title>delphi 带进程条的文件下载</title><link>http://www.cnblogs.com/zitsing/archive/2008/08/11/1265178.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Mon, 11 Aug 2008 06:11:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/08/11/1265178.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1265178.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/08/11/1265178.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1265178.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1265178.html</trackback:ping><description><![CDATA[<p>代码如下：</p>
<p>&nbsp;</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_141039" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_141039').style.display='none'; document.getElementById('Code_Open_Image_141039').style.display='inline'; document.getElementById('Code_Open_Text_141039').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_141039" style="display: none" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_141039').style.display='none'; getElementById('Code_Closed_Image_141039').style.display='inline'; getElementById('Code_Closed_Text_141039').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span class="cnblogs_code_Collapse" id="Code_Closed_Text_141039">Code</span><span id="Code_Open_Text_141039" style="display: none"><br />
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">uses&nbsp;URLMon,&nbsp;ShellApi<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;DownloadFile(SourceFile,&nbsp;DestFile:&nbsp;string):&nbsp;Boolean;<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;try<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;UrlDownloadToFile(</span><span style="color: #0000ff">nil</span><span style="color: #000000">,&nbsp;PChar(SourceFile),&nbsp;PChar(DestFile),&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">nil</span><span style="color: #000000">)&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;except<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;False;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">procedure</span><span style="color: #000000">&nbsp;TForm1.BitBtn1Click(Sender:&nbsp;TObject);<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;SourceFile:&nbsp;string;<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;DestFile:&nbsp;string;<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;SourceFile&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">http://dl.google.com/googletalk/googletalk-setup-zh-CN.exe</span><span style="color: #800000">'</span><span style="color: #000000">;<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;DestFile&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">D:\软件升级\googletalk-setup-zh-CN.exe</span><span style="color: #800000">'</span><span style="color: #000000">;<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;DownloadFile(SourceFile,&nbsp;DestFile)&nbsp;</span><span style="color: #0000ff">then</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(</span><span style="color: #800000">'</span><span style="color: #800000">&nbsp;Download&nbsp;succesful!&nbsp;</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ShellExecute(Application.Handle,&nbsp;PChar(</span><span style="color: #800000">'</span><span style="color: #800000">open</span><span style="color: #800000">'</span><span style="color: #000000">),&nbsp;PChar(DestFile),&nbsp;PChar(</span><span style="color: #800000">''</span><span style="color: #000000">),&nbsp;</span><span style="color: #0000ff">nil</span><span style="color: #000000">,&nbsp;SW_NORMAL)<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(</span><span style="color: #800000">'</span><span style="color: #800000">&nbsp;Error&nbsp;while&nbsp;downloading&nbsp;</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;SourceFile)<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP1:&nbsp;TIdHTTP;<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;IdAntiFreeze1:&nbsp;TIdAntiFreeze;<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ProgressBar1:&nbsp;TProgressBar;<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;BitBtn2:&nbsp;TBitBtn;<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">procedure</span><span style="color: #000000">&nbsp;TForm1.BitBtn2Click(Sender:&nbsp;TObject);<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">var</span><span style="color: #000000"><br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;MyStream:&nbsp;TMemoryStream;<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;IdAntiFreeze1.OnlyWhenIdle&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;False;&nbsp;</span><span style="color: #000000">//</span><span style="color: #000000">设置使程序有反应.<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;MyStream&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;TMemoryStream.Create;<br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;try<br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;IdHTTP1.Get(</span><span style="color: #800000">'</span><span style="color: #800000">http://dl.google.com/googletalk/googletalk-setup-zh-CN.exe</span><span style="color: #800000">'</span><span style="color: #000000">,&nbsp;MyStream);<br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;except<br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;ShowMessage(</span><span style="color: #800000">'</span><span style="color: #800000">没有下载成功!</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;MyStream.Free;<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Exit;<br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
</span><span style="color: #008080">44</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;MyStream.SaveToFile(ExtractFilePath(paramstr(</span><span style="color: #800080">0</span><span style="color: #000000">))&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">HTTPDemo.zip</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
</span><span style="color: #008080">45</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;MyStream.Free;<br />
</span><span style="color: #008080">46</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;ShowMessage(</span><span style="color: #800000">'</span><span style="color: #800000">OK</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
</span><span style="color: #008080">47</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">48</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
</span><span style="color: #008080">49</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">procedure</span><span style="color: #000000">&nbsp;TForm1.IdHTTP1WorkBegin(Sender:&nbsp;TObject;&nbsp;AWorkMode:&nbsp;TWorkMode;<br />
</span><span style="color: #008080">50</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;AWorkCountMax:&nbsp;Integer);<br />
</span><span style="color: #008080">51</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
</span><span style="color: #008080">52</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">//</span><span style="color: #000000">开始下载前,将ProgressBar1的最大值设置为需要接收的数据大小.<br />
</span><span style="color: #008080">53</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;ProgressBar1.Max&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;AWorkCountMax;<br />
</span><span style="color: #008080">54</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;ProgressBar1.Min&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;<br />
</span><span style="color: #008080">55</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;ProgressBar1.Position&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;<br />
</span><span style="color: #008080">56</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">;<br />
</span><span style="color: #008080">57</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
</span><span style="color: #008080">58</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">procedure</span><span style="color: #000000">&nbsp;TForm1.IdHTTP1Work(Sender:&nbsp;TObject;&nbsp;AWorkMode:&nbsp;TWorkMode;<br />
</span><span style="color: #008080">59</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">const</span><span style="color: #000000">&nbsp;AWorkCount:&nbsp;Integer);<br />
</span><span style="color: #008080">60</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
</span><span style="color: #008080">61</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">//</span><span style="color: #000000">接收数据的时候,进度将在ProgressBar1显示出来.<br />
</span><span style="color: #008080">62</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;ProgressBar1.Position&nbsp;:</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ProgressBar1.Position&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;AWorkCount;<br />
</span><span style="color: #008080">63</span><span style="color: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">;</span></span></div>
<img src ="http://www.cnblogs.com/zitsing/aggbug/1265178.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41934/" target="_blank">[新闻]iPhone存在严重密码安全漏洞</a>]]></description></item><item><title>字段建立索引性能分析数据</title><link>http://www.cnblogs.com/zitsing/archive/2008/08/01/1258230.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Fri, 01 Aug 2008 07:38:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/08/01/1258230.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1258230.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/08/01/1258230.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1258230.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1258230.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt">背景：</span></p>
<p><span style="font-size: 12pt">1、数据10万条</span></p>
<p><span style="font-size: 12pt">2、查询语句select count(*) as number from TBL_BAS_DRUGINFO where AUTHORNO='国药准字H11021781'</span></p>
<p><span style="font-size: 12pt">3、数据库是MySql 5.2</span></p>
<p><span style="font-size: 12pt">结果:</span></p>
<p><span style="font-size: 12pt">1、AUTHORNO字段没建索引，查询时间平均0.85s</span></p>
<p><span style="font-size: 12pt">2、AUTHORNO字段建索引，类型为Normal，查询时间平均2.3s</span></p>
<p><span style="font-size: 12pt">3、AUTHORNO字段建索引，类型为Unique，查询时间品均为0.04s</span></p>
<p>&nbsp;</p>
<p><span style="font-size: 12pt">以前只知道有差别，今天才知道，怎么差别就这么大呢！</span></p>
<p><span style="font-size: 12pt">从感性认识提升到了理性认识。</span></p>
<img src ="http://www.cnblogs.com/zitsing/aggbug/1258230.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41931/" target="_blank">[新闻]GC2008：星际争霸2进程报告 微调进程延续</a>]]></description></item><item><title>Delphi 链接MYSql乱码问题终极解决方案</title><link>http://www.cnblogs.com/zitsing/archive/2008/07/31/1257531.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Thu, 31 Jul 2008 10:29:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/07/31/1257531.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1257531.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/07/31/1257531.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1257531.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1257531.html</trackback:ping><description><![CDATA[<p>一句话，在链接字符串后加上charset=gb2312</p>
<p>例 "server = localhost; databasse = test; user id = root; password = 123; charset=gb2312"</p>
<p>&nbsp;</p>
<p>这可是我几个小时的成果啊！！！</p>
<img src ="http://www.cnblogs.com/zitsing/aggbug/1257531.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41930/" target="_blank">[新闻]科学家在世界最大对撞机中观察到首批粒子</a>]]></description></item><item><title>ASP.net快速使用AJAX教程</title><link>http://www.cnblogs.com/zitsing/archive/2008/07/30/1256515.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Wed, 30 Jul 2008 07:24:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/07/30/1256515.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1256515.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/07/30/1256515.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1256515.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1256515.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本教程实现的功能是一个dropdownlist1 值改变另一个dropdownlist2的内容随着dropdownlist1 改变而改变，这个改变的数据是从数据库调出来的。</p>
<p>1、首先下载ＡＪＡＸ类库<a href="http://files.cnblogs.com/zitsing/Ajax.rar">Ajax.dll</a></p>
<p>2、引用Ajax.all类库</p>
<p>3、在Web.config里配置Ajax</p>
<p>&nbsp;&nbsp; 在&lt;system.web&gt;<font face="Verdana">&lt;/system.web&gt;里加上这样一句话：</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&lt;httpHandlers&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory,Ajax"/&gt;<br />
&nbsp;&nbsp; &lt;/httpHandlers&gt;</font></p>
<p>3、在页面<font face="Verdana">Page_Load</font>（）时间里注册要使用ajax页面,如:</p>
<p><font face="Verdana">&nbsp;&nbsp;private void Page_Load(object sender, System.EventArgs e)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ajax.Utility.RegisterTypeForAjax(typeof(WebForm2));//WebForm2是这个页面的类名<br />
&nbsp;&nbsp;}</font></p>
<p>4、写在html页面里写javascript代码,如：</p>
<p><font face="Verdana">&nbsp;&nbsp;&lt;script language="javascript"&gt;<br />
&nbsp;&nbsp;function sWinNoResult()&nbsp;&nbsp;&nbsp;<span style="color: #0000ff">&nbsp; //这一个方法是html控件调用的，如：onchange="sWinNoResult();"<br />
</span>&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp; var swinno =document.getElementById("ddl_sWinNo");<br />
&nbsp;&nbsp;&nbsp;&nbsp; WebForm2.<span style="color: #ff00ff">GetDataSet</span>(swinno.value,<span style="color: #ff0000">get_city_Result_CallBack</span>);</font></p>
<p>//<span style="color: #ff00ff">GetDataSet</span>这个方法就是WebForm2.aspx.cs里的方法，如下：</p>
<p><font face="Verdana">[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]</font>这一句是必须的。</p>
<div class="cnblogs_code"><img id="Code_Closed_Image_153217" onclick="this.style.display='none'; Code_Closed_Text_153217.style.display='none'; Code_Open_Image_153217.style.display='inline'; Code_Open_Text_153217.style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_153217" style="display: none" onclick="this.style.display='none'; Code_Open_Text_153217.style.display='none'; Code_Closed_Image_153217.style.display='inline'; Code_Closed_Text_153217.style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span id="Code_Closed_Text_153217" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">Code</span><span id="Code_Open_Text_153217" style="display: none"><br />
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;DataSet&nbsp;&nbsp;GetDataSet(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;sWinNo)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;strsql1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">select&nbsp;AUTHORNO,AUTHORNAME&nbsp;from&nbsp;TBL_SYS_AUTHORKIND&nbsp;where&nbsp;AUTHORNO=</span><span style="color: #800000">"</span><span style="color: #000000">+</span><span style="color: #000000">sWinNo;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;ds&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;DataSet();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myData.ExecuteDataset(CommandType.Text,strsql1,</span><span style="color: #0000ff">null</span><span style="color: #000000">,ds,</span><span style="color: #800000">"</span><span style="color: #800000">EG_BAS_SERVERITEM</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;ds;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<p>//<span style="color: #ff0000">get_city_Result_CallBack</span>这个就是返回数据后要调用的javascript的方法，如下：</p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;</font><font face="Verdana">&nbsp;&nbsp;}<br />
&nbsp;&nbsp;function <span style="color: #ff0000">get_city_Result_CallBack</span>(response)//response就是后台返回的值<br />
&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (response.value != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.all("ddl_sItemNo").length=0;　　　　&nbsp;&nbsp;&nbsp;<br />
　　　　&nbsp;&nbsp;&nbsp;var ds = response.value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var strtext="";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ds != null &amp;&amp; typeof(ds) == "object" &amp;&amp; ds.Tables != null)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.all("ddl_sItemNo").options.add(new Option("==请选择==",""));&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var i=0; i&lt;ds.Tables[0].Rows.length; i++)<br />
　　　　&nbsp;&nbsp;&nbsp;&nbsp;{<br />
　　　　&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var name=ds.Tables[0].Rows[i].AUTHORNAME;<br />
　　　　　　&nbsp;&nbsp;&nbsp;&nbsp;var id=ds.Tables[0].Rows[i].AUTHORNO;<br />
　　　　　　&nbsp;&nbsp;&nbsp;&nbsp;document.all("ddl_sItemNo").options.add(new Option(name,id));　　<br />
　　　　　&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;return<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&lt;/script&gt;</font></p>
<p>5、参考以上代码，自己慢慢练吧。<script language="javascript">
		function sWinNoResult()
		{
		   var swinno =document.getElementById("ddl_sWinNo");
		   WebForm2.GetDataSet(swinno.value,get_city_Result_CallBack);
		}
		function get_city_Result_CallBack(response)
			{
				if (response.value != null)
				{
    
					document.all("ddl_sItemNo").length=0;　　　　			
　　　　			var ds = response.value;
                    var strtext="";
					if(ds != null && typeof(ds) == "object" && ds.Tables != null)
					{	
					    document.all("ddl_sItemNo").options.add(new Option("==请选择==",""));				
						for(var i=0; i<ds.tables[0].rows.length; i++)
　　　　				{
　　　　					var name="ds.Tables[0].Rows[i].AUTHORNAME;
　　　　　　				var" id="ds.Tables[0].Rows[i].AUTHORNO;
　　　　　　				document.all("ddl_sItemNo").options.add(new" Option(name,id));　　
　　　　　				}
					}
				}				
				return
			}
		</SCRIPT><script language="javascript">
		function sWinNoResult()
		{
		   var swinno =document.getElementById("ddl_sWinNo");
		   WebForm2.GetDataSet(swinno.value,get_city_Result_CallBack);
		}
		function get_city_Result_CallBack(response)
			{
				if (response.value != null)
				{
    
					document.all("ddl_sItemNo").length=0;　　　　			
　　　　			var ds = response.value;
                    var strtext="";
					if(ds != null && typeof(ds) == "object" && ds.Tables != null)
					{	
					    document.all("ddl_sItemNo").options.add(new Option("==请选择==",""));				
						for(var i=0; i<ds.tables[0].rows.length; i++)
　　　　				{
　　　　					var name="ds.Tables[0].Rows[i].AUTHORNAME;
　　　　　　				var" id="ds.Tables[0].Rows[i].AUTHORNO;
　　　　　　				document.all("ddl_sItemNo").options.add(new" Option(name,id));　　
　　　　　				}
					}
				}				
				return
			}
		</SCRIPT><script language="javascript">
		function sWinNoResult()
		{
		   var swinno =document.getElementById("ddl_sWinNo");
		   WebForm2.GetDataSet(swinno.value,get_city_Result_CallBack);
		}
		function get_city_Result_CallBack(response)
			{
				if (response.value != null)
				{
    
					document.all("ddl_sItemNo").length=0;　　　　			
　　　　			var ds = response.value;
                    var strtext="";
					if(ds != null && typeof(ds) == "object" && ds.Tables != null)
					{	
					    document.all("ddl_sItemNo").options.add(new Option("==请选择==",""));				
						for(var i=0; i<ds.tables[0].rows.length; i++)
　　　　				{
　　　　					var name="ds.Tables[0].Rows[i].AUTHORNAME;
　　　　　　				var" id="ds.Tables[0].Rows[i].AUTHORNO;
　　　　　　				document.all("ddl_sItemNo").options.add(new" Option(name,id));　　
　　　　　				}
					}
				}				
				return
			}
		</SCRIPT></p>
<img src ="http://www.cnblogs.com/zitsing/aggbug/1256515.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41929/" target="_blank">[新闻]阿里巴巴利润增1.36倍</a>]]></description></item><item><title>经典sql语句</title><link>http://www.cnblogs.com/zitsing/archive/2008/07/25/1251174.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Fri, 25 Jul 2008 04:02:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/07/25/1251174.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1251174.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/07/25/1251174.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1251174.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1251174.html</trackback:ping><description><![CDATA[<p><span style="color: #ff0000"><span style="color: #ff0000"><span style="color: #ff0000"><span style="color: #ff0000">1、获取表结构，TBL_BAS_DRUGINFO为表明</span></span></span></span></p>
<p><font face="Verdana">SELECT CASE IsNull(I.name, '') <br />
When '' Then '' <br />
Else '*' <br />
End as IsPK, <br />
Object_Name(A.id) as t_name, <br />
A.name as c_name, <br />
IsNull(SubString(M.text, 1, 254), '') as pbc_init, <br />
T.name as F_DataType, <br />
CASE IsNull(TYPEPROPERTY(T.name, 'Scale'), '') <br />
WHEN '' Then Cast(A.prec as varchar) <br />
ELSE Cast(A.prec as varchar) + ',' + Cast(A.scale as varchar) <br />
END as F_Scale, <br />
A.isnullable as F_isNullAble <br />
FROM Syscolumns as A <br />
JOIN Systypes as T <br />
ON (A.xType = T.xUserType AND A.Id = Object_id('TBL_BAS_DRUGINFO') ) <br />
LEFT JOIN ( SysIndexes as I <br />
JOIN Syscolumns as A1 <br />
ON ( I.id = A1.id and A1.id = object_id('TBL_BAS_DRUGINFO') and (I.status &amp; 0x800) = 0x800 AND A1.colid &lt;= I.keycnt) ) <br />
ON ( A.id = I.id AND A.name = index_col('TBL_BAS_DRUGINFO', I.indid, A1.colid) ) <br />
LEFT JOIN SysComments as M <br />
ON ( M.id = A.cdefault and ObjectProperty(A.cdefault, 'IsConstraint') = 1 ) <br />
ORDER BY A.Colid ASC</font></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font color="red">提取数据库内所有表的字段详细说明的SQL语句 </font><br />
</p>
<p><font face="Verdana">SELECT <br />
(case when a.colorder=1 then d.name else '' end) N'表名', <br />
a.colorder N'字段序号', <br />
a.name N'字段名', <br />
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '&#8730;'else '' <br />
end) N'标识', <br />
(case when (SELECT count(*) <br />
FROM sysobjects <br />
WHERE (name in <br />
(SELECT name <br />
FROM sysindexes <br />
WHERE (id = a.id) AND (indid in <br />
(SELECT indid <br />
FROM sysindexkeys <br />
WHERE (id = a.id) AND (colid in <br />
(SELECT colid <br />
FROM syscolumns <br />
WHERE (id = a.id) AND (name = a.name))))))) AND <br />
(xtype = 'PK'))&gt;0 then '&#8730;' else '' end) N'主键', <br />
b.name N'类型', <br />
a.length N'占用字节数', <br />
COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度', <br />
isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数', <br />
(case when a.isnullable=1 then '&#8730;'else '' end) N'允许空', <br />
isnull(e.text,'') N'默认值', <br />
isnull(g.[value],'') AS N'字段说明' <br />
FROM syscolumns a <br />
left join systypes b <br />
on a.xtype=b.xusertype <br />
inner join sysobjects d <br />
on a.id=d.id and d.xtype='U' and d.name&lt;&gt;'dtproperties' <br />
left join syscomments e <br />
on a.cdefault=e.id <br />
left join sysproperties g <br />
on a.id=g.id AND a.colid = g.smallid <br />
order by object_name(a.id),a.colorder</font></p>
<img src ="http://www.cnblogs.com/zitsing/aggbug/1251174.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41928/" target="_blank">[新闻]Google Gears覆盖四大浏览器 Safari版推出</a>]]></description></item><item><title>PowerDesigner 12变态破解方法</title><link>http://www.cnblogs.com/zitsing/archive/2008/07/24/1250708.html</link><dc:creator>zitsing</dc:creator><author>zitsing</author><pubDate>Thu, 24 Jul 2008 08:46:00 GMT</pubDate><guid>http://www.cnblogs.com/zitsing/archive/2008/07/24/1250708.html</guid><wfw:comment>http://www.cnblogs.com/zitsing/comments/1250708.html</wfw:comment><comments>http://www.cnblogs.com/zitsing/archive/2008/07/24/1250708.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zitsing/comments/commentRss/1250708.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zitsing/services/trackbacks/1250708.html</trackback:ping><description><![CDATA[方法一：修改<br />
<fieldset><legend></legend>
<p style="text-indent: 2em;">1。先安装UltraEdit-32二进制编辑器。</p>
<p style="text-indent: 2em;">2。找到pdfilm12.dll文件.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  安装磁盘:"Sybase"PowerDesigner 12"pdflm12.dll&nbsp;。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 3。修改pdflm12.dll文件.使用UltraEdit-32打开此文件，查找：83 C4 14 8B  85 E4 FE FF FF将此字符串改为83 C4 14 33 C0 90 90 90 90。</p>
<p> </p>
</fieldset>
<p>&nbsp;</p>
<p>方法二：覆盖 <br />
</p>
<fieldset><legend>直接下载</legend>下载<a href="http://files.cnblogs.com/zitsing/PowerDesigner12%E7%9A%84%E7%A0%B4%E8%A7%A3%E6%96%87%E4%BB%B6.rar">pdflm12.dll</a>，覆盖即可，这次定能行.</fieldset><br />
<p>&nbsp;</p><img src ="http://www.cnblogs.com/zitsing/aggbug/1250708.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41927/" target="_blank">[新闻]Internet Explorer 8 Beta 2 发布</a>]]></description></item></channel></rss>