ここで、過酷な試験を試みた。Webページとfolksテーブルのすべてのデータがロードされるのを待ってサーバー上のMySQLデータベースを止め、ブラウザー上でセルを編集してみたのだ。この状態でもセルは赤から黒に変わり、変更したはずのセルの値がデータベースに反映されなかったことを示すものは何も表示されなかった。MySQLデータベースは止まっているのでデータの変更はコミットできないはずだ。コミットのエラーが、なぜコントロールに戻らなかったのかはわからない。一方、MySQLではなくApacheを止めた場合は、Webインタフェースでの変更は完了せず、Apacheを再起動すると完了した。つまり、WebブラウザーとApacheサーバー間の切断は検出され利用者にもそれとわかるが、ApacheサーバーとMySQLサーバー間の切断は検出されないのだ。後者の接続が不安定であることを考えると、この切断は明示される必要があるだろう。今回の試用は、システム管理者がMySQLサーバーを何らかの理由で停止させると、セルの変更が失われる可能性があることを示している。
DrasticGridでは、bool、enum、email、Web URLの各データ型をそれぞれに適した方法で扱うことができる。ただし、たとえばURLをMySQLデータベースのvarcharデータ型を持つテキスト・フィールドに格納する場合、そのフィールドがURLであり単純な文字列ではないことをDrasticGridに知らせる必要がある。下に例示したようにvarcharフィールドに格納されているデータの型に関する情報をDrasticGridに通知すれば、その項目はマウスで扱えるようになる。現行リリースでは残念ながら、色、日時、通貨のフィールドを変更するための同様の支援はなく、したがってそうした型については文字列編集ボックスにするしかない。もっとも、drasticGrid.jsファイル中にセルの型が現れるのは数回だけだから、DrasticGridでJavaScriptのcalendarオブジェクトを呼び出すようにすれば、日付フィールドをごく簡単に変更できるようにすることは可能だ。
<script type="text/javascript">
var thegrid = new drasticGrid('thegrid',
pathimg:"/DrasticTools/img/", pagelength:10,
columns: [
{name: 'name'},
{name: 'contact, type: DDTYPEMAILTO, width: 140},
{name: 'www', type: DDTYPEURL, width: 180},
]});
</script>
JavaScriptのdrasticGridオブジェクトを作成する際、引数のpagelength:10オプションの直後に、配列showcolsnot: new Array("foo", "id")を渡すと、指定した列は表示されなくなる。
おわりに
DrasticGridは、キーボードによる操作が不得手だ。矢印キーを使ってDrasticGrid上のセルを移動したり、F2を押すことでセルの変更モードに入ることができたりすれば、変更作業がずっと楽になるだろう。セルのデータ型に応じた変更方法をさらに広げ、外部キーを持つセルを変更できるようにすることも、大きな課題だろう。
Webサイト上にあるMySQLデータベースのテーブルを変更したいなら、DrasticGridの検討をお勧めする。すべてのAJAXコードを扱うことができ、MySQLデータベースに値を格納することもできる。また、列の見出し部分をクリックすることでその列を並び替えることができる。さらに、100,000件を超えるレコードを持つような大きなテーブルを15レコードを1ページとしてダウンロードすることもできる。ページの移動はテーブルの脇にあるスライダーを動かすだけだ。
Ben Martin 10年以上にわたってファイルシステムに携わっている。博士課程を修了し、現在、libferris、ファイルシステム、検索ソリューションを中心にコンサルティングをしている。
