我来到这里之前搜索了互联网。我猜每个人的需求都不同。我想要一个Windows GUI程序,它将从数据库中获取信息并在网格中显示它,并在每个记录旁边有一个删除按钮。我还希望它有一个链接,例如,如果点击了记录的ID号,它会打开新的浏览器并导航到与之关联的页面,然后完成表单然后单独提交。
问题是:由于那里有很多模块,哪一个最适合这个?
(Perl Nubie)
答案 0 :(得分:3)
没有人能真正说出什么是BEST,但 Tk
模块的选项(在您的情况下为DBD::MySQL
的后端)可能是Perl中这类事情的最“标准” 。两者的例子都可以在网上找到。
以下是SQL和mySQL和DBD的一些内容:
http://sql-info.de/mysql/examples/Perl-DBI-examples.html
以下是perl TK的一个很好的示例文档:
http://www.ibm.com/developerworks/aix/library/au-perltkmodule/index.html
就打开浏览器而言 - 一个简单的系统命令可以:
my @command = ('start', $url);
system(@command);
^适用于Windows。看起来你想要构建一个相当大的应用程序 - 打开一个浏览器只是它的一小部分 - 毫无疑问,当你按下一个按钮时你会想要执行上面的操作。
最后一部分......向网络上的表单提交数据,这是一个名为“网络抓取”的主题... WWW::Mechanize
是一个可以查看的图书馆 - Google“perl网络抓取工具”,你受到约束获得更好的例子。
我发现了一点 - 它看起来对你有用:
http://www.stratos.me/2009/05/writing-a-simple-web-crawler-in-perl/
答案 1 :(得分:3)
给出一个(令人讨厌的)前提条件,约25行HTML
<html>
<head>
<hta:application id="demo" scroll="No"></hta>
<title>Demo</title>
<script language = "PerlScript"
src = "demo.pl"
type = "text/perlscript"
></script>
</head>
<body onload="DoOnLoad()" onunload="DoOnUnLoad()">
<object classid = "clsid:67397AA3-7FB1-11D0-B148-00A0C922E820"
id = "id_oDC"
style = "position:relative;width:1px;height:1px"
></object>
<object classid = "clsid:CDE57A43-8B86-11D0-B3C6-00A0C90AEA82"
id = "id_oDG"
style = "position:relative;width:100%;height:95%"
></object>
</body>
</html>
和ca. 40行Perl:
use strict;
use warnings;
use Win32::OLE qw( in );
use Win32::OLE::Const 'Microsoft ActiveX Data Objects';
use vars qw( $window );
my $oAdoDC;
my $oAdoDG;
sub DoOnLoad {
my $owda = $window->document->all;
$oAdoDC = $owda->id_oDC;
$oAdoDC->{ConnectionString} = 'DSN=SakilaGent';
$oAdoDG = $owda->id_oDG;
$oAdoDC->{CursorType} = adOpenKeyset;
$oAdoDG->Font->{Name} = "Arial";
$oAdoDG->Font->{Size} = "8";
$oAdoDG->HeadFont->{Name} = "Arial";
$oAdoDG->HeadFont->{Size} = "8";
$oAdoDC->{RecordSource} = "select * from customer";
$oAdoDG->{Caption} = $oAdoDC->{RecordSource};
$oAdoDC->Refresh();
$oAdoDG->{DataSource} = $oAdoDC;
}
sub DoOnUnLoad {
$oAdoDG->{ DataSource }->Close();
$oAdoDC->{ Recordset }->Close();
$oAdoDG = undef;
$oAdoDC = undef;
}
将为您提供灵活的'显示/编辑ADO'数据网格可访问的每个数据库中的每个记录集:
免费。熟悉HTML(但不是Tk或Wx)和ADO / Access / Excel(但不是DBI)的人可以轻松/有效地构建一个很好的数据库GUI。前提条件(即缺点)是:即使是部署计算机也需要具有“Microsoft DataGrid Control 6.0(OLEDB)”(也有一个普通的表格,分层和灵活的分层网格控件;也许可以使用更现代的控件另外)安装在开发/设计时启用模式下。
答案 2 :(得分:2)
我建议使用:
由于您使用的是Windows,最好的办法是安装Strawberry Perl,其中包括SQLite和Mechanize。安装Wx或Tk是一个额外的步骤,但您应该能够从其他人那里找到教程。您可能还想查看Padre, the Perl IDE这是一个Perl编辑器/开发环境(它也恰好使用Wx)。