チェンジセット 94: trunk/install/perl/getxml2db.pl

差分発生行の前後
無視リスト:
コミット日時:
2010/02/28 22:28:26 (14 年前)
コミッタ:
sorshi
ログメッセージ:

SQLite採用

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • trunk/install/perl/getxml2db.pl

    r82 r94  
    1919use DBI; 
    2020use DBD::Pg; 
     21use DBD::SQLite; 
    2122use Digest::MD5 qw(md5_hex); 
    2223 
    2324$path = $0; 
    2425$path =~ s/getxml2db.pl$//i; 
    25 if ($pwd ne "./"){ 
     26if ($path ne "./"){ 
    2627push( @INC, "$path"); 
    2728} 
     
    4849} 
    4950 
     51$dbh = DBI->connect($DSN,$DBUser,$DBPass) ||die $DBI::error;; 
    5052 
    51         my $data_source = sprintf("dbi:%s:dbname=%s;host=%s;port=%d", 
    52                 $DBDriv,$DBName,$DBHost,$DBPort); 
    53  
    54          $dbh = DBI->connect($data_source,$DBUser,$DBPass) ||die $DBI::error;; 
    55  
    56 #$dbh->{AutoCommit} = 0; 
     53$dbh->{AutoCommit} = 0; 
    5754 
    5855# If-Modified-Since使うように変更#2008/11/14  
     
    105102$programtitlename =~ s/\&gt\;/>/gi; 
    106103$programtitlename =~ s/\&amp\;/\&/gi; 
    107 $programtitle = $dbh->quote($programtitlename); 
     104#       $programtitle = $dbh->quote($programtitlename); 
     105        $programtitle = $programtitlename; 
    108106 
    109107Jcode::convert(\$item{ChName},'euc'); 
     
    115113$programSubTitle =~ s/\&gt\;/>/gi; 
    116114$programSubTitle =~ s/\&amp\;/\&/gi; 
    117 $programSubTitle = $dbh->quote($programSubTitle); 
     115#      $programSubTitle = $dbh->quote($programSubTitle); 
    118116 
    119117$offsetmin = $item{StOffset}/60; 
     
    127125#サブタイトル追加------------------------------------------------- 
    128126#番組があるか確認 
    129 $DBQuery =  "SELECT count(*) FROM foltia_program WHERE tid = '$item{TID}'"; 
    130          $sth = $dbh->prepare($DBQuery); 
    131         $sth->execute(); 
     127        $sth = $dbh->prepare($stmt{'getxml2db.1'}); 
     128        $sth->execute($item{TID}); 
    132129 @titlecount= $sth->fetchrow_array; 
    133130  
     
    137134#200412012359 
    138135$nomalstarttime = substr($sttime,8,4); 
    139 $DBQuery =  "insert into  foltia_program values ($item{TID},$programtitle,'','$nomalstarttime','$length','','','3','1','')"; 
    140 # $sth = $dbh->prepare($DBQuery); 
    141 # $sth->execute(); 
    142 $oserr = $dbh->do($DBQuery); 
    143 &writelog("getxml2db  ADD TV Progtam:$item{TID}:$programtitle"); 
    144136 
    145  
     137            $sth = $dbh->prepare($stmt{'getxml2db.2'}); 
     138            $oserr = $sth->execute($item{TID}, $programtitle, '', $nomalstarttime, $length, '', '', 3, 1, '', ''); 
     139            &writelog("getxml2db  ADD TV Progtam:$item{TID}:$programtitle"); 
    146140}else{ 
    147141#2006/2/26  
    148142#あったら、タイトル確認して 
    149 $DBQuery =  "SELECT title FROM foltia_program WHERE tid = '$item{TID}'"; 
    150          $sth = $dbh->prepare($DBQuery); 
    151         $sth->execute(); 
     143            $sth = $dbh->prepare($stmt{'getxml2db.3'}); 
     144            $sth->execute($item{TID}); 
    152145 @titlearray = $sth->fetchrow_array; 
    153146#更新などされてたらupdate 
    154147#print "$titlearray[0] / $programtitle\n"; 
    155148 if ($titlearray[0] ne "$programtitlename" ){ 
    156         $DBQuery =  "UPDATE  foltia_program  SET        title = $programtitle where  tid = '$item{TID}' "; 
    157 #         $sth = $dbh->prepare($DBQuery); 
    158 #       $sth->execute(); 
    159         $oserr = $dbh->do($DBQuery); 
     149                $sth = $dbh->prepare($stmt{'getxml2db.4'}); 
     150                $oserr = $sth->execute($programtitle, $item{TID}); 
    160151        &writelog("getxml2db  UPDATE TV Progtam:$item{TID}:$programtitle"); 
    161152 }#end if update 
     
    164155 
    165156#PIDがあるか確認 
    166 $DBQuery =  "SELECT count(*) FROM foltia_subtitle WHERE tid = '$item{TID}' AND pid =  '$item{PID}' "; 
    167          $sth = $dbh->prepare($DBQuery); 
    168         $sth->execute(); 
     157        $sth = $dbh->prepare($stmt{'getxml2db.5'}); 
     158        $sth->execute($item{'TID'}, $item{'PID'}); 
    169159 @subticount= $sth->fetchrow_array; 
    170160 if ($subticount[0]  >= 1){ 
     
    174164#UPDATE  foltia_subtitle  SET stationid = '42',countno = '8',subtitle = '京都行きます' ,startdatetime = '200503010035'  ,enddatetime = '200503010050',startoffset  = '0' ,lengthmin = '15' WHERE tid = '550' AND pid =  '26000'  
    175165if ($item{Count} == ""){ 
    176  
    177         $DBQuery =  "UPDATE  foltia_subtitle  SET  
    178         stationid = '$stationid', 
    179         countno =  null, 
    180         subtitle = $programSubTitle , 
    181         startdatetime = '$recstartdate'  , 
    182         enddatetime = '$recenddate', 
    183         startoffset  = '$offsetmin' , 
    184         lengthmin = '$length'  
    185         WHERE tid = '$item{TID}' AND pid =  '$item{PID}' "; 
    186  
     166                $sth = $dbh->prepare($stmt{'getxml2db.6'}); 
     167                $oserr = $sth->execute($stationid, undef, $programSubTitle, $recstartdate, $recenddate, $offsetmin, $length, $item{'TID'}, $item{'PID'}); 
    187168}else{ 
    188  
    189         $DBQuery =  "UPDATE  foltia_subtitle  SET  
    190         stationid = '$stationid', 
    191         countno = '$item{Count}', 
    192         subtitle = $programSubTitle , 
    193         startdatetime = '$recstartdate'  , 
    194         enddatetime = '$recenddate', 
    195         startoffset  = '$offsetmin' , 
    196         lengthmin = '$length'  
    197         WHERE tid = '$item{TID}' AND pid =  '$item{PID}' "; 
    198 
    199 #                $sth = $dbh->prepare($DBQuery); 
    200 #               $sth->execute(); 
    201         $oserr = $dbh->do($DBQuery); 
    202  
     169                $sth = $dbh->prepare($stmt{'getxml2db.7'}); 
     170                $oserr = $sth->execute($stationid, $item{'Count'}, $programSubTitle,  $recstartdate, $recenddate, $offsetmin, $length, $item{'TID'}, $item{'PID'}); 
     171            } 
    203172 }else{ 
    204173        #なければ追加 
     
    207176        #そのままキューに入る形で 
    208177        if ($item{Count} eq ""){ 
    209         $DBQuery = "insert into foltia_subtitle values ( '$item{PID}','$item{TID}','$stationid',null,$programSubTitle,'$recstartdate','$recenddate','$offsetmin' ,'$length')"; 
     178                $sth = $dbh->prepare($stmt{'getxml2db.8'}); 
     179                $oserr = $sth->execute($item{'PID'}, $item{'TID'}, $stationid, undef, $programSubTitle, $recstartdate, $recenddate, $offsetmin, $length); 
    210180        }else{ 
    211         $DBQuery = "insert into foltia_subtitle values ( '$item{PID}','$item{TID}','$stationid','$item{Count}',$programSubTitle,'$recstartdate','$recenddate','$offsetmin' ,'$length')"; 
     181                $sth = $dbh->prepare($stmt{'getxml2db.9'}); 
     182                $oserr = $sth->execute($item{'PID'}, $item{'TID'}, $stationid, $item{'Count'}, $programSubTitle, $recstartdate, $recenddate, $offsetmin, $length); 
    212183        } 
    213 #                $sth = $dbh->prepare($DBQuery); 
    214 #               $sth->execute(); 
    215         $oserr = $dbh->do($DBQuery); 
    216  
    217184} 
    218  
    219185 
    220186#print "$DBQuery\n\n\n"; 
     
    226192}#foreach 
    227193 
    228 #$oserr = $dbh->commit; 
     194$oserr = $dbh->commit; 
    229195##      $dbh->disconnect(); 
    230  
    231  
track feed