SciTouch/使い方

同一テーブルに構造式の絵を入れ込んでみた。
まず、絵を入れるフィールドを創る
ALTER TABLE chem add IMG varbinary(MAX);
そして、下記のphpスクリプトで入れ込んだ。MOLから絵を作ってくださるツールにはindigo-depict.exeを使いました。
注意:MOLなインデックスを作成後だと下記は失敗します。chemテーブルのトリガーを無効化してから実施します。
DISABLE TRIGGER ALL on CHEM;
作成完了後は戻します。
ENABLE TRIGGER ALL on CHEM;

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 <?php
 $dsn = "sqlsrv:server=w2\sharepoint;database=ChEMBL_13";
 try{
     $dbh=new PDO($dsn,'foo','bar');
     $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
 }catch(Exception $e){ 
     die( print_r( $e->getMessage() ) ); 
 }
 try{
     $sth1 = $dbh->prepare("SELECT ID,MOL FROM CHEM");
     $dbh->beginTransaction();
     $sth1->execute();
     $sth1->bindColumn('ID',$id);
     $sth1->bindColumn('MOL',$mol,PDO::PARAM_LOB,0, PDO::SQLSRV_ENCODING_BINARY);
 
     $sth2 = $dbh->prepare("UPDATE chem SET img=? where id=?");
     while($sth1->fetch(PDO::FETCH_BOUND)){
         $in = sprintf("%s.mol", $id);
         $png= sprintf("%s.png", $id);
         file_put_contents($in,$mol);
         $cmd="C:\bingo\indigo-depict.exe $in $png -w 150 -h 150";
         system($cmd);
         unlink($in);
         
         $fp=fopen($png,"rb");
         $sth2->bindParam(1,$fp, PDO::PARAM_LOB,0,PDO::SQLSRV_ENCODING_BINARY );
         $sth2->bindParam(2,$id, PDO::PARAM_INT);
         $sth2->execute();
         fclose($fp);
         unlink($png);
     }
     $dbh->commit();
 
 }catch(Exception $e){ 
     die( print_r( $e->getMessage() ) ); 
 }
 ?>

これをて適当な場所に置いて
php -f UpdateIMGFileAll.php
として実行する。

最新の60件
2026-01-22 2026-01-18 2026-01-17 2026-01-16 2026-01-12 2026-01-11 2026-01-10 2026-01-09 2026-01-08 2026-01-06 2026-01-04 2026-01-01 2025-12-31 2025-12-28 2025-12-27 2025-12-12 2025-12-11 2025-12-09 2025-12-08 2025-12-07 2025-12-05 2025-11-30 2025-11-27 2025-11-24 2025-11-23 2025-11-18 2025-11-16 2025-11-05 2025-11-03 2025-11-02 2025-10-30 2025-10-29 2025-10-28 2025-10-26 2025-10-25 2025-10-24 2025-10-22 2025-10-21 2025-10-17 2025-10-13 2025-10-11 2025-10-06 2025-10-05

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-09-22 (土) 03:24:38