<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_毛小毛的家</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/44178/rss</id><updated>2011-12-19T09:29:53Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/44178/rss"/><entry><id>http://www.cnblogs.com/mikemao/archive/2011/12/19/2293664.html</id><title type="text">DELPHI使用TClientDataSet时不携带MIDAS.DLL的方法</title><summary type="text">TClientDataSet小家碧玉，恐怕人人都喜欢使用。但是，都知道娶TClientDataSet是有代价的，因为你同时也得面对丈母娘MIDAS.DLL。 能不能使用TClientDataSet又不用MIDAS.DLL呢？ 很简单，就是uses一下MidasLib单元! MidasLib单元在Delphi6以及DELPHI的更高版本中才有，是Lib目录下的一个dcu文件。一旦在你的源程序中引用了MidasLib单元，程序运行时就不再需要MIDAS.DLL文件。 然而，编译后程序大小一定会增加200k以上，即使使用包编译模式。 当然，需要的时候才这样做。你的应用程序本身就包含...</summary><published>2011-12-19T09:30:00Z</published><updated>2011-12-19T09:30:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2011/12/19/2293664.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2011/12/19/2293664.html"/><content type="html">&lt;div  id="article_content"&gt;&lt;font color="#009900"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TClientDataSet&lt;/font&gt;小家碧玉，恐怕人人都喜欢使用。但是，都知道娶&lt;font color="#009900"&gt;TClientDataSet&lt;/font&gt;是有代价的，因为你同时也得面对丈母娘&lt;font color="#ff0000"&gt;MIDAS.DLL&lt;/font&gt;。&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 能不能使用&lt;font color="#009900"&gt;TClientDataSet&lt;/font&gt;又不用&lt;font color="#ff0000"&gt;MIDAS.DLL&lt;/font&gt;呢？&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 很简单，就是uses一下&lt;font color="#0000ff"&gt;MidasLib&lt;/font&gt;单元!&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#0000ff"&gt;MidasLib&lt;/font&gt;单元在&lt;font color="#660099"&gt;&lt;strong&gt;Delphi6以及DELPHI的更高版本&lt;/strong&gt;&lt;/font&gt;中才有，是Lib目录下的一个dcu文件。一旦在你的源程序中引用了&lt;font color="#0000ff"&gt;MidasLib&lt;/font&gt;单元，程序运行时就不再需要&lt;font color="#ff0000"&gt;MIDAS.DLL&lt;/font&gt;文件。&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 然而，编译后程序大小一定会增加200k以上，即使使用包编译模式。&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当然，需要的时候才这样做。你的应用程序本身就包含多个DLL或BPL文件，就没有必要这样做。如果每个模块里都uses &lt;font color="#0000ff"&gt;MidasLib&lt;/font&gt;，一定会累死你的，还是供养一个&lt;font color="#ff0000"&gt;MIDAS.DLL&lt;/font&gt;好些。 &lt;/div&gt;&lt;img src="http://www.cnblogs.com/mikemao/aggbug/2293664.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2011/12/19/2293664.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mikemao/archive/2011/10/20/2218858.html</id><title type="text">Delphi中本年、本月、本周第一天和最后一天</title><summary type="text">uses DateUtils;function StartOfTheYear(const AValue: TDateTime): TDateTime;function EndOfTheYear(const AValue: TDateTime): TDateTime;function StartOfAYear(const AYear: Word): TDateTime;function EndOfAYear(const AYear: Word): TDateTime;function StartOfTheMonth(const AValue: TDateTime): TDateTime;func</summary><published>2011-10-20T05:34:00Z</published><updated>2011-10-20T05:34:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2011/10/20/2218858.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2011/10/20/2218858.html"/><content type="html">&lt;div  id="blog_text"&gt;&#xD;
&lt;p&gt;uses DateUtils;&lt;/p&gt;&#xD;
&lt;p&gt;function StartOfTheYear(const AValue: TDateTime): TDateTime;&lt;br /&gt;function EndOfTheYear(const AValue: TDateTime): TDateTime;&lt;br /&gt;function StartOfAYear(const AYear: Word): TDateTime;&lt;br /&gt;function EndOfAYear(const AYear: Word): TDateTime;&lt;/p&gt;&#xD;
&lt;p&gt;function StartOfTheMonth(const AValue: TDateTime): TDateTime;&lt;br /&gt;function EndOfTheMonth(const AValue: TDateTime): TDateTime;&lt;br /&gt;function StartOfAMonth(const AYear, AMonth: Word): TDateTime;&lt;br /&gt;function EndOfAMonth(const AYear, AMonth: Word): TDateTime;&lt;/p&gt;&#xD;
&lt;p&gt;function StartOfTheWeek(const AValue: TDateTime): TDateTime;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {ISO 8601}&lt;br /&gt;function EndOfTheWeek(const AValue: TDateTime): TDateTime;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {ISO 8601}&lt;br /&gt;function StartOfAWeek(const AYear, AWeekOfYear: Word;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {ISO 8601}&lt;br /&gt;&amp;nbsp;&amp;nbsp; const ADayOfWeek: Word = 1): TDateTime;&lt;br /&gt;function EndOfAWeek(const AYear, AWeekOfYear: Word;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {ISO 8601}&lt;br /&gt;&amp;nbsp;&amp;nbsp; const ADayOfWeek: Word = 7): TDateTime;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/mikemao/aggbug/2218858.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2011/10/20/2218858.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mikemao/archive/2011/10/12/2208809.html</id><title type="text">Delphi ActionList详解</title><summary type="text">一个友好的用户界面,必须具有下拉菜单，弹出菜单，工具条和快捷键。同样一个功能，程序员可能要提供几种操作方式，如文本拷贝，菜单命令&amp;amp;Copy,快捷键Ctrl+C,工具条上的拷贝按钮，都是程序员提供给用户的操作，可以大大方便了不同层次的用户。但是，多增加一种操作方式，就意味着增加响应事件的代码，还有，实现统一功能的多个操作必须一致，如剪切板上不为空的时候，菜单命令，快捷键，按钮，都是可以选择的Enabled状态，而剪切板上没有内容时，这些构件的Enabled状态都为假。当然，如果不集中控制这些细节的话，实现相同功能的构件要一致，必须多增加代码，控制较为复杂。Action就是将实现某个功能的</summary><published>2011-10-12T08:43:00Z</published><updated>2011-10-12T08:43:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2011/10/12/2208809.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2011/10/12/2208809.html"/><content type="html">&lt;p&gt;一个友好的用户界面,必须具有下拉菜单，弹出菜单，工具条和快捷键。同样一个功能，程序员可能要提供几种操作方式，如文本拷贝，菜单命令&amp;amp;Copy,快捷键Ctrl+C,工具条上的拷贝按钮，都是程序员提供给用户的操作，可以大大方便了不同层次的用户。但是，多增加一种操作方式，就意味着增加响应事件的代码，还有，实现统一功能的多个操作必须一致，如剪切板上不为空的时候，菜单命令，快捷键，按钮，都是可以选择的Enabled状态，而剪切板上没有内容时，这些构件的Enabled状态都为假。当然，如果不集中控制这些细节的话，实现相同功能的构件要一致，必须多增加代码，控制较为复杂。&lt;br /&gt;Action就是将实现某个功能的细节统一管理起来，如Caption, Checked, Enabled, HelpContext, Hint, ImageIndex, ShortCt, Visible, onExecute等属性和事件。程序员设置Action属性的同时,还要实现执行Action的代码onExecute。定义了Action后，将其连接到一个菜单项，或者按钮上时，Action定义的属性和OnExecute事件，马上取代了原来的设置，并且建立了连接。通过这个连接，当Action的属性发生变化时，如Enabled发生变化，那么与之连接的构件属性都会自动更新；反过来，当构件对应的事件被执行时，Action的onExecute也被调用。&lt;br /&gt;8.1.2 Action 和ActionList&lt;br /&gt;Action是定义了最小的功能单位，使用它来在不同构件间，达到代码集中管理。表4-12定义了Action的一些属性：&lt;br /&gt;ActionList是将多个Action统一管理的构件，在窗体设计阶段，使用它的弹出菜单，可以增减Action和定义Action的属性。它本身的属性Image连接了一个TImageList,指出它所包含的Action使用那个TImageList来定义ImageIndex。ActionLink是一个看不见的构件，但是它是负责构件和Action之间建立连接的。&lt;br /&gt;表 4-12 Action属性和事件&lt;br /&gt;属性和事件 具体功能&lt;br /&gt;Caption 标题，可用于菜单项，ToolButton等。&lt;br /&gt;Category 分类&lt;br /&gt;Checked 设置选择状态，用于菜单项&lt;br /&gt;Enabled 设置可用状态，用于与之连接的所有构件&lt;br /&gt;HelpContext 帮助的索引项，用于与之相连的所有构件&lt;br /&gt;Hint 智能感知，设置提示内容&lt;br /&gt;ImageIndex 设置菜单项和按钮上的图片&lt;br /&gt;Visible 指示与之连接的构件可否显示&lt;br /&gt;ShortCut 设置菜单项的快捷键。&lt;br /&gt;OnExecute 执行此Action的代码&lt;br /&gt;OnHint 当被感知的构件显示Hint时调用的代码&lt;br /&gt;OnUpdate 当Action更新构件的属性时调用的代码&lt;br /&gt;////////////&lt;br /&gt;我们先来认识TActionList。TActionList 是从TCustomAction中继承来的，由它管理定义好的Action，是程序员在对Action编程的接口。&lt;br /&gt;新建一个工程文件，在主窗体上增加一个TActionList，一个TMemo，一个TImageList，几个按钮，几个菜单项。双击TActionlist，会出现它的编辑界面。再单击右键选择New standard action，显示出预定义的Action类别，属性Category是用来表明Action所属类别，我们可以根据需要选择具体的类别，如图4-10所示，我们引入了文件操作的一些标准Action。&lt;br /&gt;这里所列的Action，大部分属性已经定义好了，就是说只要把他们添加到ActionList中，就可以使用。同样的，也可以新建Action，在Category属性中加上自己定义的名字，之后再添加新的Action 。&lt;br /&gt;8.2.2 连接Action&lt;br /&gt;定义了Action后，不与菜单项和按钮连接，是不能使用的，也没有达到程序功能集中实现和管理。使用对象观察器，看看我们刚刚选择的菜单项和按钮上是否有属性Action。&lt;br /&gt;在这些构件的Action属性内，选择一个Action之后，构件本身的很多属性都随着Action定义的属性发生了变化，例如菜单项的Caption与Action的属性Caption就一致了，构件的属性Name和Tag是不随着改变的。连接后，Action的属性值被拷贝到所连接构件的相应属性上，这种连接是动态地，当Action的属性值发生变化时，自动更新所联系的构件。&lt;br /&gt;注意：如果使用的是一个TToolButton 或着是菜单项，必须自己设置与它相联系的Images属性，虽然构件的ImageIndex属性已经动态的同Action相连接，但是属性Images并未自动连接。&lt;br /&gt;继续本节的例子，通过设置菜单项和按钮的Action属性，完成Action的连接。&lt;br /&gt;8.2.3 处理Action&lt;br /&gt;处理Action的代码可放置在Action的onExecute事件，也可以集中放置在ActionList的onExecuteAction中，还可以更集中的放置在Application的onExecuteAction事件中。改变了以往每个构件都必须对应事件的做法，程序设计上更系统化。&lt;br /&gt;在本节的例子中，编写某几个Action的onExecute方法。如FileOpenCmd的onExecute事件如下：&lt;br /&gt;if OpenDialog.Execute then&lt;br /&gt;Memo1.LoadFromFile(OpenDialog.FileName);&lt;br /&gt;8.2.3 更新Action属性&lt;br /&gt;Action的事件有OnExecute和OnUpdate，OnExecute事件在控制被触发时响应，比如说按钮被按下，菜单被按下，而OnUpdate事件是在应用程序空闲时被调用，用来更新Action的属性。ActionList 中也有OnUpdate, 可以用作设置菜单或者按钮的可选等属性使用。如下例,这个例子来自于$Delphi\Demos\RichEdit\Richedit.Dpr程序，有兴趣的读者可查看一下，以便更了解Action。&lt;br /&gt;1 procedure TMainForm.ActionList2Update(Action: TBasicAction; var Handled: Boolean);&lt;br /&gt;2 begin&lt;br /&gt;3 EditCutCmd.Enabled := Editor.SelLength &amp;gt; 0;&lt;br /&gt;4 EditCopyCmd.Enabled := EditCutCmd.Enabled;&lt;br /&gt;5 if Editor.HandleAllocated then&lt;br /&gt;6 begin&lt;br /&gt;7 EditUndoCmd.Enabled := Editor.Perform(EM_CANUNDO, 0, 0) &amp;lt;&amp;gt; 0;&lt;br /&gt;8 EditPasteCmd.Enabled := Editor.Perform(EM_CANPASTE, 0, 0) &amp;lt;&amp;gt; 0;&lt;br /&gt;9 end;&lt;br /&gt;10 end;&lt;br /&gt;当应用程序空闲时，就执行这段代码，首先检查是否有被选定的文本，如果有则将Cut和Copy的Enabled属性设为True；当前控制是Editor时，设置Undo和Paste属性，Perfom是构件向自身发送消息的方法。&lt;br /&gt;Delphi已经定义了一些标准的Action，这些Action实现的功能和VCL代码已经结合起来。所以，程序员可以直接使用，有些Action甚至不需要定义onExecute事件。如Cut，Copy，Paste等剪切板操作，Cancel，Delete，Edit，First，Insert，Last，Next，Prior，Post，Refresh等数据导航功能，Arrange，Cascade，Close，MinimizeAll，TileHorizontal等窗口排布功能。&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mikemao/aggbug/2208809.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2011/10/12/2208809.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mikemao/archive/2011/10/11/2207377.html</id><title type="text">批处理自己更新自己</title><summary type="text">classprocedureTVTUpgrader.UpdateSelf(constFileName:TVTString);varLBatchFile:TextFile;LBatchFileName:TVTString;LProcessInfo:TProcessInformation;LStartUpInfo:TStartupInfo;begin//批处理文件名LBatchFileName:=ExtractFilePath(ParamStr(0))+&amp;#39;_deleteme.bat&amp;#39;;//打开文件，设置覆盖模式AssignFile(LBatchFile,LBatchFileName</summary><published>2011-10-11T07:37:00Z</published><updated>2011-10-11T07:37:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2011/10/11/2207377.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2011/10/11/2207377.html"/><content type="html">&lt;p&gt;class&amp;nbsp;procedure&amp;nbsp;TVTUpgrader.UpdateSelf(const&amp;nbsp;FileName:&amp;nbsp;TVTString);&lt;br /&gt;var&lt;br /&gt;&amp;nbsp;&amp;nbsp;LBatchFile:&amp;nbsp;TextFile;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LBatchFileName:&amp;nbsp;TVTString;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LProcessInfo:&amp;nbsp;TProcessInformation;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LStartUpInfo:&amp;nbsp;TStartupInfo;&lt;br /&gt;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;//批处理文件名&lt;br /&gt;&amp;nbsp;&amp;nbsp;LBatchFileName&amp;nbsp;:=&amp;nbsp;ExtractFilePath(ParamStr(0))&amp;nbsp;+&amp;nbsp;'_deleteme.bat';&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//打开文件，设置覆盖模式&lt;br /&gt;&amp;nbsp;&amp;nbsp;AssignFile(LBatchFile,&amp;nbsp;LBatchFileName);&lt;br /&gt;&amp;nbsp;&amp;nbsp;Rewrite(LBatchFile);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//写入批处理内容&lt;br /&gt;&amp;nbsp;&amp;nbsp;Writeln(LBatchFile,&amp;nbsp;':try');&lt;br /&gt;&amp;nbsp;&amp;nbsp;Writeln(LBatchFile,&amp;nbsp;'del&amp;nbsp;"'&amp;nbsp;+&amp;nbsp;ParamStr(0)&amp;nbsp;+&amp;nbsp;'"');&lt;br /&gt;&amp;nbsp;&amp;nbsp;Writeln(LBatchFile,&amp;nbsp;'if&amp;nbsp;exist&amp;nbsp;"'&amp;nbsp;+&amp;nbsp;ParamStr(0)&amp;nbsp;+&amp;nbsp;'"'&amp;nbsp;+&amp;nbsp;'&amp;nbsp;goto&amp;nbsp;try');&lt;br /&gt;&amp;nbsp;&amp;nbsp;Writeln(LBatchFile,&amp;nbsp;'copy&amp;nbsp;"'&amp;nbsp;+&amp;nbsp;FileName&amp;nbsp;+&amp;nbsp;'"&amp;nbsp;"'&amp;nbsp;+&amp;nbsp;ParamStr(0)&amp;nbsp;+&amp;nbsp;'"');&lt;br /&gt;&amp;nbsp;&amp;nbsp;Writeln(LBatchFile,&amp;nbsp;'del&amp;nbsp;"'&amp;nbsp;+&amp;nbsp;FileName&amp;nbsp;+&amp;nbsp;'"');&lt;br /&gt;&amp;nbsp;&amp;nbsp;Writeln(LBatchFile,&amp;nbsp;'del&amp;nbsp;%0');&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//关闭文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;CloseFile(LBatchFile);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;//创建新进程运行批处理文件&lt;br /&gt;&amp;nbsp;&amp;nbsp;FillChar(LStartUpInfo,&amp;nbsp;SizeOf(LStartUpInfo),&amp;nbsp;$00);&lt;br /&gt;&amp;nbsp;&amp;nbsp;LStartUpInfo.dwFlags&amp;nbsp;:=&amp;nbsp;STARTF_USESHOWWINDOW;&lt;br /&gt;&amp;nbsp;&amp;nbsp;LStartUpInfo.wShowWindow&amp;nbsp;:=&amp;nbsp;SW_HIDE;&lt;br /&gt;&amp;nbsp;&amp;nbsp;if&amp;nbsp;CreateProcess(nil,&amp;nbsp;PChar(LBatchFileName),&amp;nbsp;nil,&amp;nbsp;nil,&amp;nbsp;False,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IDLE_PRIORITY_CLASS,&amp;nbsp;nil,&amp;nbsp;nil,&amp;nbsp;LStartUpInfo,&amp;nbsp;LProcessInfo)&amp;nbsp;then&lt;br /&gt;&amp;nbsp;&amp;nbsp;begin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CloseHandle(LProcessInfo.hThread);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CloseHandle(LProcessInfo.hProcess);&lt;br /&gt;&amp;nbsp;&amp;nbsp;end;&lt;br /&gt;end;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mikemao/aggbug/2207377.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2011/10/11/2207377.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mikemao/archive/2011/09/28/2193893.html</id><title type="text">如何在Delphi TImageList 中使用 透明 png 图标</title><summary type="text">原文标题：How to use transparent PNG icons with Delphi ImageList 原文：http://www.aha-soft.com/faq/delphi-imagelist-png.htmQuery: &amp;quot;Embarcadero Delphi ImageList does not show transparent PNG icons correctly. How to fix it?&amp;quot;.Solution: If you want to use 32-bit (24-bit + alpha channel) PNG icons with</summary><published>2011-09-28T02:23:00Z</published><updated>2011-09-28T02:23:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2011/09/28/2193893.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2011/09/28/2193893.html"/><content type="html">&lt;p&gt;原文标题：How to use transparent PNG icons with Delphi ImageList &lt;br /&gt;原文：&lt;a href="http://www.aha-soft.com/faq/delphi-imagelist-png.htm"&gt;http://www.aha-soft.com/faq/delphi-imagelist-png.htm&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;Query: "Embarcadero Delphi ImageList does not show transparent PNG icons correctly. How to fix it?".&lt;/p&gt;&#xD;
&lt;p&gt;Solution: If you want to use 32-bit (24-bit + alpha channel) PNG icons within Delphi TImageList, you need to set the following property values for TImageList.&lt;br /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;DrawingStyle: &lt;strong&gt;dsTransparent&lt;br /&gt;&lt;/strong&gt;ColorDepth: &lt;strong&gt;cd32Bit &lt;/strong&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mikemao/aggbug/2193893.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2011/09/28/2193893.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mikemao/archive/2011/09/14/2176505.html</id><title type="text">No RemObject server templates were found under \Templates\</title><summary type="text">安装RemObjects后打开Dephi报No RemObject server templates were found under \Templates\错误解决方法： 点击开始-运行，输入regedit.exe打开注册表，在HKEY_CURRENT_USER\Software下新建一个项，名为 RemObjects，在RemObjects下面再新建一个项，名为RemObjects SDK for Delphi，最后在RemObjects SDK for Delphi下面新建一个字符串值，名为InstallDir，值为D:\RemObjects\RemObjects SDK for Del</summary><published>2011-09-14T10:09:00Z</published><updated>2011-09-14T10:09:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2011/09/14/2176505.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2011/09/14/2176505.html"/><content type="html">安装RemObjects后打开Dephi报No RemObject server templates were found under \Templates\错误&lt;br /&gt;解决方法： &lt;br /&gt;点击开始-运行，输入regedit.exe打开注册表，在HKEY_CURRENT_USER\Software下新建一个项，名为 RemObjects，在RemObjects下面再新建一个项，名为RemObjects SDK for Delphi，最后在RemObjects SDK for Delphi下面新建一个字符串值，名为InstallDir，值为D:\RemObjects\RemObjects SDK for Delphi。关掉注册表编辑器，重新打开Delphi，问题搞定！&lt;img src="http://www.cnblogs.com/mikemao/aggbug/2176505.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2011/09/14/2176505.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mikemao/archive/2011/01/15/1936459.html</id><title type="text">解决Delphi程序在非中文系统下乱码</title><summary type="text">在工程文件头加入 Windows引用在begin后加入SetThreadLocale( DWORD(Word(SORT_DEFAULT) shl 16) or DWORD(Word(SUBLANG_CHINESE_SIMPLIFIED) shl 10) or DWORD(Word(LANG_CHINESE)) );原理：设置程序的所在区域方法来自互联网，备忘~</summary><published>2011-01-15T13:32:00Z</published><updated>2011-01-15T13:32:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2011/01/15/1936459.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2011/01/15/1936459.html"/><content type="html">&lt;p&gt;在工程文件头加入 Windows引用&lt;/p&gt;&#xD;
&lt;p&gt;在begin后加入&lt;/p&gt;&#xD;
&lt;p&gt;SetThreadLocale(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD(Word(SORT_DEFAULT) shl 16) or&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD(Word(SUBLANG_CHINESE_SIMPLIFIED) shl 10) or&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DWORD(Word(LANG_CHINESE))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/p&gt;&#xD;
&lt;p&gt;原理：设置程序的所在区域&lt;/p&gt;&#xD;
&lt;p&gt;方法来自互联网，备忘~&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mikemao/aggbug/1936459.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2011/01/15/1936459.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mikemao/archive/2010/12/30/1921641.html</id><title type="text">fastmm使用</title><summary type="text">首先在下载的文件里你会找到一个文件，位置在Replacement BorlndMM DLL\Precompiled\for Delphi IDE\Performance\BorlndMM.dll，替换掉Delphi\Bin下的相应文件就可以完成对IDE的提速。 对自己编的程序的提速也非常简单，只要在.dpr工程文件里的uses部分加上FastMM4就可以了，但必须是加在第一位，还要记得设置 路径。重新编译你的程序就可以完成提速。一般情况下，感觉程序的启动速度会有提高。如果你的程序有内存泄漏的话那就会在程序关闭时弹出一个对话框告诉你你 的程序有内存泄漏，并指出相应的有内存泄漏的类。例如，我的程序</summary><published>2010-12-30T05:26:00Z</published><updated>2010-12-30T05:26:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2010/12/30/1921641.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2010/12/30/1921641.html"/><content type="html">&lt;p&gt;首先在下载的文件里你会找到一个文件，位置在&lt;br /&gt;Replacement BorlndMM DLL\Precompiled\for Delphi IDE\Performance\BorlndMM.dll，&lt;br /&gt;替换掉Delphi\Bin下的相应文件就可以完成对IDE的提速。 &lt;/p&gt;&#xD;
&lt;p&gt;对自己编的程序的提速也非常简单，只要在.dpr工程文件里的uses部分加上FastMM4就可以了，但必须是加在第一位，还要记得设置 路径。重新编译你的程序就可以完成提速。一般情况下，感觉程序的启动速度会有提高。如果你的程序有内存泄漏的话那就会在程序关闭时弹出一个对话框告诉你你 的程序有内存泄漏，并指出相应的有内存泄漏的类。例如，我的程序中用到了IntraWeb 7.1.12。就会有内存的泄漏，而且是没有法子改的。于是乎就在每次程序结束时留有一个对话框，着实郁闷。其实也是有办法解决的。 &lt;/p&gt;&#xD;
&lt;p&gt;打开FastMM4Options.inc文件。在文件的末尾添加如下代码： &lt;/p&gt;&#xD;
&lt;p&gt;{$define Release} &lt;br /&gt;{$ifdef Release} &lt;/p&gt;&#xD;
&lt;p&gt;{Specify the options you use for release versions below} &lt;/p&gt;&#xD;
&lt;p&gt;{$undef FullDebugMode} &lt;/p&gt;&#xD;
&lt;p&gt;{$undef CheckHeapForCorruption} &lt;/p&gt;&#xD;
&lt;p&gt;{$define ASMVersion} &lt;/p&gt;&#xD;
&lt;p&gt;{$undef EnableMemoryLeakReporting} &lt;/p&gt;&#xD;
&lt;p&gt;{$undef UseOutputDebugString} &lt;/p&gt;&#xD;
&lt;p&gt;{$undef LogErrorsToFile} &lt;/p&gt;&#xD;
&lt;p&gt;{$undef LogMemoryLeakDetailToFile} &lt;/p&gt;&#xD;
&lt;p&gt;{$else} &lt;/p&gt;&#xD;
&lt;p&gt;{Specify the options you use for debugging below} &lt;/p&gt;&#xD;
&lt;p&gt;{$define FullDebugMode} &lt;/p&gt;&#xD;
&lt;p&gt;{$define EnableMemoryLeakReporting} &lt;/p&gt;&#xD;
&lt;p&gt;{$define UseOutputDebugString}{$endif}&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;再编译你的程序，现在，即使你的程序有内存泄漏，FastMM也不会提醒你了。当然，要恢复也很容易，只要将上面的第一行注释掉就可以了。如下： &lt;/p&gt;&#xD;
&lt;p&gt;//{$define Release} &lt;br /&gt;&amp;#8230;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;总的来说，FastMM给我的感觉是非常好，我将我负责的两个程序全都重新编译了一下，启动速度的提高让人满意。网上有人说对使用DevExpress公司的控件组效果很明显，呵呵，我用的就是这套控件组，及时雨呀！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;FastMM对BCB6或BCB2007而言，对编译加速有非常明显的效果，建议大家去试用。有网友说原来需要6分钟编译完成的程序，使用后只要不到2分钟就完成了，还有一网友（网名：好小）更牛，原BCB中Build All 从1.5小时到2分钟不到！（见：&lt;a href="http://bbs.codegear-cn.com/viewthread.php?tid=349&amp;amp;extra=page%3D3"&gt;http://bbs.codegear-cn.com/viewthread.php?tid=349&amp;amp;extra=page%3D3&lt;/a&gt;）&lt;br /&gt;使用方法（现在最新稳定版是4.78了）:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1、解开FastMM470.zip，找到里面的FastMm470\Replacement BorlndMM DLL\Precompiled\for Delphi IDE\Performance目录下的borlndMM.dll文件，把它复制到Delphi安装目录的bin中，覆盖原文件；&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2、把FastMM470\Translations\Chinese (Simplified)目录下的FastMM4Messages.pas文件和FastMM470目录下的FastMM4.pas以及FastMM4Options.inc拷到你的项目中，在dpr文件uses后面第一个引用文件FastMM4.pas，第二个引用文件FastMM4Messages.pas；&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3、重新编译项目。&lt;br /&gt;对RAD207用户：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FastMM对rad2007也有效么？我在d7下一直用着，听说RAD2007不是已经把FastMM加进去了么？原以为新版对内存管理已有改进，不用再用FastMM了。。。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;Fastmm478对BCB2007和DELPHI2007都是有效的。2007中集成的FastMM是4.6版本。直接替换就可以了。&lt;br /&gt;对BCB用户：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于BCB用户来说，使用fastmm4.78,只要把...\Replacement BorlndMM DLL\Precompiled\for Delphi IDE\Performance目录下的borlndMM.dll文件，复制到BCB安装目录的bin中，覆盖原文件就可以了，非常方便。因为borlndMM.dll是BCB启动时需要加载的内核管理文件，因此只要替换后重启BCB,一切OK!&lt;/p&gt;&#xD;
&lt;p&gt;注意：程序修改后只MAKE恐怕还不行，最好要BUILDER ALL 一下。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;br /&gt;本文来自CSDN博客，转载请标明出处：&lt;a href="http://blog.csdn.net/hnxxcxg/archive/2008/11/18/3317457.aspx"&gt;http://blog.csdn.net/hnxxcxg/archive/2008/11/18/3317457.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/mikemao/aggbug/1921641.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2010/12/30/1921641.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mikemao/archive/2010/12/30/1921604.html</id><title type="text">Google和百度、雅虎的站内搜索代码</title><summary type="text">对于一个网站来说，使用搜索引擎来进行站内搜索往往比自己编写的站内搜索更高效，并且不占用网站服务器的资源，下面是我搜集到的几个主要搜索引擎（Google和百度、雅虎）的站内搜索代码，使用时只需要将代码里的"www.williamlong.info"替换成你的网址即可。&amp;lt;!--Google站内搜索开始--&amp;gt;&amp;lt;form method=get action="http://www.google.com/search"&amp;gt;&amp;lt;input type=text name=q&amp;gt;&amp;lt;input type=submit name=btnG value="Google 搜索"&amp;gt;&amp;lt;input type=hidden nam</summary><published>2010-12-30T05:09:00Z</published><updated>2010-12-30T05:09:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2010/12/30/1921604.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2010/12/30/1921604.html"/><content type="html">&lt;div id="artibody"&gt;&#xD;
&lt;p&gt;对于一个网站来说，使用搜索引擎来进行站内搜索往往比自己编写的站内搜索更高效，并且不占用网站服务器的资源，下面是我搜集到的几个主要搜索引擎（Google和百度、雅虎）的&lt;span &gt;站内搜索代码&lt;/span&gt;，使用时只需要将代码里的"www.williamlong.info"替换成你的网址即可。&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;!--Google站内搜索开始--&amp;gt;&lt;br /&gt;&amp;lt;form method=get action="http://www.google.com/search"&amp;gt;&lt;br /&gt;&amp;lt;input type=text name=q&amp;gt;&lt;br /&gt;&amp;lt;input type=submit name=btnG value="Google 搜索"&amp;gt;&lt;br /&gt;&amp;lt;input type=hidden name=ie value=GB2312&amp;gt;&lt;br /&gt;&amp;lt;input type=hidden name=oe value=GB2312&amp;gt;&lt;br /&gt;&amp;lt;input type=hidden name=hl value=zh-CN&amp;gt;&lt;br /&gt;&amp;lt;input type=hidden name=domains value="www.williamlong.info"&amp;gt;&lt;br /&gt;&amp;lt;input type=hidden name=sitesearch value="www.williamlong.info"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;!--Google站内搜索结束--&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;!--Baidu站内搜索开始--&amp;gt;&lt;br /&gt;&amp;lt;form action="http://www.baidu.com/baidu"&amp;gt;&lt;br /&gt;&amp;lt;input type=text name=word&amp;gt;&lt;br /&gt;&amp;lt;input type="submit" value="Baidu 搜索"&amp;gt;&lt;br /&gt;&amp;lt;input name=tn type=hidden value="bds"&amp;gt;&lt;br /&gt;&amp;lt;input name=cl type=hidden value="3"&amp;gt;&lt;br /&gt;&amp;lt;input name=ct type=hidden value="2097152"&amp;gt;&lt;br /&gt;&amp;lt;input name=si type=hidden value="www.williamlong.info"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;!--Baidu站内搜索结束--&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;&amp;lt;!--Yahoo站内搜索开始--&amp;gt;&lt;br /&gt;&amp;lt;form action="http://www.yahoo.com.cn/search"&amp;gt;&lt;br /&gt;&amp;lt;input type=text name="p"&amp;gt;&lt;br /&gt;&amp;lt;input type="submit" value="Yahoo 搜索"&amp;gt;&lt;br /&gt;&amp;lt;input type=hidden name=vs value="www.williamlong.info"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;!--Yahoo站内搜索结束--&amp;gt;&lt;/p&gt;&#xD;
&lt;p&gt;下面是Google和百度的Javascript版的&lt;span &gt;站内搜索代码&lt;/span&gt;：&lt;/p&gt;&amp;lt;!--Google站内搜索开始--&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt; &lt;br /&gt;function googlesearch () {&lt;br /&gt;var wq=document.getElementsByName("wq")[0].value;&lt;br /&gt;var link="http://www.google.com/search?domains=www.williamlong.info&amp;amp;sitesearch=www.williamlong.info&amp;amp;q="+wq;&lt;br /&gt;window.open(link); }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;input type="text" name="wq"/&amp;gt;&amp;lt;input type="submit" onclick="javascript:googlesearch()" value="Google 搜索" /&amp;gt;&lt;br /&gt;&amp;lt;!--Google站内搜索结束--&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;!--Baidu站内搜索开始--&amp;gt;&lt;br /&gt;&amp;lt;script language="javascript"&amp;gt;&lt;br /&gt;function baidusearch () {&lt;br /&gt;var wd=document.getElementsByName("wd")[0].value;&lt;br /&gt;var link="http://www.baidu.com/s?si=www.williamlong.info&amp;amp;cl=3&amp;amp;ct=2097152&amp;amp;tn=baidulocal&amp;amp;word="+wd;&lt;br /&gt;window.open(link); }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;input type="text" name="wd"/&amp;gt;&amp;lt;input type="submit" onclick="javascript:baidusearch()" value="Baidu 搜索" /&amp;gt;&lt;br /&gt;&amp;lt;!--Baidu站内搜索结束--&amp;gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/mikemao/aggbug/1921604.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2010/12/30/1921604.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/mikemao/archive/2010/12/29/1920521.html</id><title type="text">异构数据库之间完全可以用SQL语句导数据</title><summary type="text">告诉你一个最快的方法，用SQLServer连接DBF在SQLServer中执行SELECT * into bmkFROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="e:\share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk这样就可以把e:\share中的bmk.dbf表导入到Sqlserver中，速度是最快的上面这个方法DBF文件必须在服务器上，如果DBF不在服务器上，就用连接串Provider=Microsoft.Jet.OLEDB.4.</summary><published>2010-12-29T05:11:00Z</published><updated>2010-12-29T05:11:00Z</updated><author><name>毛小毛</name><uri>http://www.cnblogs.com/mikemao/</uri></author><link rel="alternate" href="http://www.cnblogs.com/mikemao/archive/2010/12/29/1920521.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/mikemao/archive/2010/12/29/1920521.html"/><content type="html">&lt;div style="margin: 4px 8px 0px"&gt;告诉你一个最快的方法，用SQLServer连接DBF&lt;br /&gt;在SQLServer中执行&lt;br /&gt;SELECT * into bmk&lt;br /&gt;FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',&lt;br /&gt;&amp;nbsp; 'Data Source="e:\share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk&lt;br /&gt;这样就可以把e:\share中的bmk.dbf表导入到Sqlserver中，&lt;br /&gt;速度是最快的&lt;br /&gt;上面这个方法DBF文件必须在服务器上，如果DBF不在服务器上，就用&lt;br /&gt;连接串&lt;br /&gt;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp;Extended Properties="dBase 5.0;";Persist Security Info=False&lt;br /&gt;SQL语句&lt;br /&gt;SELECT * into aaa IN [ODBC]&lt;br /&gt;[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;] &lt;br /&gt;from aaa&lt;br /&gt;这是直接把客户端上的DBF传上服务器的最直接方法。&lt;br /&gt;&lt;br /&gt;把压箱底的方法都告诉大家&lt;br /&gt;在Form上放一个ADOConnection,连结指向目标Access库&lt;br /&gt;比如txt文件在c:\temp\aaaa.txt&lt;br /&gt;就执行&lt;br /&gt;ADOConnection.Connected := True;&lt;br /&gt;ADOConnection.Execute('Select * Into abcd From [Text;Database=c:\temp].aaaa.txt');&lt;br /&gt;就一切Ok了,这个方法一定行的，我好不容易才研究出来的&lt;br /&gt;有了这两个例子，异构数据库之间导数据的问题就举一反三，迎刃而解了。&lt;br /&gt;&lt;br /&gt;把Excel导入到Access中,同txt类似&lt;br /&gt;select * into &amp;lt;table name&amp;gt; from [excel 8.0;database=&amp;lt;filename&amp;gt;].[&amp;lt;sheetname&amp;gt;$]&lt;br /&gt;&lt;br /&gt;我最讨厌别人用BatchMove导数据了，明明一个SQL的事情，偏要。。。&lt;br /&gt;我的目标是让大家抛弃BatchMove&lt;br /&gt;&lt;br /&gt;Provider=MSDASQL.1;Extended Properties="Driver={Microsoft Visual Foxpro Driver};SourceType=DBF;SourceDB=你的文件所在路径;" &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/mikemao/aggbug/1920521.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/mikemao/archive/2010/12/29/1920521.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
