免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1931 | 回复: 4
打印 上一主题 下一主题

请教关于DBI和tk图形界面的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-30 09:53 |只看该作者 |倒序浏览
我用DBI连接起了数据库,并从中读取了数据,但在tk的图形界面上的文本中不能显示。不知道为什么?有哪位大哥知道的告诉一声,谢谢。在线等。。。。。。。。

论坛徽章:
0
2 [报告]
发表于 2008-03-30 10:24 |只看该作者
注意编码问题。

论坛徽章:
0
3 [报告]
发表于 2008-03-30 10:37 |只看该作者
能说的详细一点嘛?

论坛徽章:
0
4 [报告]
发表于 2008-03-30 10:45 |只看该作者
sub do_input_entry{                                                                                       
  # clk signal block                                                                                       
  $pane = $mw -> Scrolled(Pane, Name => 'fred',-scrollbars => 'e',-sticky => 'we', -gridded => 'y');      
  #$pane -> xview($f_clk);    // error,can't use this "CALL",why?                                          
  #$pane->yview(moveto => 1)                                                                              
  $pane->pack(-side => 'right', -fill => 'y');                                                            
  $f_clk = $pane->Frame(-relief => 'groove', -borderwidth => 2)->pack(-side => 'top', -fill => 'x');      
                                                                                                           
                                                                                                           
  $f_clk -> Label(-text => '-CLK signal input:', -font => 'bold')                                          
          ->grid('-', '-','-', '-', '-', '-', '-', $f_clk->Button(-text => " ++ ", -command =>  \&add_clk),      
           -sticky => 'w', -pady => 5                                                                            
                 );                                                                                             
                                                                                                           
  for($i = 1; $i <= $clk_num; $i++){                                                                       
    $f_clk -> Label(-text => 'signal name:')                                                               
      ->grid($entries[$ent_idx++] = $f_clk->Entry(-textvariable => \$clk_name[$i-1]),                     
                   $f_clk->Label(-text => 'width:'),                                                            
                   $entries[$ent_idx++] = $f_clk->Entry(-textvariable => \$clk_width[$i-1],-width => 3),                
                   $f_clk->Label(-text => 'reset value:'),                                                      
                   $entries[$ent_idx++] = $f_clk->Entry(-textvariable => \$clk_reset_value[$i-1],-width => 3),   
                   $f_clk->Label(-text => 'description:'),                                                      
                   $entries[$ent_idx++] = $f_clk->Entry(-textvariable => \$clk_description[$i-1], -width => 75),
                   -sticky => 'w', -padx => 2, -pady => 5                                                        
                   );                                                                                            
  }                                                                                                        


sub read_data_from_database {
        @clk_name                                   = ();
        @clk_width                                  = ();
        @clk_reset_value                            = ();
        @clk_description                            = ();                                       
  my ($dbh);
  my ($sth,$sql);

  # create a statement in $sth
  $dbh=DBI->connect('dbi:mysql:mydatabase','root','123456',{PrintError=>0,RaiseError=>1});
  
  #prepare the statement for node_tag_clock_input;
  $sql="select signal_name,signal_width,signal_reset_value,signal_description from node_tag_clock_input";
  $sth=$dbh->prepare($sql);
  #execute the statement
  $sth->execute or die $dbh->errstr;
  while (my ($clk_name,$clk_width,$clk_reset_value,$clk_description)=$sth->fetchrow_array) {

          @clk_name                    = (@clk_name         ,  $clk_name);
          @clk_width                   = (@clk_width        ,  $clk_width);
          @clk_reset_value             = (@clk_reset_value  ,  $clk_reset_value);
          @clk_description             = (@clk_description  ,  $clk_description);
  }                        
  
  $sth->finish;
  $dbh->disconnect;
}
print "huangruihua",@clk_name;

sub write_data_to_database {
  my ($dbh,$sql,$sql2);
  #create the database handle;
  $dbh=DBI->connect('dbi:mysql:mydatabase','root','123456',{PrintError=>0,RaiseError=>1});
  
  #prepare the sql for node_tag_clock_input;
  $sql2="drop table node_tag_clock_input";
  $sql3="create table node_tag_clock_input (signal_name varchar(200), signal_width varchar(3), signal_reset_value varchar(2), signal_description varchar(250))";
  $dbh->do($sql2);                                                                          
  $dbh->do($sql3);
  for (my $i=0;$i<=(@clk_name-1);$i++) {
           $sql="insert into node_tag_clock_input (signal_name,signal_width,signal_reset_value,signal_description) values('$clk_name[$i]','$clk_width[$i]','$clk_reset_value[$i]','$clk_description[$i]')";     
     $dbh->do($sql);
  }
  $dbh->disconnect;
}


&read_data_from_database;

&do_input_entry();

论坛徽章:
0
5 [报告]
发表于 2008-03-30 10:46 |只看该作者
每次执行一次read后,他的内容都不能显示在text里面,但都保存在变量里面。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP