<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://feeds.qzone.qq.com/rss.xsl" version="1.0"?>
<rss version="2.0" xmlns:qz="http://qzone.qq.com">
<channel>
<title><![CDATA[踏雪无痕]]></title>
<description><![CDATA[空间]]></description>
<link>http://26579034.qzone.qq.com</link>
<lastBuildDate>Sat, 28 Nov 2009 10:27:16 GMT</lastBuildDate>
<generator>Qzone</generator>
<language>zh-cn</language>
<copyright>Copyright (C), 2005-2008, Tencent Tech. Co., Ltd.</copyright>
<pubDate>Tue, 20 Oct 2009 12:37:52 GMT</pubDate>

<item>
<title><![CDATA[pdf 合并与分割]]></title>
<link>http://26579034.qzone.qq.com/blog/1256042272</link>
<description><![CDATA[<br>mport java.io.FileOutputStream;   <br>import java.io.IOException;   <br>import java.util.ArrayList;   <br>  <br>import com.lowagie.text.Document;   <br>import com.lowagie.text.DocumentException;   <br>import com.lowagie.text.pdf.PdfCopy;   <br>import com.lowagie.text.pdf.PdfImportedPage;   <br>import com.lowagie.text.pdf.PdfReader;   <br>  <br>  <br>public class pdfOperate    <br>{   <br>    private static final int N = 3;   <br>       <br>    public static void main(String[] args)   <br>    {   <br>        String[] files = {&quot;C:\\a.pdf&quot;, &quot;C:\\b.pdf&quot;};   <br>        String savepath = &quot;C:\\temp.pdf&quot;;   <br>        mergePdfFiles(files, savepath);   <br>           <br>        partitionPdfFile(&quot;C:\\a.pdf&quot;);   <br>    }   <br>    public static void mergePdfFiles(String[] files, String savepath)   <br>    {   <br>        try    <br>        {   <br>            Document document = new Document(new PdfReader(files[0]).getPageSize(1));   <br>            PdfCopy copy = new PdfCopy(document, new FileOutputStream(savepath));   <br>            document.open();   <br>            for(int i=0; i&lt;files.length; i++)   <br>            {   <br>                PdfReader reader = new PdfReader(files<span style="font-style:italic"><wbr />);   <br>                int n = reader.getNumberOfPages();   <br>                for(int j=1; j&lt;=n; j++)   <br>                {   <br>                    document.newPage();    <br>                    PdfImportedPage page = copy.getImportedPage(reader, j);   <br>                    copy.addPage(page);   <br>                }   <br>            }   <br>            document.close();   <br>        } catch (IOException e) {   <br>            e.printStackTrace();   <br>        } catch(DocumentException e) {   <br>            e.printStackTrace();   <br>        }   <br>    }   <br>  <br>    public static void partitionPdfFile(String filepath)   <br>    {   <br>        Document document = null;   <br>        PdfCopy copy = null;   <br>           <br>        try    <br>        {   <br>            PdfReader reader = new PdfReader(filepath);   <br>               <br>            int n = reader.getNumberOfPages();   <br>               <br>            if(n &lt; N)   <br>            {   <br>                System.out.println(&quot;The document does not have &quot; + N + &quot; pages to partition !&quot;);   <br>                return;   <br>            }   <br>               <br>            int size = n/N;            <br>            String staticpath = filepath.substring(0, filepath.lastIndexOf(&quot;\\&quot;)+1);               <br>            String savepath = null;   <br>            ArrayList&lt;String&gt; savepaths = new ArrayList&lt;String&gt;();   <br>            for(int i=1; i&lt;=N; i++)   <br>            {   <br>                if(i &lt; 10)   <br>                {   <br>                    savepath = filepath.substring(filepath.lastIndexOf(&quot;\\&quot;)+1, filepath.length()-4);   <br>                    savepath = staticpath + savepath + &quot;0&quot; + i + &quot;.pdf&quot;;   <br>                    savepaths.add(savepath);                       <br>                }   <br>                else  <br>                {   <br>                    savepath = filepath.substring(filepath.lastIndexOf(&quot;\\&quot;)+1, filepath.length()-4);   <br>                    savepath = staticpath + savepath + i + &quot;.pdf&quot;;   <br>                    savepaths.add(savepath);   <br>                }   <br>            }              <br>               <br>            for(int i=0; i&lt;N-1; i++)   <br>            {   <br>                document = new Document(reader.getPageSize(1));   <br>                copy = new PdfCopy(document, new FileOutputStream(savepaths.get(i)));              <br>                document.open();   <br>                for(int j=size*i+1; j&lt;=size*(i+1); j++)   <br>                {   <br>                    document.newPage();    <br>                    PdfImportedPage page = copy.getImportedPage(reader, j);   <br>                    copy.addPage(page);   <br>                }   <br>                document.close();   <br>            }   <br>               <br>               <br>            document = new Document(reader.getPageSize(1));   <br>            copy = new PdfCopy(document, new FileOutputStream(savepaths.get(N-1)));   <br>            document.open();   <br>            for(int j=size*(N-1)+1; j&lt;=n; j++)   <br>            {   <br>                document.newPage();    <br>                PdfImportedPage page = copy.getImportedPage(reader, j);   <br>                copy.addPage(page);   <br>            }   <br>            document.close();   <br>  <br>        } catch (IOException e) {   <br>            e.printStackTrace();   <br>        } catch(DocumentException e) {   <br>            e.printStackTrace();   <br>        }   <br>    }   <br>} <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1256042272#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Tue, 20 Oct 2009 12:37:52 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1256042272</guid>
</item>

<item>
<title><![CDATA[zk]]></title>
<link>http://26579034.qzone.qq.com/blog/1255222380</link>
<description><![CDATA[使用Eclipse开发ZK的步骤，也是笔记一下，不过没有图就是了XD <br><br>1. 1. <br>安裝Java SDK 1.6.7安装Java SDK 1.6.7 <br>http://java.sun.com http://java.sun.com <br><br>2. 2. <br>安裝Tomcat 6.0.18安装Tomcat 6.0.18 <br>http://tomcat.apache.org/ http://tomcat.apache.org/ <br><br>3. 3. <br>安裝Eclipse 3.4 IDE for Java EE Developers安装Eclipse 3.4 IDE for Java EE Developers <br>http://www.eclipse.org/ http://www.eclipse.org/ <br><br>4. 4. <br>下載ZK 3.0.7下载ZK 3.0.7 <br>http://www.zkoss.org/download/zk.dsp http://www.zkoss.org/download/zk.dsp <br>zk-bin-3.0.7.zip zk-bin-3.0.7.zip <br><br>5. 5. <br>安裝ZK Studio到Eclipse安装ZK Studio到Eclipse <br>http://www.zkoss.org/download/zkstudio.dsp http://www.zkoss.org/download/zkstudio.dsp <br><br>6. 6. <br>設定ZK Settings Preference设定ZK Settings Preference <br>Windows -&gt; Preferences -&gt; ZK Settings -&gt; ZK Packages Windows -&gt; Preferences -&gt; ZK Settings -&gt; ZK Packages <br>Add File -&gt; zk-bin-3.0.7.zip Add File -&gt; zk-bin-3.0.7.zip <br><br>7. 7. <br>設定讀取zul檔设定读取zul档 <br>Windows -&gt; Preferences -&gt; General -&gt; Content Types -&gt; Text -&gt; XML Windows -&gt; Preferences -&gt; General -&gt; Content Types -&gt; Text -&gt; XML <br>Add -&gt; *.zul Add -&gt; *.zul <br><br>8. 8. <br>設定server设定server <br>Windows -&gt; Preferences -&gt; Server -&gt; Runtime Environments Windows -&gt; Preferences -&gt; Server -&gt; Runtime Environments <br>Add -&gt; Apache Tomcat v6.0 -&gt; Next -&gt; set directory Add -&gt; Apache Tomcat v6.0 -&gt; Next -&gt; set directory <br><br>9. 9. <br>設定Server View设定Server View <br>Windows -&gt; Show View -&gt; Other... -&gt; Server -&gt; Servers Windows -&gt; Show View -&gt; Other... -&gt; Server -&gt; Servers <br>Servers -&gt; New -&gt; Server -&gt; Apache Tomcat v6.0 Servers -&gt; New -&gt; Server -&gt; Apache Tomcat v6.0 <br><br>10. 10. <br>建立Dynamic Web Proect建立Dynamic Web Proect <br>File -&gt; New -&gt; Other... -&gt; Web -&gt; Dynamic Web Proect File -&gt; New -&gt; Other... -&gt; Web -&gt; Dynamic Web Proect <br>Configuration -&gt; Modify... -&gt; ZK Web Application -&gt; ZK Updata Manager Configuration -&gt; Modify... -&gt; ZK Web Application -&gt; ZK Updata Manager <br><br>11. 11. <br>建立helloworld.zul建立helloworld.zul <br>在剛建立好的Project下的目錄WebContent建立一個helloworld.zul檔案內容如下在刚建立好的Project下的目录WebContent建立一个helloworld.zul档案内容如下 <br><br> &lt;window title=&quot;My First window&quot; border=&quot;normal&quot; width=&quot;200px&quot;&gt; &lt;window title=&quot;My First window&quot; border=&quot;normal&quot; width=&quot;200px&quot;&gt; <br>   Hello, World!XD Hello, World!XD <br> &lt;/window&gt; &lt;/window&gt;<br>12. 12. <br>啟動Tomcat启动Tomcat <br>Run -&gt; Run As -&gt; Run on Server Run -&gt; Run As -&gt; Run on Server <br>Eclipse會開一個Browser顯示剛剛的結果 Eclipse会开一个Browser显示刚刚的结果 <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1255222380#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Sun, 11 Oct 2009 00:53:00 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1255222380</guid>
</item>

<item>
<title><![CDATA[java代码用于返回JSON或者XML数据(extJs)]]></title>
<link>http://26579034.qzone.qq.com/blog/1250300174</link>
<description><![CDATA[package com.hrm.util; <br>import java.util.ArrayList; <br>import java.util.List;import net.sf.json.JSONObject; <br>import com.thoughtworks.xstream.XStream; <br>import com.thoughtworks.xstream.io.xml.DomDriver; <br>/** <br>* Title: Ext JS 辅助类 <br>* Description: 该类用于转换java对象为XML文件格式或JSON文件格式 <br>* @author 葛昊 <br>* @time: 2009年2月5日11:10:54 <br>*/ <br>public class ExtHelper { <br>/** <br>* 通过List生成XML数据 <br>* @param recordTotal 记录总数，不一定与beanList中的记录数相等 <br>* @param beanList 包含bean对象的集合 <br>* @return 生成的XML数据 <br>*/ <br>@SuppressWarnings(&quot;unchecked&quot;) <br>public static String getXmlFromList(long recordTotal , List beanList) { <br>   Total total = new Total(); <br>   total.setResults(recordTotal); <br>   List results = new ArrayList(); <br>   results.add(total); <br>   results.addAll(beanList); <br>   XStream sm = new XStream(new DomDriver()); <br>   for (int i = 0; i &lt; results.size(); i++) { <br>    Class c = results.get(i).getClass(); <br>    String b = c.getName(); <br>    String[] temp = b.split(&quot;\\.&quot;); <br>    sm.alias(temp[temp.length - 1], c); <br>   } <br>   String xml = &quot;&lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;utf-8\&quot;?&gt;\n&quot; + sm.toXML(results); <br>   return xml; <br>} <br>/** <br>* 通过List生成XML数据 <br>* @param beanList 包含bean对象的集合 <br>* @return 生成的XML数据 <br>*/ <br>@SuppressWarnings(&quot;unchecked&quot;) <br>public static String getXmlFromList(List beanList){ <br>   return getXmlFromList(beanList.size(),beanList); <br>} <br>/** <br>* 通过List生成JSON数据 <br>* @param recordTotal 记录总数，不一定与beanList中的记录数相等 <br>* @param beanList 包含bean对象的集合 <br>* @return 生成的JSON数据 <br>*/ <br>@SuppressWarnings(&quot;unchecked&quot;) <br>public static String getJsonFromList(long recordTotal , List beanList){ <br>   TotalJson total = new TotalJson(); <br>   total.setResults(recordTotal); <br>   total.setItems(beanList); <br>   JSONObject JsonObject = JSONObject.fromObject(total); <br>   return JsonObject.toString(); <br>} <br>/** <br>* 通过List生成JSON数据 <br>* @param beanList 包含bean对象的集合 <br>* @return 生成的JSON数据 <br>*/ <br>@SuppressWarnings(&quot;unchecked&quot;) <br>public static String getJsonFromList(List beanList){ <br>   return getJsonFromList(beanList.size(),beanList); <br>} <br>/** <br>* 通过bean生成JSON数据 <br>* @param bean bean对象 <br>* @return 生成的JSON数据 <br>*/ <br>public static String getJsonFromBean(Object bean){ <br>   JSONObject JsonObject = JSONObject.fromObject(bean); <br>   return JsonObject.toString(); <br>} <br>}==================相关的类TotalJson.java========================== <br>package com.hrm.util; <br>import java.util.List; <br>@SuppressWarnings(&quot;unchecked&quot;) <br>public class TotalJson { <br>private long results; <br>private List items; <br>public List getItems() { <br>   return items; <br>}public void setItems(List items) { <br>   this.items = items; <br>}public long getResults() { <br>   return results; <br>}public void setResults(long results) { <br>   this.results = results; <br>} <br>}=========================Total.java======================= <br>package com.hrm.util; <br>public class Total { <br>private long results;public long getResults() { <br>   return results; <br>}public void setResults(long results) { <br>   this.results = results; <br>} <br>}======================相关jar============================== <br>json-lib-2.2.1-jdk15.jar <br>xstream-1.3.jar <br>commons的一些相关jar <br>例如 <br>commons-lang-2.3.jar <br>commons-logging-1.0.4.jar <br>commons-beanutils-1.6.jar <br>commons-collections-3.2.jar <br>ezmorph-1.0.4.jar <br>可以使用有相关功能的jar代替 <br>===============调用实例======================= <br>Struts1.x中Action里调用 <br>public ActionForward getAllDepartment(ActionMapping map, ActionForm form, <br>    HttpServletRequest request, HttpServletResponse response) throws Exception { <br>   BeanFactory bf=new ClassPathXmlApplicationContext(&quot;applicationContext-*.xml&quot;); <br>   DepartmentDao dptDao=(DepartmentDao)bf.getBean(&quot;dptManager&quot;); <br>   List&lt;Department&gt; dpts=dptDao.GetAllDpt(); <br>   String json=ExtHelper.getJsonFromList(dpts); <br>   response.setContentType(&quot;text/json;charset=utf-8&quot;); <br>   System.out.println(json); <br>   response.getWriter().write(json); <br>//   String xml=ExtHelper.getXmlFromList(dpts); <br>//   //System.out.println(xml); <br>//   response.setContentType(&quot;application/xml;charset=utf-8&quot;); <br>//   response.getWriter().write(xml); <br>   return null; <br>}注释部分为xml格式的返回 <br>====================Extjs的Store=================== <br>var _store = new Ext.data.JsonStore({ <br>   root:'items', <br>   autoLoad : true, <br>   fields:[ <br>    {name:'id',mapping:'id'}, <br>    {name:'dptNum',mapping:'dptNum'}, <br>    {name:'dptName',mapping:'dptName'}, <br>    {name:'dptMan',mapping:'dptMan'} <br>   ], <br>   proxy : new Ext.data.HttpProxy({ <br>    url : 'getAllDepartment.do?method=getAllDepartment' <br>   }) <br>}); <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1250300174#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Sat, 15 Aug 2009 01:36:14 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1250300174</guid>
</item>

<item>
<title><![CDATA[ie 6 7 firefox]]></title>
<link>http://26579034.qzone.qq.com/blog/1249457028</link>
<description><![CDATA[关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. <br>一、CSS HACK  <br>以下两种方法几乎能解决现今所有HACK.1, !important <br>随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.) <br>&lt;style&gt; <br>#wrapper <br>{ <br>width: 100px!important; /* IE7+FF */ <br>width: 80px; /* IE6 */ <br>} <br>&lt;/style&gt; <br>2, IE6/IE77对FireFox*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签. <br>&lt;style&gt; <br>#wrapper <br>{ <br>#wrapper { width: 120px; } /* FireFox */ <br>*html #wrapper { width: 80px;} /* ie6 fixed */ <br>*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */ <br>} <br>&lt;/style&gt; <br>注意: <br>*+html 对IE7的HACK 必须保证HTML顶部有如下声明： <br>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;　&quot;<a href="http://www.w3.org/TR/html4/loose.dtd" target="_blank"><span style="color:#336699;line-height:1.8em;">http://www.w3.org/TR/html4/loose.dtd</span><wbr /></a><wbr />&quot;&gt; <br>二、万能 float 闭合 <br>关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup] <br>将以下代码加入Global CSS 中,给需要闭合的div加上 class=&quot;clearfix&quot; 即可,屡试不爽. <br>&lt;style&gt; <br>/* Clear Fix */.clearfix:after <br>{ <br>content:&quot;.&quot;; <br>display:block; <br>height:0; <br>clear:both; <br>visibility:hidden; <br>} <br>.clearfix <br>{ <br>display:inline-block; <br>} <br>/* Hide from IE Mac */ <br>.clearfix {display:block;} <br>/* End hide from IE Mac */ <br>/* end of clearfix */ <br>&lt;/style&gt; <br>三、其他兼容技巧 <br>1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决) <br>2, 居中问题. <br>1).垂直居中.将 line-height 设置为 当前 div 相同的高度, 再通过 vertical-align: middle.( 注意内容不要换行.) <br>2).水平居中. margin: 0 auto;(当然不是万能) <br>3, 若需给 a 标签内内容加上 样式, 需要设置 display: block;(常见于导航标签) <br>4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下 margin加倍等问题. <br>5, ul 标签在 FF 下面默认有 list-style 和 padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表) <br>6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应. <br>7, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.1 针对firefox ie6 ie7的css样式 <br>现在大部分都是用!important来hack，对于ie6和firefox测试可以正常显示， <br>但是ie7对!important可以正确解释，会导致页面没按要求显示！找到一个针 <br>对IE7不错的hack方式就是使用“*+html”，现在用IE7浏览一下，应该没有问题了。 <br>现在写一个CSS可以这样：#1 { color: #333; } /* Moz */ <br>* html #1 { color: #666; } /* IE6 */ <br>*+html #1 { color: #999; } /* IE7 */ <br>那么在firefox下字体颜色显示为#333，IE6下字体颜色显示为#666，IE7下字体颜色显示为#999。2 css布局中的居中问题 <br>主要的样式定义如下：body {TEXT-ALIGN: center;} <br>#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; } <br>说明： <br>首先在父级元素定义TEXT-ALIGN: center;这个的意思就是在父级元素内的内容居中；对于IE这样设定就已经可以了。 <br>但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ” <br>需要说明的是，如果你想用这个方法使整个页面要居中，建议不要套在一个DIV里，你可以依次拆出多个div， <br>只要在每个拆出的div里定义MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。3 盒模型不同解释 <br>#box{ width:600px; //for ie6.0- w\idth:500px; //for ff+ie6.0} <br>#box{ width:600px!important //for ff width:600px; //for ff+ie6.0 width /**/:500px; //for ie6.0-}4 浮动ie产生的双倍距离 <br>#box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略} <br>这里细说一下block,inline两个元素,Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素);#box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的的效果 diplay:table; <br>IE不认得min-这个定义，但实际上它把正常的width和height当作有min的情况来使。这样问题就大了，如果只用宽度和高度， <br>正常的浏览器里这两个值就不会变，如果只用min-width和min-height的话，IE下面根本等于没有设置宽度和高度。 <br>比如要设置背景图片，这个宽度是比较重要的。要解决这个问题，可以这样： <br>#box{ width: 80px; height: 35px;}html&gt;body #box{ width: auto; height: auto; min-width: 80px; min-height: 35px;}6 页面的最小宽度 <br>min-width是个非常方便的CSS命令，它可以指定元素最小也不能小于某个宽度，这样就能保证排版一直正确。但IE不认得这个， <br>而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用，可以把一个&lt;div&gt; 放到 &lt;body&gt; 标签下，然后为div指定一个类： <br>然后CSS这样设计： <br>#container{ min-width: 600px; width:expression(document.body.clientWidth &lt; 600? &quot;600px&quot;: &quot;auto&quot; );} <br>第一个min-width是正常的；但第2行的width使用了Javascript，这只有IE才认得，这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。7 清除浮动 <br>.hackbox{ display:table; //将对象作为块元素级的表格显示}或者.hackbox{ clear:both;} <br>或者加入:after（伪对象）,设置在对象后发生的内容，通常和content配合使用，IE不支持此伪对象，非Ie 浏览器支持， <br>所 以并不影响到IE/WIN浏览器。这种的最麻烦的......#box:after{ content: &quot;.&quot;; display: block; height: 0; clear: both; visibility: hidden;}8 DIV浮动IE文本产生3象素的bug <br>左边对象浮动，右边采用外补丁的左边距来定位，右边对象内的文本会离左边有3px的间距. <br>#box{ float:left; width:800px;}#left{ float:left; width:50%;}#right{ width:50%;}*html #left{ margin-right:-3px; //这句是关键} <br>HTML代码&lt;div id=&quot;box&quot;&gt; &lt;div id=&quot;left&quot;&gt;&lt;/div&gt; &lt;div id=&quot;right&quot;&gt;&lt;/div&gt;&lt;/div&gt;9 属性选择器(这个不能算是兼容,是隐藏css的一个bug) <br>p[id]{}div[id]{} <br>这个对于IE6.0和IE6.0以下的版本都隐藏,FF和OPera作用 <br>属性选择器和子选择器还是有区别的,子选择器的范围从形式来说缩小了,属性选择器的范围比较大,如p[id]中,所有p标签中有id的都是同样式的.10 IE捉迷藏的问题 <br>当div应用复杂的时候每个栏中又有一些链接，DIV等这个时候容易发生捉迷藏的问题。 <br>有些内容显示不出来，当鼠标选择这个区域是发现内容确实在页面。 <br>解决办法：对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。11 高度不适应 <br>高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节，特别是当内层对象使用 <br>margin 或paddign 时。 <br>例： <br>&lt;div id=&quot;box&quot;&gt; <br>&lt;p&gt;p对象中的内容&lt;/p&gt; <br>&lt;/div&gt; <br>CSS：#box {background-color:#eee; } <br>#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; } <br>解决方法：在P对象上下各加2个空的div对象CSS代码：.1{height:0px;overflow:hidden;}或者为DIV加上border属性。六、CSS兼容要点分析IE vs FF  <br>CSS 兼容要点： <br>DOCTYPE 影响 CSS 处理 <br>FF: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行 <br>FF: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中 <br>FF: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width <br>FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式 <br>div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字，就垂直居中了。缺点是要控制内容不要换行 <br>cursor: pointer 可以同时在 IE FF 中显示游标手指状， hand 仅 IE 可以 <br>FF: 链接加边框和背景色，需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格XHTML+CSS兼容性解决方案小集 <br>使用XHTML＋CSS构架好处不少，但也确实存在一些问题，不论是因为使用不熟练还是思路不清晰，我就先把一些我遇到的问题写在下面，省的大家四处找^^ <br>1、在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法： <br>div{margin:30px!important;margin:28px;} <br>注意这两个margin的顺序一定不能写反，据阿捷的说法!important这个属性IE不能识别，但别的浏览器可以识别。所以在IE下其实解释成这样： <br>div{maring:30px;margin:28px} <br>重复定义的话按照最后一个来执行，所以不可以只写margin:XXpx!important; <br>2、IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px，而在IE6和其他浏览器上宽度则 是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时我们可以做如下修改 <br>div{width:300px!important;width /**/:340px;margin:0 10px 0 10px} <br>，关于这个/**/是什么我也不太明白，只知道IE5和firefox都支持但IE6不支持，如果有人理解的话，请告诉我一声，谢了！：） <br>3、ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义 <br>ul{margin:0;padding:0;} <br>就能解决大部分问题 <br>4、关于脚本，在xhtml1.1中不支持language属性，只需要把代码改为 <br>&lt; type=&quot;text/java&quot;&gt; <br>就可以了 <br>七、10个你未必知道的CSS技巧  <br>1、CSS字体属性简写规则 <br>一般用CSS设定字体属性是这样做的： <br>font-weight:bold; <br>font-style:italic; <br>font-varient:small-caps; <br>font-size:1em; <br>line-height:1.5em; <br>font-family:verdana,sans-serif; <br>但也可以把它们全部写到一行上去： <br>font: bold italic small-caps 1em/1.5em verdana,sans-serif; <br>真不错！只有一点要提醒的：这种简写方法只有在同时指定font-size和font-family属性时才起作用。而且，如果你没有设定font-weight, font-style, 以及 font-varient ，他们会使用缺省值，这点要记上。 <br>2、同时使用两个类 <br>一般只能给一个元素设定一个类（Class），但这并不意味着不能用两个。事实上，你可以这样： <br>&lt;p class=&quot;text side&quot;&gt;...&lt;/p&gt; <br>同时给P元素两个类，中间用空格格开，这样所有text和side两个类的属性都会加到P元素上来。如果它们两个类中的属性有冲突的话，后设置的起作用，即在CSS文件中放在后面的类的属性起作用。 <br>补充：对于一个ID，不能这样写&lt;p id=&quot;text side&quot;&gt;...&lt;/p&gt;也不能这样写 <br>3、CSS border的缺省值 <br>通常可以设定边界的颜色，宽度和风格，如： <br>border: 3px solid #000 <br>这位把边界显示成3像素宽，黑色，实线。但实际上这里只需要指定风格即可。 <br>如果只指定了风格，其他属性就会使用缺省值。一般地，Border的宽度缺省是medium，一般等于3到4个像素；缺省的颜色是其中文字的颜色。如果这个值正好合适的话，就不用设那么多了。 <br>4、CSS用于文档打印 <br>许多网站上都有一个针对打印的版本，但实际上这并不需要，因为可以用CSS来设定打印风格。 <br>也就是说，可以为页面指定两个CSS文件，一个用于屏幕显示，一个用于打印： <br>&lt;link type=&quot;text/css&quot; rel=&quot;stylesheet&quot; href=&quot;/blog/stylesheet.css&quot; media=&quot;screen&quot; /&gt; &lt;link type=&quot;text/css&quot; rel=&quot;stylesheet&quot; href=&quot;printstyle.css&quot; media=&quot;print&quot; /&gt;  <br>第1行就是显示，第2行是打印，注意其中的media属性。 <br>但应该在打印CSS中写什么东西呢？你可以按设计普通CSS的方法来设定它。设计的同时就可以把这个CSS设成显示CSS来检查它的效果。也许你会使用 display: none 这个命令来关掉一些装饰图片，再关掉一些导航按钮。要想了解更多，可以看“打印差异”这一篇。 <br>5、图片替换技巧 <br>一般都建议用标准的HTML来显示文字，而不要使用图片，这样不但快，也更具可读性。但如果你想用一些特殊字体时，就只能用图片了。 <br>比如你想整个卖东西的图标，你就用了这个图片： <br>&lt;h1&gt;&lt;img src=&quot;/blog/widget-image.gif&quot; alt=&quot;Buy widgets&quot; /&gt;&lt;/h1&gt; <br>这当然可以，但对搜索引擎来说，和正常文字相比，它们对alt里面的替换文字几乎没有兴趣这是因为许多设计者在这里放许多关键词来骗搜索引擎。所以方法应该是这样的： <br>&lt;h1&gt;Buy widgets&lt;/h1&gt; <br>但这样就没有特殊字体了。要想达到同样效果，可以这样设计CSS： <br>h1 { background: url(/blog/widget-image.gif) no-repeat; height: image height text-indent: -2000px }  <br>注意把image height换成真的图片的高度。这里，图片会当作背景显示出来，而真正的文字由于设定了-2000像素这个缩进，它们会出现在屏幕左边2000点的地方，就看不见了。但这对于关闭图片的人来说，可能全部看不到了，这点要注意。 <br>6、CSS box模型的另一种调整技巧 <br>这个Box模型的调整主要是针对IE6之前的IE浏览器的，它们把边界宽度和空白都算在元素宽度上。比如： <br>#box { width: 100px; border: 5px; padding: 20px }  <br>这样调用它： <br>&lt;div id=&quot;box&quot;&gt;...&lt;/div&gt; <br>这时盒子的全宽应该是150点，这在除IE6之前的IE浏览器之外的所有浏览器上都是正确的。但在IE5这样的浏览器上，它的全宽仍是100点。可以用以前人发明的Box调整方法来处理这种差异。 <br>但用CSS也可以达到同样的目的，让它们显示效果一致。 <br>#box { width: 150px } #box div { border: 5px; padding: 20px }  <br>这样调用： <br>&lt;div id=&quot;box&quot;&gt;&lt;div&gt;...&lt;/div&gt;&lt;/div&gt; <br>这样，不管什么浏览器，宽度都是150点了。 <br>7、块元素居中对齐 <br>如果想做个固定宽度的网页并且想让网页水平居中的话，通常是这样： <br>#content { width: 700px; margin: 0 auto }  <br>你会使用 &lt;div id=&quot;content&quot;&gt; 来围上所有元素。这很简单，但不够好，IE6之前版本会显示不出这种效果。改CSS如下： <br>body { text-align: center } #content { text-align: left; width: 700px; margin: 0 auto }  <br>这会把网页内容都居中，所以在Content中又加入了 <br>text-align: left 。 <br>8、用CSS来处理垂直对齐 <br>垂直对齐用表格可以很方便地实现，设定表格单元 vertical-align: middle 就可以了。但对CSS来说这没用。如果你想设定一个导航条是2em高，而想让导航文字垂直居中的话，设定这个属性是没用的。 <br>CSS方法是什么呢？对了，把这些文字的行高设为 2em：line-height: 2em ，这就可以了。 <br>9、CSS在容器内定位 <br>CSS的一个好处是可以把一个元素任意定位，在一个容器内也可以。比如对这个容器： <br>#container { position: relative }  <br>这样容器内所有的元素都会相对定位，可以这样用： <br>&lt;div id=&quot;container&quot;&gt;&lt;div id=&quot;navigation&quot;&gt;...&lt;/div&gt;&lt;/div&gt; <br>如果想定位到距左30点，距上5点，可以这样： <br>#navigation { position: absolute; left: 30px; top: 5px }  <br>当然，你还可以这样： <br>margin: 5px 0 0 30px <br>注意4个数字的顺序是：上、右、下、左。当然，有时候定位的方法而不是边距的方法更好些。 <br>10、直通到屏幕底部的背景色 <br>在垂直方向是进行控制是CSS所不能的。如果你想让导航栏和内容栏一样直通到页面底部，用表格是很方便的，但如果只用这样的CSS： <br>#navigation { background: blue; width: 150px }  <br>较短的导航条是不会直通到底部的，半路内容结束时它就结束了。该怎么办呢？ <br>不幸的是，只能采用欺骗的手段了，给这较短的一栏加上个背景图，宽度和栏宽一样，并让它的颜色和设定的背景色一样。 <br>body { background: url(/blog/blue-image.gif) 0 0 repeat-y }  <br>此时不能用em做单位，因为那样的话，一旦读者改变了字体大小，这个花招就会露馅，只能使用px。 <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1249457028#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Wed, 05 Aug 2009 07:23:48 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1249457028</guid>
</item>

<item>
<title><![CDATA[CSS ie foxfire]]></title>
<link>http://26579034.qzone.qq.com/blog/1248409419</link>
<description><![CDATA[1、对css缩写的支持问题：  <br>　　不论是ie 还是ff对css的缩写都有一小点问题，比如:border: 0xp solid #fff;两个浏览器支持都没有问题，但如果四个边的magin不同情况下，就不能用这种缩写了，无论是ie还是ff又会出现边界解释错误，而导致页面变形。  <br>正确缩写：  <br>border-width:0px 1px 2px 3px;  <br>border-style:solid;  <br>border-color:#fff;  <br> <br>2、magin padding 等默认值  <br>　　ie对于css的magin padding 等默认值为0px，但ff却不一样，为了保持外观的统一性，即使padding为0你也要写上，以免ff在浏览中的错位。  <br> <br>3、居中  <br>　　在IE里用body {text-align: center;}就可以居中对齐.到了firefox里总是在左边。但是如果加了float: right;还能到右边就是不能到中间，FF下面设置容器的左右外补丁为auto就可以了。  <br>margin-right:auto;  <br>margin-left:auto;  <br>比如: margin:0 auto;  <br> <br>与臭虫为友——浏览器补救办法，臭虫以及解决方案（第一部分）  <br>http://realazy.org/blog/2006/07/29/working-with-buggy-browsers-1  <br> <br>====未整理=============================================================  <br>Firefox与IE在CSS样式中的差异  <br>1 针对firefox ie6 ie7的css样式  <br>现在大部分都是用!important来hack，对于ie6和firefox测试可以正常显示，  <br>但是ie7对!important可以正确解释，会导致页面没按要求显示！找到一个针  <br>对IE7不错的hack方式就是使用“*+html”，现在用IE7浏览一下，应该没有问题了。  <br>现在写一个CSS可以这样：  <br> <br>#1 { color: #333; } /* Moz */  <br>* html #1 { color: #666; } /* IE6 */  <br>*+html #1 { color: #999; } /* IE7 */  <br>那么在firefox下字体颜色显示为#333，IE6下字体颜色显示为#666，IE7下字体颜色显示为#999。  <br> <br>2 css布局中的居中问题  <br>主要的样式定义如下：  <br> <br>body {TEXT-ALIGN: center;}  <br>#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; }  <br>说明：  <br>首先在父级元素定义TEXT-ALIGN: center;这个的意思就是在父级元素内的内容居中；对于IE这样设定就已经可以了。  <br>但在mozilla中不能居中。解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT: auto;MARGIN-LEFT: auto; ”  <br>需要说明的是，如果你想用这个方法使整个页面要居中，建议不要套在一个DIV里，你可以依次拆出多个div，  <br>只要在每个拆出的div里定义MARGIN-RIGHT: auto;MARGIN-LEFT: auto; 就可以了。  <br> <br>3    盒模型不同解释.  <br> <br>#box{     width:600px;          //for     ie6.0-     w\idth:500px;         //for    ff+ie6.0}  <br>#box{      width:600px!important              //for ff      width:600px;          //for    ff+ie6.0      width /**/:500px;         //for     ie6.0-}  <br> <br>4 浮动ie产生的双倍距离  <br> <br>#box{     float:left;     width:100px;     margin:0 0 0 100px;    //这种情况之下IE会产生200px的距离     display:inline;     //使浮动忽略}  <br>这里细说一下block,inline两个元素,Block元素的特点是:总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:和其他元素在同一行上,...不可控制(内嵌元素);  <br> <br>#box{     display:block; //可以为内嵌元素模拟为块元素     display:inline; //实现同一行排列的的效果     diplay:table;  <br> <br>5 IE与宽度和高度的问题  <br> <br>IE不认得min-这个定义，但实际上它把正常的width和height当作有min的情况来使。这样问题就大了，如果只用宽度和高度，  <br>正常的浏览器里这两个值就不会变，如果只用min-width和min-height的话，IE下面根本等于没有设置宽度和高度。  <br>比如要设置背景图片，这个宽度是比较重要的。要解决这个问题，可以这样：  <br>#box{      width: 80px;      height: 35px;}html&gt;body #box{      width: auto;      height: auto;      min-width: 80px;      min-height: 35px;}  <br> <br>6 页面的最小宽度  <br> <br>min-width是个非常方便的CSS命令，它可以指定元素最小也不能小于某个宽度，这样就能保证排版一直正确。但IE不认得这个，  <br>而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用，可以把一个&lt;div&gt; 放到 &lt;body&gt; 标签下，然后为div指定一个类：  <br>然后CSS这样设计：  <br>#container{    min-width: 600px;    width:expression(document.body.clientWidth &lt; 600? &quot;600px&quot;: &quot;auto&quot; );}  <br>第一个min-width是正常的；但第2行的width使用了Javascript，这只有IE才认得，这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。  <br> <br>7 清除浮动  <br> <br>.hackbox{         display:table; //将对象作为块元素级的表格显示}或者.hackbox{          clear:both;}  <br>或者加入:after（伪对象）,设置在对象后发生的内容，通常和content配合使用，IE不支持此伪对象，非Ie 浏览器支持，  <br>所以并不影响到IE/WIN浏览器。这种的最麻烦的......#box:after{      content: &quot;.&quot;;       display: block;      height: 0;       clear: both;       visibility: hidden;}  <br> <br>8 DIV浮动IE文本产生3象素的bug  <br> <br>左边对象浮动，右边采用外补丁的左边距来定位，右边对象内的文本会离左边有3px的间距.  <br> <br>#box{      float:left;      width:800px;}#left{      float:left;      width:50%;}#right{      width:50%;}*html #left{      margin-right:-3px;     //这句是关键}  <br>     HTML代码&lt;div id=&quot;box&quot;&gt;      &lt;div id=&quot;left&quot;&gt;&lt;/div&gt;     &lt;div id=&quot;right&quot;&gt;&lt;/div&gt;&lt;/div&gt;  <br> <br>9 属性选择器(这个不能算是兼容,是隐藏css的一个bug  <br> <br>p[id]{}div[id]{}  <br>这个对于IE6.0和IE6.0以下的版本都隐藏,FF和OPera作用  <br>属性选择器和子选择器还是有区别的,子选择器的范围从形式来说缩小了,属性选择器的范围比较大,如p[id]中,所有p标签中有id的都是同样式的.  <br> <br>10 IE捉迷藏的问题  <br>     <br>     当div应用复杂的时候每个栏中又有一些链接，DIV等这个时候容易发生捉迷藏的问题。  <br>有些内容显示不出来，当鼠标选择这个区域是发现内容确实在页面。  <br>解决办法：对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。  <br> <br>11 高度不适应  <br>      <br>      高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节，特别是当内层对象使用  <br>margin 或paddign 时。  <br>例：  <br>     &lt;div id=&quot;box&quot;&gt;  <br>       &lt;p&gt;p对象中的内容&lt;/p&gt;  <br>     &lt;/div&gt;  <br>CSS：#box {background-color:#eee; }        <br>#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }  <br>解决方法：在P对象上下各加2个空的div对象CSS代码：.1{height:0px;overflow:hidden;}或者为DIV加上border属性。 <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1248409419#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Fri, 24 Jul 2009 04:23:39 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1248409419</guid>
</item>

<item>
<title><![CDATA[XMLDOM介绍和例子]]></title>
<link>http://26579034.qzone.qq.com/blog/1247826413</link>
<description><![CDATA[1.文档对象模型（DOM）     DOM是HTML和XML文档的编程基础，它定义了处理执行文档的途径。编程者可以使用DOM增加文档、定位文档结构、填加 修改删除文档元素。W3C的重要目标是把利用DOM提供一个使用于多个平台的编程接口。W3C DOM被设计成适合多个平台，可 使用任意编程语言实现的方法。 2.节点接口     XML parser用来装载XML文档到缓存中，文档装载时，可以使用DOM进行检索和处理。DOM采用树形结构表示 XML文档， 文档元素是树的最高阶层，该元素有一个或多个孩子节点用来表示树的分枝。     节点接口程序通常用来读和写XML节点树中的个别元素，文档元素的孩子节点属性可以用来构造个别元素节点。XML parser用来证明Web中的DOM支持遍历节点树的所有函数，并可通过它们访问节点和及其属性、插入删除节点、转换节点树 到XML中。     所有Microsoft XML parser函数得到W3C XML DOM的正式推荐，除了load和loadXML函数（正式的DOM不包括标准函数 loading XML文档）。有13个节点类型被Microsoft XML parser支持，下面列出常用节点：   节点类型                                  例子 Document type                    &lt;!DOCTYPE food SYSTEM &quot;food.dtd&quot;&gt; Processing instruction              &lt;?xml version=&quot;1.0&quot;?&gt; Element                          &lt;drink type=&quot;beer&quot;&gt;Carlsberg&lt;/drink&gt; Attribute                          type=&quot;beer&quot; Text                               Carlsberg 3.使用XML parser     为了更加熟练的处理XML文档，必须使用XML parser。Microsoft XML parser是IIS5.0所带的一个COM组件，一旦安装 了IIS5.0，parser可以利用HTML文档和ASP文件中的脚本。 Microsoft XMLDOM parser支持以下编程模式： ----支持 JavaScript, VBScript, Perl, VB, Java, C++ 等等 ----支持 W3C XML 1.0 和 XML DOM ----支持 DTD 和 validation     如果使用IE5.0中的JavaScript，可以使用下面的XML文档对象：   var xmlDoc = new ActiveXObject(&quot;Microsoft.XMLDOM&quot;)     如果使用VBScript，可以使用下面的XML文档对象：   set xmlDoc = CreateObject(&quot;Microsoft.XMLDOM&quot;)     如果使用ASP，可以使用下面的XML文档对象：   set xmlDoc = Server.CreateObject(&quot;Microsoft.XMLDOM&quot;) 4.装载一个XML文件到parser中     下面的代码装载存在的XML文档进入XML parser: &lt;script language=&quot;JavaScript&quot;&gt; var xmlDoc = new ActiveXObject(&quot;Microsoft.XMLDOM&quot;) xmlDoc.async=&quot;false&quot; xmlDoc.load(&quot;note.xml&quot;) // ....... processing the document goes here &lt;/script&gt;     第一行脚本增加了一个Microsoft XML parser实例，第三行装载名为”note.xml”的XML文档进入parser中。第二行保 证文档装载完成以后parser进行下一步工作。 <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1247826413#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Fri, 17 Jul 2009 10:26:53 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1247826413</guid>
</item>

<item>
<title><![CDATA[SQL SERVER 与ACCESS、EXCEL的数据转换]]></title>
<link>http://26579034.qzone.qq.com/blog/1240900518</link>
<description><![CDATA[<span style="font-size:16px;line-height:1.8em;">熟悉SQL SERVER 2000的数据库管理员都知道，其DTS可以进行数据的导入导出，其实，我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中，我们主要使用OpenDataSource函数、OPENROWSET 函数，关于函数的详细说明，请参考SQL联机帮助。利用下述方法，可以十分容易地实现SQL SERVER、ACCESS、EXCEL数据转换，详细说明如下：</span><wbr /><br><br>一、           </span><wbr />SQL SERVER </span><wbr />和</span><wbr />ACCESS</span><wbr />的数据导入导出</span><wbr /></span><wbr /><br><span style="font-size:16px;line-height:1.8em;">常规的数据导入导出：</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">使用DTS向导迁移你的Access数据到SQL Server，你可以使用这些步骤: </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">　　1在SQL SERVER企业管理器中的Tools（工具）菜单上，选择Data Transformation </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">　　2Services（数据转换服务），然后选择  czdImport Data（导入数据）。 </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">　　3在Choose a Data Source（选择数据源）对话框中选择Microsoft Access as the Source，然后键入你的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。 </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">　　4在Choose a Destination（选择目标）对话框中，选择Microsoft OLE　DB Prov ider for SQL　Server，选择数据库服务器，然后单击必要的验证方式。 </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">　　5在Specify Table Copy（指定表格复制）或Query（查询）对话框中，单击Copy tables（复制表格）。 </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">6在Select Source Tables（选择源表格）对话框中，单击Select All（全部选定）。下一步，完成。</span><wbr /><br><br><span style="font-size:16px;line-height:1.8em;">Transact-SQL语句进行导入导出：</span><wbr /></span><wbr /><br><span style="font-size:16px;line-height:1.8em;">1.</span><wbr />         <span style="font-size:16px;line-height:1.8em;">在SQL SERVER里查询access数据:</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">-- ======================================================</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">SELECT * </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">'Data Source=&quot;c:\DB.mdb&quot;;User ID=Admin;Password=')...表名</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">-------------------------------------------------------------------------------------------------</span><wbr /><br><br><span style="font-size:16px;line-height:1.8em;">2.</span><wbr />         <span style="font-size:16px;line-height:1.8em;">将access导入SQL server </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">-- ======================================================</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">在SQL SERVER 里运行:</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">SELECT *</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">INTO newtable</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">      'Data Source=&quot;c:\DB.mdb&quot;;User ID=Admin;Password=' )...表名</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">-------------------------------------------------------------------------------------------------</span><wbr /><br><br><span style="font-size:16px;line-height:1.8em;">3.</span><wbr />         <span style="font-size:16px;line-height:1.8em;">将SQL SERVER表里的数据插入到Access表中</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">-- ======================================================</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">在SQL SERVER 里运行：</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">  'Data Source=&quot; c:\DB.mdb&quot;;User ID=Admin;Password=')...表名 </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">(列名1,列名2)</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">select 列名1,列名2  from  sql表</span><wbr /><br><br><span style="font-size:16px;line-height:1.8em;">实例：</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">insert into  OPENROWSET('Microsoft.Jet.OLEDB.4.0', </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">   'C:\db.mdb';'admin';'', Test) </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">select id,name from Test</span><wbr /><br><br><br><span style="font-size:16px;line-height:1.8em;">INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">SELECT *</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">FROM sqltablename</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">-------------------------------------------------------------------------------------------------</span><wbr /><br> </span><wbr /><br> </span><wbr /><br> </span><wbr /><br> </span><wbr /><br> </span><wbr /><br>二、           </span><wbr />SQL SERVER </span><wbr />和</span><wbr />EXCEL</span><wbr />的数据导入导出</span><wbr /></span><wbr /><br> </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">1、在SQL SERVER里查询Excel数据:</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">-- ======================================================</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">SELECT * </span><wbr /><br><span style="font-size:16px;line-height:1.8em;">FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',</span><wbr /><br><span style="font-size:16px;line-height:1.8em;">'Data Source=&quot;c:\book1.xls&quot;;User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]</span><wbr /><br><br><span style="font-size:16px;line-height:1.8em;">下面是个查询的示例，它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。</span><wbr /><br><span style="font-family:'宋体';line-height:1.8em;">SELECT * </span><wbr /><br><span style="font-family:'宋体';line-height:1.8em;">FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',</span><wbr /><br><span style="font-family:'宋体';line-height:1.8em;">  'Data Source=&quot;c:\Finance\account.xls&quot;;User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions</span><wbr /><br>-------------------------------------------------------------------------------------------------<br> <br>2、将Excel的数据导入SQL server :<br>-- ======================================================<br>SELECT * into newtable<br>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br>  'Data Source=&quot;c:\book1.xls&quot;;User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]<br> <br>实例:<br>SELECT * into newtable<br>FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br>  'Data Source=&quot;c:\Finance\account.xls&quot;;User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions<br>-------------------------------------------------------------------------------------------------<br> <br>3、将SQL SERVER中查询到的数据导成一个Excel文件<br>-- ======================================================<br>T-SQL代码：<br>EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Temp.xls -c -q -S&quot;servername&quot; -U&quot;sa&quot; -P&quot;&quot;'<br>参数：S 是SQL服务器名；U是用户；P是密码<br>说明：还可以导出文本文件等多种格式<br> <br>实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S&quot;pmserver&quot; -U&quot;sa&quot; -P&quot;sa&quot;'<br> <br> EXEC master..xp_cmdshell 'bcp &quot;SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname&quot; queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'<br> <br>在VB6中应用ADO导出EXCEL文件代码： <br>Dim cn  As New ADODB.Connection<br>cn.open &quot;Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;&quot;<br>cn.execute &quot;master..xp_cmdshell 'bcp &quot;SELECT col1, col2 FROM 库名.dbo.表名&quot; queryout E:\DT.xls -c -Sservername -Usa -Ppassword'&quot;<br>-------------------------------------------------------------------------------------------------<br> <br>4、在SQL SERVER里往Excel插入数据:<br>-- ======================================================<br>insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',<br>'Data Source=&quot;c:\Temp.xls&quot;;User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)<br> <br>T-SQL代码：<br>INSERT INTO  <br> OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',  <br> 'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$]  <br> (bestand, produkt) VALUES (20, 'Test') <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1240900518#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Tue, 28 Apr 2009 06:35:18 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1240900518</guid>
</item>

<item>
<title><![CDATA[sql 行变列]]></title>
<link>http://26579034.qzone.qq.com/blog/1240795640</link>
<description><![CDATA[行转列问题主要分为两类。　　<span style="font-weight:bold"><wbr />1)简单的行转列问题:</span><wbr /><br>　　示例表:<br>　　id sid course result<br>　　1 2005001 语文 80.0<br>　　2 2005001 数学 90.0<br>　　3 2005001 英语 80.0<br>　　4 2005002 语文 56.0<br>　　5 2005002 数学 69.0<br>　　6 2005002 英语 89.0<br>　　执行：<br>　　select sid,语文=isnull(sum(case course when '语文' then result end),0), <br>　　数学=isnull(sum(case course when '数学' then result end),0), <br>　　英语=isnull(sum(case course when '英语' then result end),0) <br>　　from result <br>　　group by sid <br>　　order by sid<br>　　得出结果：<br>　　sid 语文 数学 英语<br>　　2005001 80.0 90.0 80.0<br>　　2005002 56.0 69.0 89.0<br>　　<span style="font-weight:bold"><wbr />2)较为复杂的行转列</span><wbr /><br>　　<span style="font-weight:bold"><wbr />表1:course</span><wbr /><br>　　id name<br>　　1 语文<br>　　2 数学<br>　　3 英语<br>　　<span style="font-weight:bold"><wbr />表2:result</span><wbr /><br>　　id sid course result<br>　　1 2005001 语文 80.0<br>　　2 2005001 数学 90.0<br>　　3 2005001 英语 80.0<br>　　4 2005002 语文 56.0<br>　　5 2005002 数学 69.0<br>　　6 2005002 英语 89.0<br>  　declare @sql varchar(8000)  <br>　　set @sql='select sid'  <br>　　select @sql=@sql+','+course.name+'=isnull(sum(case course when '''+course.name+''' then result end),0)'  <br>　　from course order by id  <br>　　set @sql=@sql+' from result group by sid order by sid'  <br>　　print @sql  <br>　　exec(@sql)<br>　　得出结果<br>　　sid 语文 数学 英语<br>　　2005001 80.0 90.0 80.0<br>　　2005002 56.0 69.0 89.0 <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1240795640#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Mon, 27 Apr 2009 01:27:20 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1240795640</guid>
</item>

<item>
<title><![CDATA[下拉列表]]></title>
<link>http://26579034.qzone.qq.com/blog/1239634888</link>
<description><![CDATA[&lt;!DOCTYPE html PUBddC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a><wbr />&quot;&gt; <br>&lt;html xmlns=&quot;<a href="http://www.w3.org/1999/xhtml" target="_blank">http://www.w3.org/1999/xhtml</a><wbr />&quot; lang=&quot;zh-CN&quot;&gt; <br>&lt;head&gt; <br>&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot; /&gt; <br>&lt;title&gt;CSS下拉菜单演示 &lt;/title&gt; <br>&lt;style type=&quot;text/css&quot;&gt; <br>&lt;!-- <br>*{margin:0; padding:0; ddst-style:none;} <br>img{border:0;} <br>body{font:12px Arial,&quot;宋体&quot;,serif;;} <br>#nav{line-height:24px;}/*一级菜单box*/ <br>#nav a{display:block; width:80px; text-align:center; color:#666; text-decoration:none;} <br>#nav li{float:left; width:80px; background:#CCC; }/*一级菜单默认样式*/ <br>#nav li a:hover{background:#999; color:#FFF; font-weight:bold;}/*鼠标移动到一级菜单上的变化*/ <br>#nav li dl{line-height:27px; text-align:left; border:solid 1px #C30; position:absolute; left:-999em;}/*二级菜单box*/ <br>#nav li dl dd a{display:block; width:140px; text-align:left; padding-left:1em; background:#F6F6F6;}/*这可以设置二级菜单的宽度<br>*/ <br>#nav li dl dd a:hover{color:#F3F3F3; font-weight:normal; background:#F90;}/*鼠标移动到二级菜单上的变化*/ <br> <br>#nav li.sfhover dl{left:auto;} <br>#content{clear:left;} <br>--&gt; <br>&lt;/style&gt; <br>&lt;script type=text/javascript&gt; <br>&lt;!--//--&gt; &lt;![CDATA[//&gt; &lt;!-- <br>function menuFix() { <br>var sfEls = document.getElementById(&quot;nav&quot;).getElementsByTagName(&quot;li&quot;); <br>for (var i=0; i &lt;sfEls.length; i++) { <br>sfEls<span style="font-style:italic"><wbr />.onmouseover=function() { <br>this.className+=(this.className.length&gt;0? &quot; &quot;: &quot;&quot;) + &quot;sfhover&quot;; <br>} <br>sfEls<span style="font-style:italic"><wbr />.onMouseDown=function() { <br>this.className+=(this.className.length&gt;0? &quot; &quot;: &quot;&quot;) + &quot;sfhover&quot;; <br>} <br>sfEls<span style="font-style:italic"><wbr />.onMouseUp=function() { <br>this.className+=(this.className.length&gt;0? &quot; &quot;: &quot;&quot;) + &quot;sfhover&quot;; <br>} <br>sfEls<span style="font-style:italic"><wbr />.onmouseout=function() { <br>this.className=this.className.replace(new RegExp(&quot;( ? |^)sfhover\\b&quot;), <br>&quot;&quot;); <br>} <br>} <br>}<br>window.onload=menuFix;  <br>//--&gt; &lt;!]]&gt; <br>&lt;/script&gt; <br>&lt;/head&gt; <br>&lt;body&gt; <br>&lt;ul id=&quot;nav&quot; align=&quot;center&quot;&gt; <br>    &lt;li&gt; &lt;a href=&quot;#&quot; &gt;产品介绍 &lt;/a&gt; <br>        &lt;dl align=&quot;center&quot;&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;产品一 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;产品一 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;产品一 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;产品一 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;产品一 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;产品一 &lt;/a&gt; &lt;/dd&gt; <br>        &lt;/dl&gt; <br>    &lt;/li&gt; <br>    &lt;li&gt; &lt;a href=&quot;#&quot;&gt;服务介绍 &lt;/a&gt; <br>        &lt;dl&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;服务二 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;服务二 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;服务二 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;服务二服务二 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;服务二服务二服务二 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;服务二 &lt;/a&gt; &lt;/dd&gt; <br>        &lt;/dl&gt; <br>    &lt;/li&gt; <br>    &lt;li&gt; &lt;a href=&quot;#&quot;&gt;成功案例 &lt;/a&gt; <br>        &lt;dl&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;案例三 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;案例 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;案例三案例三 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;案例三案例三案例三 &lt;/a&gt; &lt;/dd&gt; <br>        &lt;/dl&gt; <br>    &lt;/li&gt; <br>    &lt;li&gt; &lt;a href=&quot;#&quot;&gt;关于我们 &lt;/a&gt; <br>        &lt;dl&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;我们四 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;我们四 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;我们四 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;我们四111 &lt;/a&gt; &lt;/dd&gt; <br>        &lt;/dl&gt; <br>    &lt;/dd&gt; <br>    &lt;li&gt; &lt;a href=&quot;#&quot;&gt;在线演示 &lt;/a&gt; <br>        &lt;dl&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;演示 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;演示 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;演示 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;演示演示演示 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;演示演示演示 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;演示演示 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;演示演示演示 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;演示演示演示演示演示 &lt;/a&gt; &lt;/dd&gt; <br>        &lt;/dl&gt; <br>    &lt;/li&gt; <br>    &lt;li&gt; &lt;a href=&quot;#&quot;&gt;联系我们 &lt;/a&gt; <br>        &lt;dl&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;联系联系联系联系联系 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;联系联系联系 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;联系 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;联系联系 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;联系联系 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;联系联系联系 &lt;/a&gt; &lt;/dd&gt; <br>            &lt;dd&gt; &lt;a href=&quot;#&quot;&gt;联系联系联系 &lt;/a&gt; &lt;/dd&gt; <br>        &lt;/dl&gt; <br>    &lt;/li&gt; <br>&lt;/ul&gt; <br>&lt;/body&gt; <br>&lt;/html&gt;  <br> <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1239634888#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Mon, 13 Apr 2009 15:01:28 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1239634888</guid>
</item>

<item>
<title><![CDATA[sql2005安装出错]]></title>
<link>http://26579034.qzone.qq.com/blog/1239587197</link>
<description><![CDATA[无法在com＋目录中安装和配置程序集c:\program files\Microsoft SQL Server\90\DTS\tasks\microsoft.sqlserver.MSMQTASK.DLL.<br>错误：－2146233087<br>sql server 安装时“无法在COM+目录中安装和配置程序”的解决办法2008-05-17 13:08无法在COM+目录中安装和配置程序集，C:\program files\microsoft SQL Server\90<br>\NotificationServices\9.0.242\Bin\microsoft.sqlserver,notificationservices.dll。错误:-<br>2146233087 <br>错误消息:Unknown error 0x80131501 <br>错误说明:事务管理器可用。（异常来自HRESULT:0x8004D01B）<br><br>【解决办法】<br>这时候可以暂停安装，不要点击中止、忽略，也不要点击取消<br>按以下步骤 <br>1.删除注册表中的键： <br>?HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC <br>? HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC <br>? HKEY_CLASSES_ROOT\CID <br>2、使用cmd执行 停止MSDTC服务：net stop msdtc <br>3、使用cmd执行 卸载MSDTC服务：msdtc -uninstall <br>4、使用cmd执行 重新安装MSDTC服务：msdtc -install<br>点击重试就可以继续安装了。<br> <!--v:3.2--> ]]></description>
<category><![CDATA[个人日记]]></category>
<author><![CDATA[26579034@qq.com(踏雪无痕)]]></author>
<comments>http://26579034.qzone.qq.com/blog/1239587197#comment</comments>
<qz:effect>134218240</qz:effect>
<pubDate>Mon, 13 Apr 2009 01:46:37 GMT</pubDate>
<guid>http://26579034.qzone.qq.com/blog/1239587197</guid>
</item>

</channel>
</rss>

