2012-06-20 55 views
1

我在來這裏之前搜索了互聯網。我想每個人的需求都不一樣。我想要一個Windows GUI程序,它將從數據庫獲取信息並將其顯示在網格中,並在每條記錄旁邊都有一個刪除按鈕。我也希望它有一個鏈接,例如,如果點擊記錄的ID號碼,它會打開新的瀏覽器並導航到與其關聯的頁面,然後完成表單然後自行提交。適用於Windows的Perl Perl

問題是:既然有很多模塊,哪一個最適合這個?

(Perl的Nubie)

+1

爲什麼不使用某種數據庫瀏覽器?你想查詢哪個數據庫? –

+0

這是MySQL。重點是你想要連續打開並打開一個新的Win32 :: Ole瀏覽器應用程序,並通過Perl「驅動」它 – Grigor

+3

我還是沒有看到例如[MySQL Workbench](http:// dev。)的優勢。 mysql.com/doc/workbench/en/index.html) –

回答

3

沒有人能真正說什麼是最好的,但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/

+0

然後你會如何驅動瀏覽器,可以說從程序中填寫表格然後提交到一個頁面 – Grigor

+0

編輯我的答案來解決它! – PinkElephantsOnParade

+0

我當前的程序在Dos中執行,我希望它在Windows GUI中構建。應用程序不是那麼大,可能不會超過2000行。我擔心的部分是當我打開瀏覽器時,是否可以用Win32 :: Ole控制它? – Grigor

2

我會建議使用:

由於您使用的是Windows,你最好的選擇將是安裝Strawberry Perl,其中包括SQLite和機械化。安裝Wx或Tk是一個額外的步驟,但是您應該能夠從其他已經這樣做的人在網上找到教程。你可能也想看看Padre, the Perl IDE這是一個Perl編輯器/開發環境(它也碰巧使用Wx)。

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> 

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訪問的每個數據庫中每個記錄」類型的數據網格:

ADO Grid

在沒有成本。熟悉HTML(但不是Tk或Wx)和ADO/Access/Excel(但不是DBI)的人可以輕鬆/高效地構建一個很好的數據庫GUI。前提條件(即缺點)是:即使部署計算機也需要「Microsoft DataGrid Control 6.0(OLEDB)」(也有一個普通的表格,層次結構和靈活的分級網格控制器;也許可以使用更現代的控制器也)安裝在開發/設計時啓用模式。

+0

在接受最佳答案之前,我會盡快檢查所有答案 – Grigor