[perl问题]怎么样安装数据库驱动?

软件和网站开发以及相关技术探讨
回复
tandkzy
帖子: 512
注册时间: 2006-02-12 19:29

[perl问题]怎么样安装数据库驱动?

#1

帖子 tandkzy » 2011-04-13 22:44

因为想学着写一个小型的数据库,所以需要这个。数据库系统选择sqlite。查询了相关资料后,系统提示我没有数据库驱动。于是查找之。找了很多的相关文章,但都是教你怎么下载,怎么编译,但是我知道perl是提供了一个在线安装的工具的,不知道这个该怎么弄。小弟我对于编译一道完全是两眼黑。
另外,还想问一下如何用perl访问berkery db。我是按照oreilly的《programming perl dbi》上的例程来的(其实这个也能部分的满足我的需求)。在例程上提示可以使用tie来绑定一个berkery db文件到一个散列,这样可以通过操作散列直接操作数据库文件(当然这东西很低层)。结果在执行例程的时候提示:Can't locate object method "TIEHASH" via package "record.dat" at time.pl line 6.

请各位大侠指点一二了。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: [perl问题]怎么样安装数据库驱动?

#2

帖子 eexpress » 2011-04-14 9:28

sqlite只是操作sql语法。数据库是独立文件。

代码: 全选

@items=`sqlite3 $f1 "select * from ind;"`;
berkeley的?使用tie容易出错的。

代码: 全选

use BerkeleyDB;
http://forum.ubuntu.org.cn:8000/viewtop ... 0&t=315287
我是操作evolution的通讯录时,使用这个,但是evolution-data-server啥的,太容易死掉了。不明原因。后来就放弃了。
● 鸣学
tandkzy
帖子: 512
注册时间: 2006-02-12 19:29

Re: [perl问题]怎么样安装数据库驱动?

#3

帖子 tandkzy » 2011-04-14 18:13

先谢谢楼上的热心帮助。其实我只是想安装一个数据库驱动,也就是一个模块,并不是很难的问题。当然,你的解说也让我额外的弄明白了别的知识。另外,查资料发现BerkeleyDB是一个独立的模块,而DB_File是另一个独立的模块。后者是安装的时候会自己带的。只是我搞错了语法,所以调用的时候出错。 :em06
对于楼上说的使用tie会不稳定的问题,我不是很了解。但根据从PerlDocs上查到的资料,我发现这二个模块是不同的。像DB_File仅提供很底层的功能,而BerkeleyDB模块其实还提供SQL语言的接口。换言之,即BerkeleyDB模块其实是作为DBI模块的一个驱动来发生作用的。而二者都提供tie函数。
我觉得既然历来的操作系统都带DB_File模块,那么它必然是相当的稳定的,而且像是系统的一些软件的验证(例如vsftpd就支持使用BerkeleyDB来做验证)也用它,所以它的稳定性应该是值得信赖的。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: [perl问题]怎么样安装数据库驱动?

#4

帖子 eexpress » 2011-04-14 18:58

不稳定,是指evolution-data-server导致的。 :em06
● 鸣学
tandkzy
帖子: 512
注册时间: 2006-02-12 19:29

Re: [perl问题]怎么样安装数据库驱动?

#5

帖子 tandkzy » 2011-06-16 7:47

安装驱动已经搞定了。但是有一点要注意,最好是从源里安装驱动。即按照驱动的名字来搜索,而最好不是使用cpan来安装数据库驱动。这是血的教训啊。毕竟软件发展快,系统带的模块都很容易“过时”。
回复