摘要: uid为重复关键字select * from TableName where [uid] in (select [uid] from TableName group by [uid] having count([uid])>1) and id not in (select min(id) from TableName group by [uid] having count([uid])>1)delete from TableName where [uid] in (select [uid] from TableName group by [uid] having count([ui 阅读全文
posted @ 2011-04-16 00:42 冷寒生 阅读(153) 评论(0) 推荐(0) 编辑
摘要: unit uThreadPool;{ aPool.AddRequest(TMyRequest.Create(RequestParam1, RequestParam2, ...)); }interfaceuses Windows, Classes;// 是否记录日志// {$DEFINE NOLOGS}type TCriticalSection = class(TObject) protected FSection: TRTLCriticalSection; public constructor Create; destructor Destroy; override; // 进入临界区 pro 阅读全文
posted @ 2011-04-15 12:42 冷寒生 阅读(966) 评论(0) 推荐(0) 编辑
摘要: procedure ThreadTest;stdcall;var Handles:TWOHandleArray; //Handle:THandle; Test:TTest; i:Integer;begin for i := 0 to 10 do begin Test := TTest.Create(False); Handles[i] := Test.Handle; end; WaitForMultipleObjects( 11, @Handles, True, INFINITE ); Form1.mmo1.Lines.Add( '123' );end;procedure TF 阅读全文
posted @ 2011-04-14 12:10 冷寒生 阅读(3230) 评论(0) 推荐(0) 编辑
摘要: 用TThread以数组的方式做了个线程池,但在TThread中需要累加一个数值,如果未使用互斥量的话,那个数值可能一直累加不上去。分别参考了http://www.cnblogs.com/railgunman/archive/2010/11/06/1870867.html和http://www.cnblogs.com/del/archive/2009/02/13/1390295.html,可以通过Win32函数CreateMutex和使用Delphi的TMutex来实现。一、CreateMutex实现方法1. 首先在主窗体中创建一个全局变量hMutex:THandle;2. 接着分别在主窗体的C 阅读全文
posted @ 2011-04-14 01:14 冷寒生 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 导入数据时,使用默认选项,会丢失主键、约束、默认值等属性,按如下步骤操作:-->导出向导 -->选择数据源 -->选择目的 -->指定表复制或查询:不要使用默认选项,选择“在SQL Server数据库之间复制对象和数据” -->选择要复制的对象:在本页中根据需要选择相应的开关项,对于列约束,必须选择“扩展属性”,若去掉“复制所有对象”,可以选择你要导出的表或对象 -->其余按默认步骤即可 下面是详细流程:1、打开本地企业管理器,先创建一个SQL Server注册来远程连接服务器端口SQL Server。步骤如下图:图1:2、弹出窗口后输入内容。"总 阅读全文
posted @ 2011-04-13 09:57 冷寒生 阅读(1161) 评论(0) 推荐(0) 编辑
摘要: static size_t geturl_callback( void *ptr, size_t size, size_t nmemb, void *stream ){ int nsize = size * nmemb; std::string *strdata = (std::string*) stream; if (strdata) { strdata->append( (const char*)ptr, nsize ); } return nsize;}若不返回每次接收的数据大小,回调函数只会执行一次,然后直接跳出回调函数,导致HTTP接收失败。不过奇怪的是,如果将接收的数据写入文 阅读全文
posted @ 2011-04-13 07:40 冷寒生 阅读(2474) 评论(0) 推荐(0) 编辑
摘要: VC:.hextern "C" _declspec(dllexport) bool GetUrl( const char *url, const char *savepath );Delphi:function GetUrl( Url:PChar; SavePath:PChar ):Boolean;cdecl external 'http.dll' name 'GetUrl'; 阅读全文
posted @ 2011-04-12 22:31 冷寒生 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 用libcurl的代码直接在exe中运行没丝毫问题,但一放到dll中就问题百出,先是编译出的dll在depend中提示缺少msjava.dll,接着不管在debug或release下调试都提示“堆被损坏”,差点儿被整崩溃了,最后的解决办法让人非常之惊讶!以下引用自http://hi.baidu.com/yhustc/blog/item/04f74c1b073da5d1ac6e75d3.html/cmtid/ba14620382936683d53f7caf昨天调程序,recvfrom接收UDP数据,修改了一下缓冲区,将数据填进来,然后程序结束时始终报这个异常。不管用Release还是Debug, 阅读全文
posted @ 2011-04-12 22:13 冷寒生 阅读(4107) 评论(0) 推荐(0) 编辑
摘要: libcurl真是个好东西,不过我以前C/C++学得太不扎实,以致想写个返回字符串的函数都为难。由于不同网页的大小不一,有可能有的网页只有十来K,有的网页却有200多K,如果分配一个200多K的静态变量,这样又太不划算了,何况还没测试频繁分配这样大的静态变量会有什么后遗症,所以只好将下载的网页源码保存到文件了。下面是一个最简单的用libcurl库获取网页源码并保存到文件的实例:#include <io.h>#include "curl/curl.h"#pragma comment(lib, "ws2_32.lib")#pragma comme 阅读全文
posted @ 2011-04-12 18:19 冷寒生 阅读(4273) 评论(0) 推荐(0) 编辑
摘要: 貌似以前使用过cUrl,不过没读过源码,记得以前到是看过wGet的源码,不过那个程序是单线程的。这次无意中发现cUrl的源码居然有Windows版的,到http://curl.haxx.se/下了个最新版的源码下来,源码是用VC6编译的,我在VS2005下重新进行编译,居然只有一个警告。cUrl的实现代码是放在动态库中,将动态库以静态方式编译生成libcurl.lib,然后将cUrl源码目录下的“include/curl”文件夹复制到自己的项目下(如图1)。图1接下来就可以直接调用curl库了,下面是一个网上找来的简单例子:#include "curl/curl.h"#pr 阅读全文
posted @ 2011-04-12 05:59 冷寒生 阅读(4886) 评论(0) 推荐(0) 编辑
IT知识库