我来这里之前搜索了互联网。我想每个人的需求都不一样。我想要一个 Windows GUI 程序,它可以从数据库中获取信息并将其显示在网格中,并且每条记录旁边都有一个删除按钮。我还希望它有一个链接,例如,如果单击记录的 ID 号,它会打开新浏览器并导航到与之关联的页面,并完成表单然后自行提交。
问题是:既然有很多模块,哪一个最适合这个?
(Perl 努比)
我来这里之前搜索了互联网。我想每个人的需求都不一样。我想要一个 Windows GUI 程序,它可以从数据库中获取信息并将其显示在网格中,并且每条记录旁边都有一个删除按钮。我还希望它有一个链接,例如,如果单击记录的 ID 号,它会打开新浏览器并导航到与之关联的页面,并完成表单然后自行提交。
问题是:既然有很多模块,哪一个最适合这个?
(Perl 努比)
没有人能真正说出什么是最好的,但是 Tk
在你的情况下,带有后端的模块选项DBD::MySQL
可能是 Perl 中此类事情的最“标准”。两者的例子都可以在网上找到。
下面是一些使用 mySQL 和 DBD 的 SQL:
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
是一个值得研究的库 - 谷歌“perl网络爬虫”,你一定会得到更多好的例子。
我通过一些搜索找到了这个 - 它看起来对你有用:
http://www.stratos.me/2009/05/writing-a-simple-web-crawler-in-perl/
给一个(讨厌的)前提条件,大约。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>
和约。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)”(也有普通表格、分层和灵活的分层网格控件;也许可以使用更现代的控件也)以开发/设计时启用模式安装。
我建议使用:
由于您使用的是 Windows,因此最好的办法是安装包含 SQLite 和 Mechanize的Strawberry Perl 。安装 Wx 或 Tk 是一个额外的步骤,但您应该能够在网络上从其他这样做的人那里找到教程。您可能还想查看Padre,这是一个 Perl IDE,它是一个 Perl 编辑器/开发环境(它也恰好使用 Wx)。