正在加载...
 

推荐文章

  • 共30文章
  • 1
  • 2
  • 3
  • >
SOCI:一个有趣的C++通用数据库访问库  

今天在 sf.net 上发现了一个有趣的C++数据库访问库:SOCI,它对数据库的封装是我从来没有见过的。它独特在哪里呢?请看下面的代码:

SOCI示范调用代码

怎么样,很有意思吧,看起来就好像SQL语句被内嵌在C++代码里一样。

学习了一下这个库的代码,它的结构非常巧妙。具体的实现大家可以去它的网站(http://soci.sourceforge.net)上下载源代码仔细研究,我在这里把它的结构图贴出来,从这图里也能初步地一窥端倪:

 SOCI结构框图

SOCI封装了对Oracle、Postgresql、MySQL、ODBC数据源、SQLite 3、Firebird的访问。

不过很遗憾,它对主流数据库特性的支持略有不足,这一点成为小小的遗憾:

Supported Features

Oracle PostgreSQL MySQL SQLite3 Firebird ODBC
Binding by Name YES YES (>=8.0) YES YES YES YES
Dynamic Binding YES YES YES YES YES YES
Bulk Operations YES YES YES YES YES YES
Transactions YES YES YES (with servers that support them, usually >= 4.0) YES YES YES
BLOB Data Type YES YES NO NO YES NO
RowID Data Type YES YES NO NO NO NO
Nested Statements YES NO NO NO NO NO
Stored Procedures YES YES NO (but stored functions, YES) NO YES NO

我正在尝试借鉴它的结构,在它的基础上加强对SQL Server 2000、SQLite特性的支持,做一个对我来说更实用的库。

浏览数(512) | 评论数(0) | 2007-01-31
一段很有用的话  

《Microsoft SQLServer 7 性能优化》里面的一段很有用的话:

 1. 记录下每一件事

2. 一次只做一个改变
一 次只做一个改变是一个好主意,记录下所进行的改变至关重要。这样做,可以让你确定哪个改变改进了系统的性能,哪个改变使系统性能退化。当然,我们知道这个 建议通常遵循起来很困难,如果性能已经退化到一个危险的状态,通常使用我们称之为“强制方法”的手段是十分必要的,这种方法同时升级多个部件。通过一次升 级多个组件,你有更大的机会改进性能,但却不会获知究竟是什么事情导致了问题。强制方法也许最终产生由两个或多个相互抵消部分组成的结果,从而根本没有使 性能改进。

3. 不必惊慌
性能问题很容易逐步升级并最终变为紧急事件,然而,只有保持冷静,才能避免代价昂贵的错误。有时最好远离问题几个小时,休息一会儿,以免再犯错误,增加问题的严重性。如果需要,要勇于寻求帮助。承担处理一个你没做好准备的问题会带来更多的问题和麻烦。
这里是一些帮助你度过危机的技巧:
? 不要惊慌。即使其他人已经变得过于激动,你自己也要沉住气。
? 核实问题。不要仅仅依赖别人的讲述,许多事情需要自己判断。
? 小心谨慎。急急火火地解决问题往往导致比原来的问题更糟糕的错误。
? 在缺少睡眠或没有睡觉的情况下,不要工作;否则,不知道将发生什么灾难。最好在你
反应灵敏并且能全神贯注思考的时候解决问题。
? 记录下每一件事,最终这些文档可能会帮助你。

4. 勇于寻求帮助
有 时性能问题会使你陷入困境,而你自己无法解决。如果发生这种情况,不要害怕召集外面的专家。性能问题很难解决,也许需要一些依靠你自己无法安全实现的解决 方案。通过借助性能专家的经验,你极有可能不仅方便地解决了出现的问题,而且还学习了许多相关知识。寻求别人的帮助并不是软弱的表现,而是一个明智之举。

浏览数(475) | 评论数(0) | 2007-01-12
在 OpenBSD 上安装 Apache 2.2.3  

作者:辛亚平
日期:2006年12月18日

编译选项:

./buildconf
./configure --with-mpm=worker \
--enable-cache \
--enable-disk-cache \
--enable-mem-cache \
--enable-file-cache \
--enable-nonportable-atomics \
--enable-mods-shared=most \
--prefix=/usr/local/apache.org/httpd

?

浏览数(488) | 评论数(0) | 2006-12-18
在 OpenBSD 4.0 上安装 PostgreSQL 8.2.0  

作者:辛亚平
日期:2006年12月18日

# groupadd postgresql
# useradd -g postgresql postgres
# passwd postgres
Changing password for user postgres.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

# cp postgresql-8.2.0.tar.gz /tmp/
# cd /tmp/
# chmod +x postgresql-8.2.0.tar.gz
# tar zxvf postgresql-8.2.0.tar.gz
# cd postgresql-8.2.0
# ./configure --prefix=/usr/local/pgsql
# gmake
# gmake install
# mkdir /var/database/pgsql/data
# chown -R postgres /var/database/pgsql/data

# su postgres
$ initdb -D /var/database/pgsql/data
ksh: initdb: not found
$ ./initdb -D /var/database/pgsql/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale C.
fixing permissions on existing directory /var/database/pgsql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 40
selecting default shared_buffers/max_fsm_pages ... 28MB/179200
creating configuration files ... ok
creating template1 database in /var/database/pgsql/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.
Success. You can now start the database server using:
    ./postgres -D /var/database/pgsql/data
or
    ./pg_ctl -D /var/database/pgsql/data -l logfile start
$ exit
#

# su postgres
$ /usr/local/pgsql/bin/postmaster -D /var/database/pgsql/data &
[1] 29454
$ LOG:  database system was shut down at 2006-12-16 17:57:32 CST
LOG:  checkpoint record is at 0/42C210
LOG:  redo record is at 0/42C210; undo record is at 0/0; shutdown TRUE
LOG:  next transaction ID: 0/593; next OID: 10820
LOG:  next MultiXactId: 1; next MultiXactOffset: 0
LOG:  database system is ready
$ /usr/local/pgsql/bin/createdb XoopsDB1
CREATE DATABASE
$ exit
#

浏览数(446) | 评论数(0) | 2006-12-18
在 OpenBSD 上安装一些库  

作者:辛亚平
日期:2006年12月18日

# pkg_add -B /usr/local/autoconf autoconf-2.60p0
# wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
# cp cronolog-1.6.2.tar.gz /tmp/
# cd /tmp/
# chmod +x cronolog-1.6.2.tar.gz
# tar zxvf cronolog-1.6.2.tar.gz
# cd cronolog-1.6.2
# ./configure --prefix=/usr/local/cronolog
# make
# make install
# cd ..
# rm -rf cronolog-1.6.2

# wget ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
# cp jpegsrc.v6b.tar.gz /tmp/
# cd /tmp/
# chmod +x jpegsrc.v6b.tar.gz
# tar zxvf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --prefix=/usr/local/jpeg-6b --enable-static --enable-shared
# make
# strip rdjpgcom wrjpgcom .libs/{cjpeg,djpeg,jpegtran}
# mkdir -p /usr/local/jpeg-6b/{bin,include,lib,man/man1}
# make install
# cp jversion.h /usr/local/jpeg-6b/include
# cd ..
# rm -rf jpeg-6b

# cd /var/ftp/pub/database/BerkeleyDB/
# cp db-4.5.20.tar.gz /usr/local/
# cd /usr/local/
# chmod +x db-4.5.20.tar.gz
# tar zxvf db-4.5.20.tar.gz
# rm db-4.5.20.tar.gz

# chmod +x libpng-1.2.14-no-config.tar.gz
# tar zxvf libpng-1.2.14-no-config.tar.gz
# cd libpng-1.2.14
# cp scripts/makefile.openbsd makefile
# make
# make install
# make clean
# cd ..
# rm -rf libpng-1.2.14

# cd /var/ftp/pub/lib/
# cp zlib-1.2.3.tar.gz /tmp/
# cd /tmp/
# chmod +x zlib-1.2.3.tar.gz
# tar zxvf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
# ./configure --prefix=/usr/local/zlib
# make
# make install
# make clean
# cd ..
# rm -rf zlib-1.2.3

# wget http://curl.haxx.se/download/curl-7.16.0.tar.gz
# cp curl-7.16.0.tar.gz /tmp/
# cd /tmp/
# chmod +x curl-7.16.0.tar.gz
# tar zxvf curl-7.16.0.tar.gz
# cd curl-7.16.0
# ./configure --prefix=/usr/local/curl
# make
# make install
# make clean
# cd ..
# rm -rf curl-7.16.0

浏览数(483) | 评论数(0) | 2006-12-17
把握机会  

用手去接树上掉下的一个苹果,哪怕你的手曾经离苹果只有半厘米,如果没有及时再往前移动半厘米,最终的结果还是没有接到。和你没有伸出手去的结果是完全一样的。

机会稍纵即逝,机会来临的时候没有抓住,和没有机会的结果是一样的。

浏览数(482) | 评论数(0) | 2006-12-04
亲爱的,整整四年了……  

作者:辛亚平
日期:2006年11月16日

2002年11月16日,改变我和她命运的那一天……在这一天,寒冷的北京深秋, 我遇见了她,她遇见了我。记得那一天,北京好冷好冷,而我穿得略显单薄,她,一身俊俏的风衣,一头俏丽的长发,一脸温婉的笑容,出现在北京西直门地铁站C 口,局促不安的我向她投去羞涩而炙热的目光……

从此,两个原本素不相识的人,结束了在北京孤帆只影的漂泊,两颗心在向彼此的靠近中找到了归属。

这四年,非常不容易的四年,一路风雨,我们相濡以沫一路走来,一起认真对面对生活中的一切,认真面对生活中的每一天,而我们也得到了生活格外的眷顾,虽然日子过得有几分艰辛,但每一天心灵都在感受着充实和快乐。我们已经互相融入了对方的生命中了。

今 天,我们又一起走过西直门地铁站C口,又一次刻意去路过曾经到过的许多地方,一路手拉手走着,脸上始终是幸福的微笑。我们就是这样的一对伴侣,无论到任何 时候,都会处于热恋的状态,永远也不会让我们的热恋降温。虽然我不是个擅长送她鲜花与情诗的人,但是,只要有她在,只要我也在,任何一件生活琐事都可以变 得浪漫。浪漫对于我们来说,已经不是小男生和小女生玩的无聊游戏,而是有意无意间一起诠释的生活要素,是一种生活的态度。

让我以虔诚的心,记录下今天,2006年11月16日。实际上,每年的这一天我们都会有小小的庆祝。每一年,到了这一天,无论我多么忙,都会推掉所有的应酬与工作,以一个温馨的夜晚来和她一起庆祝我们第一次、第一眼见到对方的这个日子。

秋夜宴,香茶一盏歌一遍,再拜陈三愿:

一愿爱妻千岁,

二愿吾身常健,

三愿如同梁上燕,岁岁常相见!

浏览数(442) | 评论数(0) | 2006-11-16
一个不错的免费UML建模软件:StarUML  

今天体验了一下StarUML,一个非常优秀的免费UML建模软件。它的网址如下:

http://www.staruml.com
http://staruml.sourceforge.net/en/

这是韩国人用Delphi开发出来的,可以说是目前最优秀的免费UML建模软件。免费软件能搞成这样,已经很不错了。

这是StarUML的使用截屏:

这是我用StarUML画的一张用例图:

感觉StarUML有比Visio方便的地方。不过我毕竟是StarUML的初级使用者,就先不在这里介绍它的特点了,免得班门弄斧。

浏览数(1627) | 评论数(0) | 2006-11-08
我看微软问题  

作者:辛亚平

日期:2004年08月15日

出处:应用之美,在于药到病除

网址:http://xinsoft.blogchina.com/51799.html

 

有感于博客中国论坛(http://forum.blogchina.com)里面发表的一些反微软的文章,其中不少文章真让人不敢苟同。因此亮出我自己的观点:

 


1、微软并不可恶,可恶的是盗版。

微软的东西本来就不便宜,但是为什么微软的视窗操作系统在中国这么普及?盗版功不可没!因为盗版的存在,使得绝大多数中国人使用Windows的费用近乎于零,再加上微软的产品本来就那么好用,功能对于绝大多数计算机用户来说也绝对说得过去,你说微软的操作系统在中国能不普及吗?

微软并没有逼着你去盗版,不去盗微软的Windows难道会死人吗?但是我们非要去盗,于是大家使用Windows的成本就低得可以忽略不计了,而Linux或者其它的操作系统和Windows相比,其价格优势就不存在了,比尔盖茨能不偷着乐吗?其实Linux虽然不像Windows那么好用,但是如果你真的有心用Linux的话,还是能用下去的,现在Linux的桌面做得好多了,用Linux办公的话,对大多数人来说虽然肯定会不习惯,但是磕磕绊绊的倒也能用,用熟了也不错,但是广大计算机用户就是不买Linux的帐,你能拿他们怎么样?

可笑的是这里的很多人,肩上扛着反微软的大旗,却用着盗版的Windows——虽然对微软口诛笔伐,实际行动上却在为微软的垄断事业添砖加瓦。我觉得这些人远远没有那些直接承认“我喜欢微软”的人可爱。

2、国内反微软缺乏实际行动

有人问方博士用的是什么操作系统,其实我觉得这个问题倒不是很重要的。如果我要发问的话,我要问方博士公司里的员工用的都是什么操作系统。光看方博士一个人用的操作系统,能得出什么结论呢?有什么意义呢?像方博士这样的成功人士用的大多是品牌机或者行货笔记本,这些机器大多安装了正版Windows,但是普通员工的情况就比较说明问题。据说华为规定员工使用Linux来办公,但是国内其它的企业,有几家有这样的魄力呢?就算企业领导有这种魄力,国内的企业有几家员工计算机素质能高到这种程度能够在企业内普及Linux?

3、和微软竞争,要先学习微软

在这一点上我非常赞同李向东的观点。下面引述他的观点:

引用:
都在攻击微软,却不知道该真正了解微软的成功之道。
其实微软的成功很简单:
1、微软抓住了pc和互联网的时代,是时代的产物
2、微软创造了软件产业的盈利模式。
3、微软懂得适时地合作,适时地放弃。
4、微软懂得利用自己的领先优势。
5、微软懂得去集成创新(微软话语,我的看法好一点是懂得学习别人的先进之处)
6、微软始终都围绕着自己的核心:操作系统、办公软件、开发工具并将这些软件的应用范围不断扩大。


4、要用市场行为来打败微软,而不是其它的手段

微软能够在操作系统领域占据这么大的份额,也是当年自由竞争的结果。市场选择了Windows,市场最有发言权,因为市场代表了用户的心声。你能否认市场代表了用户的心声吗?
那么,要想打败微软,最终还是需要比Windows更优秀的产品,加上比微软公司更成功的运作,才能打败微软。

前几年在Linux作为一种是时尚名词火爆起来的时候,国内有些计算机厂家为了标新立异,在计算机中预装Linux,结果呢?绝大多数用户买回去以后都格式化硬盘重新装回他们所熟悉的Windows。这种哗众取宠的行为有意思吗?
真的要打败微软的话,首先你就要推出确实比Windows好用的产品,无论从功能还是从易用性上,都比Windows强。这样的话,才能被广大计算机用户真正地接受。靠几个人在这里骂微软,靠政府采购,能扭转广大计算机用户的观念吗?这里有多少人能站出来说:“我反微软,我不用Windows”??

微软当年在市场上打败了其余操作系统才换来了今天的霸主地位,要打败微软同样也要在市场上战胜微软。否则,纵使你将微软骂个狗血淋头,于国于民有什么实际意义?对微软能有什么撼动作用?

5、Windows是垃圾还是宝贝

看待一个产品是否优秀,应该综合起来看。Windows有它的适用范围,也有它不适用的范围。比如说,在桌面应用中,Windows的确优秀。在服务器领域,Windows有一定的发展空间,当然它技术上肯定比不上Unix。但是对于中小企业的小型应用,Windows Server Family还是很适用的,SQL Server 2000、IIS毕竟帮助那么多的中小企业建起了信息化。Windows是垃圾还是宝贝?同样还是市场说了算。在我看来,Windows在它适用的场合的确是宝贝。当然,Windows并不适用于所有领域,这一点各位专家比我更懂。

6、微软的安全问题

微软的安全性也不是像某些人说得那么不堪一击,Unix也不是像某些人说得那么固若金汤。单单从操作系统是Windows还是Unix来判断系统的安全性,这在真正的安全专家眼里都是非常可笑的观点。

大道理大家听多了,我就不讲了,我来讲小道理。

就拿办公室里大家用Windows来办公的情形来说,为什么同样的Windows 2000在有些人手里就运行正常,在有些人手里就隔三差五出毛病?真的全都用Linux办公的话,你以为就不会存在这种差异?办公领域尚且如此,在服务器领域,比日常办公复杂得多,同样的Windows 2000 Server/Advanced Server,或者同样的某种Unix/Linux发行版本,在有的系统管理员手里一年四季都正常,365天都工作,在有的系统管理员手里就隔三差五被攻击、被侵入。Windows Server Family怎么说也是成熟的系统,你能就凭人家是Windows就说人家不安全吗?微软自己的官方站点也是Windows的服务器,大家觉得它的安全性怎么样?

浏览数(591) | 评论数(1) | 2006-08-31
关于Linux比Windows安全的说法  

作者:辛亚平

日期:2004年08月15日

出处:应用之美,在于药到病除

网址:http://xinsoft.blogchina.com/51796.html

 

难道仅仅是Windows有漏洞吗?难道Linux就没有系统漏洞吗?其他的操作系统,就都固若金汤了吗?

也许,对于一个不称职的系统管理员来说,没有安全的系统。
但是,对于一个优秀的系统管理员来说,漏洞并不可怕,兵来将挡,水来土掩。没有任何一个系统是完全没有漏洞的,Windows漏洞数量虽多,但Linux漏洞虽少却大多是很致命的,关键是面对安全组织发布的系统漏洞,有没有及时的安全补丁,有没有好的补救措施。

要想让一个复杂的操作系统没有漏洞,那时不可能的,关键是这个操作系统的开发商有没有及时相应这些漏洞并对用户作出负责任的举动。

其实在很多重大的病毒爆发之前,微软早就有过补丁程序发布。现在的绝大多数的Cracker(注意,是Cracker,不要栽赃于Hacker)攻击,以及新出来的病毒,都是针对系统漏洞的,但是如果能经常关注微软的安全补丁已经安全组织的安全公告。都可以事先得以预防。

有人可能会说普通用户哪里有那么专业,去关注什么安全公告。没错。不过,如果普通用户能够做到经常对系统进行Update,并且将系统的自动升级功能打开让操作系统能够自动下载安全补丁,那么很多麻烦都可以有效预防。

一个不称职的系统管理员,或者一个不专业的用户,可能会让一个Linux系统或者Unix系统比Windows 2000不安全得多。相反,一个有经验的系统管理员,或者一个习惯良好的用户,可以让一个经过精心维护的Windows 2000系统比一个草率地维护的Linux系统要安全得多。

浏览数(504) | 评论数(0) | 2006-08-31
男人的责任[励志篇]  

作者:辛亚平

日期:2004年08月15日

出处:应用之美,在于药到病除

网址:http://xinsoft.blogchina.com/51785.html

 

男人的责任[励志篇]

下面引用由电饭锅里的鱼发表的内容:

以前从来也没有考虑过什么叫幸福`!
今天忽然想到这个问题~!
现在的年轻人很多都有女朋友~~可是他们有没有想过能给他的女友什么吗~?
能给他们幸福吗~?...



我和女友都是从外地来在北京工作的,是“北漂一族”
北漂一族的生活有太多的酸甜苦辣,
抛弃了家乡的诱人的机会与安逸的生活,跑到北京尝尽辛酸与汗水,苦苦去打拼两个人的未来
但是我想说:



  只要用心给,就能给她很多!

  我确信我能给她幸福

  当她快乐的时候,我给她分享的对象
  当她哭泣的时候,我给她宽厚的肩膀
  当她倾诉的时候,我给她倾诉的对象
  当她迷茫的时候,我给她坚定的信心

  当她寒冷的时候,我给她温暖的胸怀
  当她燥热的时候,我给她清凉的一吻

  当她工作的时候,我做她坚强的后盾
  当她失业的时候,我给她歇脚的处所
  当她累了的时候,我给她温馨的小窝
  当她渴望的时候,我给她激情与浪漫
  当她需要的时候,我给她真成与付出

  
  当你的女孩需要你的时候,男人应该用自己的双手为她赢得一切
  用你的忠贞的爱情为她建造世界上最坚固的房子,仅仅属于两个人的心灵的居所

  如果你真的爱她,就要让她幸福
  不要让她跑掉,在一个别的男人那里,她可能并不幸福,而且终生遗憾
  要让她幸福,作为男人的你就要去奋斗
  而且你给她的不仅仅是房子、结婚钻戒、面包与鲜花
  你还要给她理解、支持、关爱
  当然,作为爱情的必需品,身为男人的你还要给她激情,让你们在一起的日子永远鲜活

  为了她的幸福,把自己塑造成一个越来越成熟的男人吧
  无论在任何一方面,不要只停留在小男生的水平
  这样,你就不会有这样的困惑:“我能给她幸福吗?”
  你应该挺起你男人的胸膛,自信地对自己、对她说:
  “我有能力、有信心、有恒心给你幸福”
  有一天,你还要把这句话亲口对养育她多年的岳父岳母说,
  让他们放心地允许你把她带走
  然后,你们要一起去努力,因为你们需要用行动来对自己的子女说:

  “我们有能力、有信心、有恒心给你幸福”
  


  记住《蓝色生死恋》里面的一句台词:
 
  世界上最好的房子,是相爱的两个人的心

  是啊,如果你们彼此相爱,而且你们都对生活充满热情,
  那么,即使你们现在一无所有,你们两个人漂在陌生的城市,
  但是,只要你们两个人在一起,就构成了一个家,一个稳定的家
  而且,一无所有的现状是可以用双手去改变的

浏览数(648) | 评论数(1) | 2006-08-31
和这样的女人在一起,男人是幸福的!  

作者:辛亚平

日期:2004年08月15日

出处:应用之美,在于药到病除

网址:http://xinsoft.blogchina.com/51785.html

 

  做这样的女人,是很幸福的
  而做这样的女人的男人,其实是很好做的,
  因为这样的女人其实要求最低
  她不求你大富大贵,不求你才高八斗
  只求她在你面前永远有一种受宠的感觉
  只要你宠宠她,早上出门前抱她一下,
  她就会幸福一整天,
  然后琢磨着给你买一件什么样的衣服合适
  或者想着去超市丰富一下你们的晚餐
  当你拖着疲惫的脚步回到家里,
  餐桌上早已准备好了饭菜
  当你在单位加班很晚才回家,
  她会在电话里恶狠狠地说:“哼,你就别回来了!~”
  可是当你回家后,她默默地为你放好了温热的洗脚水
  偶尔,她还会给你一些浪漫的、甚至肉麻的小惊喜
  虽然她总是要向你撒娇,
  可是其实她无怨无悔地为你做了很多事
  而你所需要做的,仅仅是让她觉得你真的很宠爱她

  和这样的女人在一起,男人是幸福的!

 

 

浏览数(566) | 评论数(0) | 2006-08-31
  • 共30文章
  • 1
  • 2
  • 3
  • >

Powered by Haiwit