« 【講座】HSPミニミニスクリプト 第2回 ■TwitterをHSPで見よう | メイン | 【よみもの】ゆめゆめ日記 第8回 »

2009年11月09日

【講座】「教えて!おにたま!!」

<チャーリ さんからのおたより>

またまた、物好きな60過ぎのおっさん「チャーリー」の質問です。
WEBサーバー上のMySQLへPHPスクリプトなどを介さずに
直接HSP3.2で、接続して如何にしてクエリを投げるのかが
いまいち分かりません。
PHPスクリプトからとか、ローカルマシンのMySQLには接続できて
操作できるのですが、WEB上の別なスクリプトを介さないで、
HSP3.2だけで可能なのでしょうか?
”sockopen ”でサーバーまでは接続できるのですが、接続して
下位ディレクトリへ移動する方法やパスワードやクエリを
MySQLに渡す事はHSP3.2だけでできますか?


<こたえ>

以前にもMS Accessとの連携などでご質問を頂いたチャーリさん、
60歳過ぎてなお精力的に活動されていて素晴しいですね。
さて、データベースへの接続についてですが、HSPではhspdbという
プラグインがあります。これは、ODBCという仕組みを通して各種
データベースを操作するもので、MySQLに限らず多くのソフトを
サポートしています。
hspdbの詳しい使い方は、マニュアルを参照してもらうとして、
その準備としてODBC接続用のDSN(データソース)というものを
用意する必要があります。これは、Windowsのコントロールパネル
から、コンピューターの管理を開いて「データソース(ODBC)」
を選択すれば編集を行なうことができます。
たとえば、ここで「test」という名前のDSNを作成した場合は、
以下のスクリプトで接続させることができます。

#include "hspdb.as"
dbini ; ODBC環境の初期化
if stat : dialog "ODBC環境がありません。終了します。("+stat+")" : end
dbopen "DSN=test" ; DBと接続
if stat : dialog "DB接続できませんでした。終了します。("+stat+")" : end
dbclose ; DBとの接続を切ります

クエリを送る場合は、dbsend命令を使用することで、SQL文字列を
そのままスクリプトで指定することができます。
さて、サーバーへの接続方法ですが、ODBCの場合はこのDSNを作成
する段階で接続先のサーバーと、ユーザー名、パスワードなどを
あらかじめ入力する必要があります。
MySQLに接続するドライバ(MyODBC)では、Connection Parameters
という項目でそれぞれ指定することができるはずです。
これで、離れた場所にあるサーバーであっても、ネットワークを
経由して直接HSPから制御を行なうことが可能です。
ただし、すべてのサーバーをこれでコントロールできるという
ことではありません。WEBサーバーとして一般に公開されている
場合、セキュリティのためデータベースに直接接続するための
ポートは閉じられていることが多いです。
その際には、やはりPHPやPerlなどのCGIを通してデータベースの
アクセスを行なうしかありません。

それでは、またまた。HSPに限らず、PCのコトや
プログラミング関係どんなことでもお便り待っていますね。

(おにたま)

投稿者 usuaji : 2009年11月09日 17:34

口臭チェッカー市場