- 浏览: 227831 次
- 性别:
- 来自: 深圳
最新评论
-
cheunjq:
同样的操作,为什么我的显示函数不存在,晕。
Access中使用自定义函数(菜鸟级) -
清风皓月:
void MyClass::_RunThread()这个方法有 ...
技巧:在pthread的线程函数中,使用类的非静态成员函数来执行 -
allenhooo:
提供一个java 版本:http://code.google. ...
CAB文件压缩/解压类库 -
subool:
看了一下,又google一些贴子,发现是LZ的问题,把两个lo ...
MinGW(windows下的GCC)的一个BUG:long long类型打印错误
文章列表
为了测试应用程序的健壮性,故意对正常连接的Pro*C应该程序进行了中断,从而观察它们的表现。
测试的方法为:
1、在编译Pro*C应用的时候加上cpool=no或cpool=yes,测试有连接池和没连接池的不同表现;
2、启动应用程序后等待输入,将流程挂起;
3、在数据库中查询此测试程序的SESSION:
SELECT * FROM v$session WHERE program='TestConnPool.exe';
4、生成杀掉Session的代 ...
- 2008-01-12 17:18
- 浏览 1291
- 评论(0)
ORACLE中如果使用了连接池,则v$session中显示的是“物理连接数+逻辑连接数”。 可以通过以下查询区分连接池的连接和非连接池的连接:--连接池连接:SELECT * FROM v$session WHERE program='TestConnPool.exe' AND server='DEDICATED';--Server属性标记为DEDICATED(专用) 的连接为连接池的连接,代表了物理连接数。--逻辑连接:SELECT * FROM v$session WHERE program='TestConnPool.exe' AND server='PSEUDO';--Se ...
- 2008-01-12 16:43
- 浏览 1174
- 评论(0)
先贴代码:
#include <stdio.h>template <int v>struct Int2Type...{ enum
- 2008-01-09 22:49
- 浏览 819
- 评论(0)
测试发现,Pro*C中,不管ORACLE数据库中的number字段是多大,只要字段的值大于绑定的变量所能够容纳的范围,就会出现“ORA-01455: 转换列溢出整数数据类型”。
不过,Pro*C不支持long long(64位)类型的绑定。当number字段的值大于2147483647或小于- 2147483648时,建议使用double类型来绑定,然后再将double类型转换成long long类型。
double temp;
long long value;
//… ...
- 2008-01-09 16:58
- 浏览 995
- 评论(0)
我们知道,使用宏可以实现条件编译:
#if 1 //do something#else //do something else#endif
使用模板也能够达到类似的效果:
#include <stdio.h>
- 2008-01-09 14:39
- 浏览 1583
- 评论(0)
今天遇见一个超郁闷的BUG,现象非常奇怪:delete pointer; 删除一个指针的时候程序发生core dump,或者在此处挂死。 从原理上分析,new出来的一块内存,会在内存的头或者尾处加上一个标记,说明块内存的大小。 我猜想,一定是指针越界,导致了开始或者末尾的这块标记被破坏,所以delete发生挂死。 检查了若干次后,也没发现指针越界的情况。 而且单独写了一个程序来故意破坏new出来的内存块的开头和结尾,结果指针越界的时候,程序立即core dump,说明Linux操作系统明确禁止了越界的指针。 实在没办法,采用逐行注释的办法,最终定位到一个一行代码上。检查这 ...
- 2008-01-05 19:40
- 浏览 1396
- 评论(0)
由于项目中需要用到MD5算法,于是在网上找了好几个md5算法的源码文件,结果接口各不相同,很是头疼。翻翻Linux的/usr/include目录,发现/usr/include/openssl/下提供了md5.h,于是写了个小代码测试了一下:
#include <stdio.h>#include <openssl/md5.h>#include <assert.h>#include <string.h>
- 2008-01-02 14:41
- 浏览 4441
- 评论(0)
上文提到从v$Session查看连接数,发现使用连接池后莫名增加了MIN个连接(MIN为连接池的最小连接数)。但是实际上,v$session中看见的连接数是逻辑连接数,并非ORACLE的物理连接。ORACLE的会话与连接甚至可以不相关,允许存在没有物理连接的会话。 因此,仅仅从v$session视图看连接数是不准确的,至于从什么地方可以看见客户端与ORACLE的确切连接数。目前还没找到。PRO*C的连接池特性,也只有通过性能测试来确定其有效性了。 此外,PC文件中一旦使用连接池的选项进行预编译后,就算所有的连接都关闭,连接池也仍然存在,只有等到进程退出,连接池才会消失 ...
- 2007-12-28 15:26
- 浏览 942
- 评论(0)
最近尝试了一下Oracle9i 中 PRO*C的连接池功能,结过越搞越糊涂:1、首先,在proc的编译参数中加上以下选项: threads=yes 使用多线程 cpool=yes 使用连接池 cmax=6 最多6个连接 cmin=4 最少4个连接 cincr=1 每次增加一个连接 ctimeout=2 删除不活动的连接的时间,2秒内不活动就删除 cnowait=1 连接不上的时候的重连次数2、在程序里面写了一个最简单的连 ...
- 2007-12-26 19:15
- 浏览 1447
- 评论(0)
公司的业务系统中存在一个大的日志表,表大约是这样:create table log( logtime date, -- PK username varchar2(20)); 现有需求如下:统计日志表中,两小时内使用过系统的用户在三天内的日志数。 最初编写的查询如下:
WITH result1 AS ( SELECT DISTINCT username FROM log WHERE logtime>=sysdate - 1
- 2007-12-20 21:33
- 浏览 2776
- 评论(0)
真没想到在C++领域居然有那么博学的人!!出处:http://dev.csdn.net/article/56/56334.shtm
C++资源之不完全导引 [上] 撰文/ 曾毅 陶文 最后更新:2004年6月11日 声明: .本文2004年5月首发于《CSDN开发高手》,版权归该杂志与《程序员》 ...
- 2007-12-19 13:59
- 浏览 744
- 评论(0)
C标准库提供的文件函数fread和fwrite的原型为:
size_t fread( void *buffer, size_t size, size_t count, FILE *stream );size_t fwrite( const void *buffer, size_t size, size_t count,
- 2007-12-19 11:33
- 浏览 2326
- 评论(0)
俺电脑上装的VS2005,一次查cl.exe的帮助文档的时候,发现里面有个/doc的选项,可以将注释生成文档。于是小小测试了一下: cl.exe /doc"obj/MyClass.xdc" /Fo"obj/MyClass.obj" src/MyClass.cpp 源码里面以///开始的注释后的内容都会被提取出来当成文档,具体的标识与C#相同,如:/// <summary>/// 作为文档的注释/// </summary>class MyClass{}; 生成的xdc文件实际上是一个utf-8编码的XML文件,可 ...
- 2007-12-12 17:00
- 浏览 2189
- 评论(0)
因为想尝试使用INTEL CPU的RDTSC指令来为程序计数,所以查阅了相关资料,尝试后发现GCC下使用RDTSC指令不能获得正确的结果,于是想看看C的代码编译成汇编的样子: GCC下得这样: g++ -o main.s main.cpp -S 微软的cl编译器得这样: cl.exe /FAs main.cpp GCC产生的汇编是AT&T格式,微软的是INTEL格式。从注释的角度说,微软的CL生成的汇编要贴心得多,源码和行号的信息都在里面,一目了然。 汇编当然是看不懂的了,比如CL中使用rdtsc,为什么指令返回的结果存放在EDX:EAX中,最后还能作为函数 ...
- 2007-12-12 10:14
- 浏览 905
- 评论(0)
在偶然一次执行Oracle 9i的left outer join查询时,发现了一些匪夷所思的问题,在此贴出来和大家讨论一下。
先创建一些表和记录来模拟当时的情况:
create table temp_test1
(
a number(10)
);
INSERT INTO temp_test1 VALUES(1);
INSERT INTO temp_test1 VALUES( ...
- 2007-11-07 17:44
- 浏览 983
- 评论(0)