- 浏览: 793692 次
- 性别:
- 来自: 大连
最新评论
-
dashengkeji:
1a64f39292ebf4b4bed41d9d6b21ee7 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
zi_wu_xian:
PageOffice操作excel也可以设置表格的行高列宽,并 ...
使用POI生成Excel文件,可以自动调整excel列宽等(转) -
wanggang0321:
亲,我在pptx(office2007以上版本)转pdf的时候 ...
JODConverter]word转pdf心得分享(转) -
xiejanee:
楼主:你好!我想请问下 你在代码中用DOMDocument* ...
Xerces-C++学习之——查询修改XML文档 (转)
文章列表
数据库事务和锁(转)
- 博客分类:
- 数据库
简述
关系型数据库有四个显著的特征,即安全性、完整性、并发性和监测性。数据库的安全性就是要保证数据库中数据的安全,防止未授权用户随意修改数据库中的数据,确保数据的安全。在大多数数据库管理系统中,主 ...
Oracle事务 行级锁 保存点 回滚 提交(转)
- 博客分类:
- 数据库
一般事务(DML)即数据修改(增、删、改)的事务事务会将所有在事务中被修改的数据行加上锁(行级锁),来阻止其它人(会话)同时对这些数据的修改操作。当事务被提交或回滚后,这些数据才会被释放锁。
举个例子:当A操作一条数据N1后,暂未提交事务 ,此时B又上来操作同一条数据N1,这时的情况是:1、所有除A以外的人看不到被A所修改后的数据2、B会处于等待状态,直到A提交或回滚了针对这条数据的修改(这也就是行级锁的概念)3、当A提交事务后,所有人可以看到被A修改后的数据,看不到B修改后的数据。但B能看到自己修改后的数据(与A一样,因为B还未提交事务)。4、当B提交事务后,所有人可以看到被B修改后的数据 ...
ORACLE数据库事务隔离级别 (转)
- 博客分类:
- 数据库
事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度。
两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题:
1、幻想读:事务T1读取一条指定where条件的语句,返回结果集。此时事务T2插入一行新记录,恰好满足T1的where条件。然后T1使用相同的条件再次查询,结果集中可以看到T2插入的记录,这条新纪录就是幻想。
2、不可重复读取:事务T1读取一行记录,紧接着事务T2修改了T1刚刚读取的记录,然后T1再次查询,发现与第一次读取的记录不同,这称为不可重复读。
3、脏读:事务T1更新了一行记录,还未提交所做的修改,这个T2读取了更新后的数据,然后T1执行 ...
脏读、幻读、不可重复读
- 博客分类:
- 数据库
脏读(Drity Read):某个事务已更新一份数据,另一个事务在此时读取了同一份数据,由于某些原因,前一个RollBack了操作,则后一个事务所读取的数据就会是不正确的。
不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。
幻读(Phantom Read):在一个事务的两次查询中数据笔数不一致,例如有一个事务查询了几列(Row)数据,而另一个事务却在此时插入了新的几列数据,先前的事务在接下来的查询中,就会发现有几列数据是它先前所没有的。
在MySQL中,实现了这四种隔离级别,分别有可能产生问 ...
用gtest测试类的私有成员
- 博客分类:
- 测试
使用gtest、或者cppunit之类的框架编写单元测试代码,一个最常见的问题是对类私有成员的测试与验证。理想情况下,我们希望在测试中,类中所有的数据与方法都是可以访问的;而在产品代码中,只暴露实现定义好的接口。
gtest官方文档中,也提到了对私有成员的处理,方法不外乎两种:一是使用friend关键字,骗取信任得以通行;二是重构采用Pimpl模式,公共类中只暴露接口,而实现类中暴露所有细节(public),测试时包含实现类即可。
但这两个方法都试了一下,觉不太方便。
使用friend关键字gtest提供了一个FRIEND_TEST的宏,用来将一个test声明为产品类的友元。其缺点是显 ...
gcov输出文件路径问题(转)
- 博客分类:
- 测试
gcov是和gcc结合使用的测试代码覆盖率的一个工具(profiler),可用于发现代码的瓶颈。可以做到(使用gcov最好不要优化编译): 1.每一行代码运行的次数 2.那些代码执行了 3.没一节代码所用的时间 gcov会创建 ...
C/C++代码覆盖工具gcov与lcov入门
- 博客分类:
- 测试
代码覆盖率——gcov lcov的使用
2008-07-25 15:57
一、关于gcov工具gcov伴随gcc 发布。gcc编译加入-fprofile-arcs -ftest-coverage 参数生成二进制程序,执行测试用例生成代码覆盖率信息。1、如何使用gcov用GCC编译的时候加上-fprofile-arcs -ftest ...
C/C++代码覆盖工具gcov与lcov入门
- 博客分类:
- 测试
gcov是一个可用于C/C++的代码覆盖工具,是gcc的内建工具。下面介绍一下如何利用gcov来收集代码覆盖信息。想要用gcov收集代码覆盖信息,需要在gcc编译代码的时候加上这2个选项 “-fprofile-arcs -ftest-coverage”,把这个简单的程序编译一下
gcc -fprofile-arcs -ftest-coverage hello.c -o hello
编译后会得到一个可执行文件hello和hello.gcno文件,当用gcc编译文件的时候,如果带有“-ftest-coverage”参数,就会生成这个.gcno文件,它包含了程序块和行号等信 ...
Linux下gcov和lcov代码覆盖率分析方法
- 博客分类:
- 测试
gcov是Linux下GCC自带的一个C/C++代码覆盖率分析工具
使用方法:在gcc或者g++后面添加参数 -fprofile-arcs -ftest-coverage
注意:-fprofile-arcs -ftest-coverage必须同时在编译器和链接器上设置,(makefile里面可以加在 CFLAGS 和 LDFLAGS上),如果连接的时候出现undefined reference to `__gcov_init' 错误,则还要加上-lgocv
编译成功后运行编译好的程序,然后退出程序。程序会在当前目录下生成*.gcda文件。
然后使用 gcov *.c 或者gcov ...
select for update(转)
- 博客分类:
- 数据库
Select …forupdate语句是我们经常使用手工加锁语句。通常情况下,select语句是不会对数据加锁,妨碍影响其他的DML和DDL操作。同时,在多版本一致读机制的支持下,select语句也不会被其他类型语句所阻碍。
借助for update子句,我们可以在应用程序的层面手工实现数据加锁保护操作。本篇我们就来介绍一下这个子句的用法和功能。
下面是采自Oracle官方文档《SQLLanguage Reference》中关于for update子句的说明:(请双击点开图片查看)
1 前言
数据库大并发操作要考虑死锁和锁的性能问题。看到网上大多语焉不详(尤其更新锁),所以这里做个简明解释,为下面描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求,也可以理解为T1为一个线程,T2 为另一个线程。T3,T4以此类推。下面以SQL Server(2005)为例。
2 锁的种类
共享锁(Shared lock)。
例1:
----------------------------------------
T1: select * from table (请想象它需要执行1个小时之久,后面的sql语句请都这么想象)
T2: ...
自己设计C++完善的异常处理类(转)
- 博客分类:
- c/c++
如何写一个异常处理类是一个不太容易的事情,最近刚好接触了一些不错的代码,看到了一些技巧,这里和大家分享一下。
一个相对完善的异常处理类(以及附加的一些东西)应该能够处理下面的一些功能:
1) 能够方便的定 ...
windows 配置oracle
- 博客分类:
- 数据库
Oracle 创建表空间和用户
一、在Windows系统下, 请先点击“开始”,然后点“运行”,输入cmd并点击“确定”,打开命令行窗口输入以下命令:
sqlplus /nolog
回车后,将出现提示符 SQL>
这时输入conn / as sysdba
一般即可登录,如果失败的话,可以试一下用conn sys/sys用户的密码 as sysdba来重试一下
接下来,我们看看您当前的数据库文件一般都是放在哪里的:
select name from v$datafile;
windows下可能看到的结果如下:
SQL> ...
"(0x80040E37): [DB2/NT64] SQL0204N "<username>.DUAL" is an undefined name. SQLSTATE=42704" when click "Help - System Information"
Technote (troubleshooting)
Problem(Abstract)
User click "Help - System Information". Use
commit rollback
- 博客分类:
- 数据库
从SQL语言的分类谈COMMIT和ROLLBACK的用法 从功能上划分,SQL语言可以分为DDL,DML和DCL三大类。
1. DDL(Data Definition Language) 数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 ; CREATE---创建表 ALTER--- ...