リスのコーナー

このコーナーは、当サイトの運営等、IT関連を担当する最強?スタッフが所属する 情報システム部門Research & Information System 通称RIS)のページです。弊社独自で開発したIT関連のノウハウ公開を目的としたボランティアページです。
昼休時間等を利用してコツコツと公開してゆきますので、よろしく御願いいたします。


■ 目 次

CGIデータベースエンジン jsql.pl 開発の経緯
jsql.pl の特徴
jsql.pl を公開しました。
その他、公開しているサンプルCGI


CGIデータベースエンジン jsql.pl 開発の経緯

Linux Webサーバ環境でSQL準拠のデータ-ベースといえば、 (フリーソフトで)PostgreSQLがあげられます。ところが、プロバイダー契約をしてホームページ用のディスク領域が割り当てられたとしても、サーバー上で実行できるソフトといえばCGIぐらいでしょう。プロバイダーによってはいろいろな制限(あれこれ利用できません)がついてまわるし、SQL準拠のデータ-ベースが利用できるわけがはない。
会社のイントラ環境をWebサーバでODBCを経由してデータベースにアクセスし、問い合せ結果をHTMLで表示すると言った具合な環境があり社内Webを容易に運営しているのに、いざ会社からホームページ作成をおおせつかっても、CGIでいろいろ作り込むのは大変すぎるし、合理的でない気がする。情報系サイトを目指すは、データベースを駆使したものにしたい、けどホスティングサービスじゃSQLデータ-ベースを利用できるわけがないしどうしよう?(先に気づけ) perl で書かれたSQLライクなデータベースエンジンはないかとNET上を寝ずに探しまわったものの、私好みのサンプル(そんな都合のいい)が見つからなかったので自分で jsql.pl などという、SQLライクなものを作ってしまいました。

jsql.pl の特徴

SQLライクなエンジン

jsql.plは、ORACLE(ORACLE社) やSQLSERVER(MS社)やAdaptive SERVER(SYBASE社)のような sql文で検索(select)や修正(updete)や挿入(insert)や削除(delete)ができる??Perlのライブラリーです。

レコード単位で排他制御

よく公開されているサンプルで多いものは、テーブル(ファイル)単位で排他制御をかけるものが主流ですが、jsql.pl はレコード単位でロックをかけます。
(万一ファイルがクラッシュしても、損害が1レコードで済む?)
よって、Webサーバのファイル排他制御に依存します。よってスムーズなアクセスを可能にしました。(^^)

データベース構造

フォルダーとテキストファイルで構成されています。簡単にいうと、Excelより Access 、Accessより、SQLServerみたいに階層構造で似せて作ってみました。(ぱくり!)

入力フォーム

テーブルのカラム設計と同時に入力フォーム(HTML)ができます。
(めんどくさがり屋さんにお勧めです↑)
また、入力する値の制限など幅広い応用が可能です。

アクセス制限

Webサーバのアクセス制限とは別つで、JSQLログイン認証を設けました。
JSQL内のユーザ管理により個別アクセス制限がカのです。また、SQLの問い合せの種別により(参照、挿入、修正、削除、実行)制限することもできます。

CSVファイルに対応

タブ区切りのCSVファイルをjsqlのデータベースの中へアップロードするだけでテーブルとしてインポートできます。


jsql.pl を公開しました。 (2001/07/30)

JSQLを試してみよう!(インストールガイド)

DBメンテナンス リファレンス マニュアル

DBメンテナンス データベース管理者ガイド

サンプルデータベースを覗いてみましょう

SQL文による jsql.pl の応用


その他、公開しているサンプルCGI

ソースファイルを公開、配布するとなると、ZIPやLZH、EXE等に圧縮して、FTP等でダウンロードするやり方が主流のようです。
CGIのようにテキストファイルを公開する場合、ソース改善時に毎に再圧縮したりするのは結構面倒な作業です。
また、圧縮されてるといえ、配布しているサイトに、実際運用しているCGIと二元化されている場合が多いようです。

そこでこの、httpload.cgi は、実際運用している cgi の中から公開、配布したい特定のファイルを HTMLの<PLAINTEXT>タグでソースを直接公開配布します。

使い方:

 公開するテキストファイルを下記の赤字部($koukai)に追記し公開を許可します。
 (先頭と末尾、ファイル名の間には半角スペースが必ず必要です。)
 公開するページのハイパーリンクでURLオプションに ?CGINM=[File_Name] を指定します。

 ハイパーリンクの例: http://www.nlwww.com/cgi-bin/httpload.cgi?CGINM=jsql.pl

公開ソースファイルに、コメント行(#)で __CGI_DATE_ _とし記述すると、HTMLでロードしたときに、そのファイル名とファイルの最終更新日時に置換えます。

#!/usr/local/bin/perl
#
# 機能:<PLAINTEXT>タグで運用しているCGIのソースを直接公開配布する。
# 作者:RIS
# __CGI_DATE__
#
# 公開配布するファイル
$koukai = " jsql.pl jsqlreadme.txt jsqlsetup ( osql.cgi ) dbmt.cgi httpload.cgi ";
#!/usr/local/bin/perl
#
# 機能:<PLAINTEXT>タグで運用しているCGIのソースを直接公開配布する。
# 作者:RIS
# httpload.cgi 2001/07/23 12:32  ←__CGI_DATE__が置換え表示される
#

 


Copyright © 2000,2001 RIS  All Rights Reserved.
http://nlwww.com/jp/ris/
ニューロングWWWのホームへ