我在來這裏之前搜索了互聯網。我想每個人的需求都不一樣。我想要一個Windows GUI程序,它將從數據庫獲取信息並將其顯示在網格中,並在每條記錄旁邊都有一個刪除按鈕。我也希望它有一個鏈接,例如,如果點擊記錄的ID號碼,它會打開新的瀏覽器並導航到與其關聯的頁面,然後完成表單然後自行提交。適用於Windows的Perl Perl
問題是:既然有很多模塊,哪一個最適合這個?
(Perl的Nubie)
我在來這裏之前搜索了互聯網。我想每個人的需求都不一樣。我想要一個Windows GUI程序,它將從數據庫獲取信息並將其顯示在網格中,並在每條記錄旁邊都有一個刪除按鈕。我也希望它有一個鏈接,例如,如果點擊記錄的ID號碼,它會打開新的瀏覽器並導航到與其關聯的頁面,然後完成表單然後自行提交。適用於Windows的Perl Perl
問題是:既然有很多模塊,哪一個最適合這個?
(Perl的Nubie)
沒有人能真正說什麼是最好的,但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/
然後你會如何驅動瀏覽器,可以說從程序中填寫表格然後提交到一個頁面 – Grigor
編輯我的答案來解決它! – PinkElephantsOnParade
我當前的程序在Dos中執行,我希望它在Windows GUI中構建。應用程序不是那麼大,可能不會超過2000行。我擔心的部分是當我打開瀏覽器時,是否可以用Win32 :: Ole控制它? – Grigor
我會建議使用:
由於您使用的是Windows,你最好的選擇將是安裝Strawberry Perl,其中包括SQLite和機械化。安裝Wx或Tk是一個額外的步驟,但是您應該能夠從其他已經這樣做的人在網上找到教程。你可能也想看看Padre, the Perl IDE這是一個Perl編輯器/開發環境(它也碰巧使用Wx)。
給一個(討厭)的先決條件,約。 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>
and 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)」(也有一個普通的表格,層次結構和靈活的分級網格控制器;也許可以使用更現代的控制器也)安裝在開發/設計時啓用模式。
在接受最佳答案之前,我會盡快檢查所有答案 – Grigor
爲什麼不使用某種數據庫瀏覽器?你想查詢哪個數據庫? –
這是MySQL。重點是你想要連續打開並打開一個新的Win32 :: Ole瀏覽器應用程序,並通過Perl「驅動」它 – Grigor
我還是沒有看到例如[MySQL Workbench](http:// dev。)的優勢。 mysql.com/doc/workbench/en/index.html) –