上一页 1 2 3 4 5 6 ··· 14 下一页
摘要: 经测试,在MSSQL中用以下方法随机读取3W多条数据,只用了1-2秒。而在实际运用中,肯定是不会随机读取这么多数据的MSSQLselect id from tablename where id >= (select floor(rand() * ((select max(id) from tablename) - (select min(id) from tablename)) + (select min(id) from tablename))) order by idMYSQLselect * from tablename where id >= (select floor(r 阅读全文
posted @ 2011-04-11 16:53 冷寒生 阅读(942) 评论(0) 推荐(0) 编辑
摘要: 09年我在这个问题上折腾了大半年,还因此写了篇博文[这下该不会阻塞了吧],最初的是想实现多线程下载网页源码,但经过对HTTP协议的学习,发现只有支持断点继传的网站才用得上多线程下载,因此又把需求放在批量快速下载网页源码上,比如我同时需要访问100个网页,如果用IdHttp就头大了,Idhttp就连访问302页面也会出现异常,调试起来很麻烦。而用自己写的TWinHttp类,recv函数阻塞的问题是能解决了,但如果短时间频繁的获取网页源码,50%以上的访问都会出现connect失败和recv超时,以前很难解决的问题,这次却让我想到了一个较好的解决办法。首先,对于connect,如果连接失败就进入死 阅读全文
posted @ 2011-04-08 05:13 冷寒生 阅读(899) 评论(0) 推荐(0) 编辑
摘要: 有人说聪明的程序员用Delphi,我承认我并不聪明,虽然Delphi确实很好用,但实在是受不了Delphi的那个编译器,在编辑器中鼠标光标到处乱跑,除非需要的程序是急用,否则我的第一选择不是Delphi。有人也说真正的程序员用VC,当然,我也不得不承认自己压根儿就不是一个程序员,只是一个喜欢编程又上不了档次的准菜鸟,不过我偶尔也会拿起VC玩玩。在Delphi中要画一个界面,只需要鼠标一拖一拉就搞定了,而VC呢?让我们来画一个简单的界面吧!界面很简单,一个按钮,一个支持多行显示的文本框。首先创建一个单文档视图的MFC程序,在视图向导的最后一步中选择CFormView视图,这样便于拖拉控件。对于M 阅读全文
posted @ 2011-04-02 02:22 冷寒生 阅读(6176) 评论(0) 推荐(0) 编辑
摘要: 运行环境:VS2005, ANSI字符集void CHelloView::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 CInternetSession Sess; CHttpFile *Http = NULL; CString HtmlSource = ""; char Buf[1024]; USES_CONVERSION; Http = ( CHttpFile* ) Sess.OpenURL( "http://www.baidu.com" ); //Http->ReadString( HtmlSou 阅读全文
posted @ 2011-04-02 00:38 冷寒生 阅读(1317) 评论(0) 推荐(0) 编辑
摘要: var IP:TCnIp; i:Integer; CurIP:string;begin IP := TCnIp.Create(nil); IP.IPAddress := '192.168.0.1'; CurIP := IP.IPAddress; while CurIP <> '192.168.255.255' do begin mmo1.Lines.Add( CurIP ); CurIP := IP.NextIP( CurIP ); end; IP.Free;end;经测试,cnvcl的CnIP类占用资源严重。测试的方法为创建一个线程池,每个线程执行 阅读全文
posted @ 2011-03-29 05:58 冷寒生 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 以前关注过在socket使用http代理访问网页的问题,原理很简单,就是非代理情况下connect的是目标网页的IP和端口,而使用代理则connect代理IP和端口,连接成功后就直接send数据了。原理清楚,但一直没应用过,今天正好需要就测试了一下,结果在http代理可用,connect正常的情况下,send数据后总是返回http/1.1 400。最后在一个帖子中找到了原因所在,其实使用http代理来发送GET或POST,其包的格式与非代理的GET或POST有一些区别,区别共有两处:1.发送的包中可以不加Host ( Host: www.baidu.com )2.在GET的路径中设置访问页面的 阅读全文
posted @ 2011-03-29 05:35 冷寒生 阅读(2092) 评论(0) 推荐(0) 编辑
摘要: 以前在VC中使用过MySQL,当时是找的一个现成的C++ MySQL类。最近在Delphi中又需要操作Mysql,最初找了个封闭过的类,但已经是七八年以前的程序了,我机器上装的是MySQl5.1,使用了5.1中的libmySQL.dll(2.25MB)。连接正常、查询一个字段正常,但查询两个字段就只能获取第一个字段的值,读第二个字段的值就程序异常。没办法,又重新找了个接口,不过没有封闭,只有自己慢慢学着调用了。http://www.audio-data.de/mysql.htmlDelphi Versions: (3), (4), 5, 6, 2007, 2009, 2010.LibMySql 阅读全文
posted @ 2011-03-29 00:53 冷寒生 阅读(2588) 评论(0) 推荐(0) 编辑
摘要: //声明:IsIconic( hWnd: HWND {窗口句柄}): BOOL;IsZoomed( hWnd: HWND {窗口句柄}): BOOL; 阅读全文
posted @ 2011-03-27 21:40 冷寒生 阅读(469) 评论(0) 推荐(0) 编辑
摘要: DrawText( Canvas.Handle, PChar( s ), Length( s ), rect, DT_WORDBREAK ); 阅读全文
posted @ 2011-03-24 22:32 冷寒生 阅读(189) 评论(1) 推荐(0) 编辑
摘要: 时间很完了,但问题总算解决了。在一个程序中需要判断WebBrowser打开的页面是否加载完成,通常的做完是使用Busy属性,代码如下:while WebBrowser1.Busy do Application.ProcessMessages;这个访问对于访问纯Html的页面时是一点儿问题都没有的,但有些页面在设计时为了不影响打开速度,是让html代码优先显示,然后再运行js代码或框架代码,由于我要访问的页面中没有调用框架页面,所以没作测试。经过一夜的摸索,最终找到了解决办法:procedure TForm1.wb1ProgressChange(Sender: TObject; Progress 阅读全文
posted @ 2011-03-19 04:35 冷寒生 阅读(5833) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 14 下一页
IT知识库