An unfinished mysql manager

xiaoxiao2021-03-06  20

#! / usr / bin / perl

Use strict; use tk; use tk :: hlist; use tk :: adjuster; use dbi; use encoding 'euc-cn'

MY ($ Login, $ Server, $ Database, $ DB, $ SQL, $ query, $ percent_done, @ TMP); MY $ mw = mainwindow-> new (-title => "mysql easy" ); $ mw-> minsize (600, 400); # $ mw-> resizable (0,0);

#framemy $ menbar = $ mw-> frame (-relief => 'groove', -Borderwidth => '2',) -> Pack (-SIDE => 'TOP', -FILL => 'x'); MY $ bottom = $ mw-> frame (-relief => 'groo, -Borderwidth =>' 1 ',) -> Pack (-SIDE =>' bottom ', -fill =>' x '); MY $ LEFT = $ mw-> frame (-relief => 'groove', -BorderWidth => '0',) -> Pack (-SIDE => 'Left', -fill => 'Both'); My $ AJ = $ MW-> Adjuster (-widget => $ left, -side => 'left') -> pack (-side => 'left', -fill => 'y'); my $ right = $ mw-> frame (-relief => 'groove', -Borderwidth => '1',) -> Pack (-Side => 'Right', -fill => 'Both', - Expand => '1'); # menumy $ MB_CONN = $ menubar-> menubutton (-text => 'connect') -> Pack (-SIDE => 'Left'); $ mb_conn-> command ', -command => / & login) $ MB_CONN-> Command (-Label => 'disconnect', -command => / & savedb); $ mb_conn-> separator (); $ mb_conn-> command (-Label => 'exit', -command => Sub {exit;});

My $ mb_view = $ menubar-> menubutton (-text => 'View') -> Pack (-Side => 'left'); $ mb_view-> command (-gabel => 'undo', -command => / & undo); $ MB_VIEW-> Command (-Label => 'Find', -command => / & findkey); my $ mb_edit = $ menubar-> menubutton (-text => 'edit') -> pack (-side = > 'left'); $ mb_edit-> command (-Label => 'About dbmedit', -command => / & quide);

MY $ MB_SQLC = $ menubar-> menubutton (-text => 'sql') -> Pack (-SIDE => 'left'); $ mb_sqlc-> command (-Label => 'sql_exec', -command => / & About);

MY $ MB_HELP = $ menubar-> menubutton (-text => 'help') -> Pack (-Side => 'Left'); $ mb_help-> command (-Label => 'About dbmedit', -command => / & it); # hlistmy $ data = $ left-> scrolled ("hlist", - selectmode => 'multiple', - highlightthickness => 0, -scrollbars => 'e', ​​- height => 8, -Header = > 1, -BACKGROUND => 'White', - command => / & showtables -> Pack (-fill => 'x'); $ DATALIST-> HEADER ('create', 0, -text => Database: '); MY $ TABLIST = $ left-> scrolled ("hlist", - selectmode =>' multiple ', - highlightthickness => 0, -scrollbars =>' e ', - header => 1, -Background =>' White ', - command => / & viewdata -> Pack (-fill =>' Both ', - Expand =>' 1 '); $ TABLELIST-> Header (' Create ', 0, -Text =>' Table: '); MY $ list = $ right-> scrolled ("hlist", - selectmode =>' multiple ', - highlightthickness => 0, -scrollbars =>' se ', - head => 1, -columns => 7 , -Background => 'White', - command => / & showlist) -> Pack (-fill => 'Both', - Expand => '1'); my @Headers = ("Field", "Type", "NULL", "Key", "default", "extra"); # 标题 foreach my $ x (0..6) {$ list-> header ('create', $ x, -text => $ headers [ $ x],);} # Footmy $ foot = $ bot Tom-> Label (-Text => "Log in first ...") -> Pack (-SIDE => 'Left'; mainloop;

Sub login {$ login = $ mw-> toplevel (-title => 'login'); $ login-> resizable (0); $ login-> label (-Text => 'Host:') -> Grid (-row => 2, -sticky => 'w'); $ server = $ login-> entry () -> grid (-row => 2, -column => 2); $ Login-> label (-text => 'username:') -> grid (-row => 3, -sticky => 1, -sticky => 'W'); $ usrname = $ login-> entry () - > Grid (-row => 3, -COLUMN => 2); $ login-> label (-text => 'password:') -> grid (-row => 4, -sticky = > 'W'); $ password = $ login-> entry (-show => '*') -> grid (-row => 4, -COLUMN => 2); $ login-> label (-Text => 'Database:') -> Grid (-row => 5, -sticky => 'W'); $ database = $ login-> entry () -> grid (-row => 5, -Column => 2); My $ connection = $ login-> button (-text => 'connection ", -command => / & connect) -> grid (-row => 6, -COLUMN => 1, -Columnspan => 2, -sticky => 'EW'); $ login-> button (-text => 'quit', -command => Sub {$ login-> destroy;} -> grid (-row => 7 -column => 1, -sticky => 'EW'); $ server-> insert (0, "localhost"); $ usrname-> insert (0, "root"); $ Password -> Insert (0, "123QWE"); $ database-> insert 0, "mysql");} Sub connection {MY $ hostname = $ server-> get; my $ usrname = $ usrname-> get; my $ password = $ password-> get; my $ database = $ database-> get ;

$ db = dbi-> Connect ("DBI: MySQL: $ DATABASE", $ Username, $ Password); if ($ dbi :: errstr) {$ login-> messagebox (-type => "ok", - title = > "Error", - Message => "$ dbi :: errstr", - icon => "error");} else {$ sql = qq {show databases}; $ query = $ db-> prepare ($ SQL) ; $ query-> execute ();

MY $ Result; While ($ result = $ query-> fetchrow) {$ data, -text => $ result);} $ query-> finish (); $ login-> destroy;}

Sub showtables {my @tablename = $ datalist-> selectionget (); $ sql = qq {use $ TABLENAME [0]}; $ query = $ db-> prepare ($ sql); $ query-> execute (); $ Query-> Finish (); $ TABLELIST-> Delete ('all'); # 清 清 tables list $ sql = qq {show tables}; $ query = $ db-> prepare ($ sql); $ query-> execute ); MY $ Result; While ($ result = $ query-> fetchrow) {$ TABLELIST-> Add ($ results, -Text => $ result);} $ query-> finish ();

Sub viewdata {$ list-> delete ('all'); # 清 清 list @tmp = (); my @ViewName = $ TABLIST-> selectionget (); $ sql = qq {show colorns from $ viewname [0]} $ Query = $ db-> prepare ($ sql); $ query-> execute (); my @Result; while (@Result = $ query-> fetchrow) {push (@TMP, [@ result]);} #additem for my $ index (0 .. $ # TMP) {$ List-> Add ($ index); for my $ textin (0..scalar (@ @ @ @ [[]]]} - 1)) {$ List-> Itemcreate ($ INDEX, $ textin, -text => $ TMP [$ INDEX] -> [$ textin]);}} $ query-> finish ();

Sub showlist {my @listindex = $ list-> selectionget; my $ listedit = $ mw-> toplevel (-title => 'edit'); $ listedit-> resizable (0); $ listedit-> label Text => 'Field:') -> Grid (-row => 1, -sticky => 1, -sticky => 'w'); $ listedit-> Label (-Text => 'type:') -> Grid (-row => 1, -sticky => 2, -sticky => 'w'); $ listedit-> Label: ') -> grid (-row => 1, -COLUMN => 3, -sticky => 'w'); $ listedit-> label (-text => 'key:') -> grid (-row => 1, -sticky => 4, -sticky => 'W '); $ Listedit-> Label (-text =>' default: ') -> grid (-row => 1, -sticky => 5, -sticky =>' W '); $ listedit-> label Text => 'extra:' -> grid (-row => 1, -sticky => 6, -sticky => 'w'); $ server = $ listedit-> entry (-text => $ TMP [$ ListIndex [0]] -> [0]) -> Grid (-row => 2, -COLUMN => 1); $ server = $ listedit-> entry (-text => $ TMP [$ listIndex [0]] -> [1]) -> Grid (-row => 2, -COLUMN => 2); $ server = $ listedit-> entry (-text => $ TMP [$ listIndex [0]] -> [2] ) -> grid (-row => 2, -COLUMN => 3); $ server = $ listedit-> entry (-text => $ TMP [$ listIndex [0]] -> [3]) -> Grid -row => 2, -COLUMN => 4); $ server = $ listedit-> entry (-text => $ TMP [$ LISTI NDEX [0]] -> [4]) -> Grid (-row => 2, -COLUMN => 5); $ server = $ listedit-> entry (-text => $ TMP [$ listIndex [0]] -> [5]) -> Grid (-row => 2, -COLUMN => 6); $ listedit-> button (-text => 'ok', - command =>

Sub {$ listedit-> Destroy;}) -> grid (-row => 3, -sticky => 5, -sticky => 'EW'); $ listedit-> Button (-Text => 'Cancel', - Command => Sub {$ listedit-> destroy;}) -> grid (-row => 3, -sticky => 6, -sticky => 'EW');} Sub about {MY $ About = $ mw-> Messagebox (-type => 'ok', -title => 'About ..', -message => "mysql easy by jondy / n qq: 222411");

转载请注明原文地址:https://www.9cbs.com/read-43893.html

New Post(0)