救助:谁能提供一个perl连接sql server的事例



QUOTE:
原帖由 flw 于 2008-7-31 08:30 发表
to 楼上的:
Perl 是 GPL 和 Artistic License 双许可(而且是 or 的关系),我想你如果真的了解这两个许可的话,不会应该不知道这意味着什么吧?这一点和只使用 GPL 的软件确实是有本质区别的。

Perl是双许可的,和你说的“它也和通常所说的开源没什么关系”也是有本质区别的。

QUOTE:
至于担心 Perl 会被 MS 增加扩展,这种担忧就更加显得“非 Perl”了。
Perl 非常欢迎你去扩展它,并且 CPAN 上已经有大量这样的扩展了。

你看看这个专访:
http://bbs.chinaunix.net/thread-1229742-1-1.html

在Perl6中,程序员可以对语法进行扩展,比如说你可以为perl加上repeat  unitl循环;MS一贯喜欢对语言进行扩展,它对
Basic、C++、Java、SQL、Javascript、甚至于浏览器中的CSS都要加入了自己扩展语法。但是这两者有着本质的区别,否则perl6也就是一门“平庸”的语言了。

看看MS是怎么对Java扩展的?MS版Java中有一个新的关键字delegate,它是如何做到这点的?很简单,它自己实现了Java编译器、Java虚拟机,自然能够识别delegate关键字和语义,显然SUN版本的Java编译器是不可能识别delegate关键字了。因此,使用了MS扩展的应用程序是无法移植的。此外MS还改变了Java的核心类库java.lang、java.io、java.utils,在其中提供自己的公开类、公有方法,两套编程API进一步破坏了Java程序的可移植性。

相比之下了,perl6扩展语法的手段则非常高明了,在perl6中,语法分析引擎和语法是分离的,用户可以通过rule定制自己的语法,但是不需要修改更不需要重写一个语法分析引擎,所有的perl程序都运行在相同的虚拟机之上,不会带来兼容性问题。举个例子,如果某个人玩帅,把+定义成-,把-定义成+,没关系,它的程序还是可以在我们的perl 6上跑的,我们并不需要下载一个新的perl解释器去解释他的程序,只有一个perl6。

QUOTE:
Perl 的终极目标就是为了能够让任何人都可以方便地篡改 Perl 语法。

在Perl6中,用户可以定制自己的语法,但是终极目标嘛,貌似没见到perl官方这么说。

QUOTE:
至于编程大赛中允许使用 C++,是说过允许使用 GCC 吗?
恐怕你提交的代码必须得是 VC 能够编译通过的才行吧?

1、你的原文是"perl是第一种被允许使用的MS发明的语言之外的语言"
2、VC是MS开发的编译器,但它不是MS发明的语言吧?

QUOTE:
总而言之,Perl 是一种非常开放的语言,
它的开放主要体现在哲学上,而不是细节上。
它不像你们那样,总是喜欢把自己标榜成 XXX,并且和假想中的敌人 YYY 对立起来。
这是 Perl 最吸引我的地方。

谁把“自己标榜为XXX,并且和假想中的敌人 YYY 对立起来”?和你不一样,我并不关心perl开不开放,我只关心perl是否对我有用,即使ActivePerl被MS收购了,如果MS没有搞出一套perl标准,我也不会有什么看法的。我只是希望写perl程序不用像写javascript程序那样,为能兼容不同的浏览器而打上一堆补丁而已。
#!d:\perl\bin\perl.exe


use strict;
use DBI;

my $DSN = 'driver={SQL Server};Server=1.1.1.1; database=pubs;uid=username;pwd=huaidanyige;';

my $dbh = DBI->connect("dbi:ODBCDSN") or die "$DBI::errstr\n";

my $sth = $dbh->prepare("select * from authors");
$sth->execute();

while (my @row = $sth->fetchrow_array) {
    print "@row\n";
}