へー,相加相乗平均の新しい証明(朝日新聞)とな。論文はこれ。ふーん,一番単純な帰納法のお手本みたいね。早速どっかで使おうっと。
久々に仕事に集中した日。つーても,丸々一月ほったらかしていた事案を着手したと言うだけだが。
ODBC-ODBC bridgeを使って,Windows側にあるACCESSファイルを,ODBC経由で,Vine Linux側のPHPスクリプトからアクセスするという件。相手側がWindowsドメイン管理下にあるため,何が原因か切り分けができずにいたのだが,何とか下記の手順で接続するまではできた(らしい?)。
0. brodbc03.tgzをダウンロードし,Windows側にorbrd.exe(ODBC-ODBC bridgeサーバ)をインストールしてもらい
サーバのIPアドレスを教えてもらう
ポート番号(22002がデフォルト)
DSN, Database名, UID, PWD
1. UNIX ODBCドライバをインストールする
# apt-get install unixODBC unixODBC-devel
2. brodbc03.tgzのうち, client/makefile.uxを次のように書き換える。
# unixODBC
ODBCLIB = /usr/lib/libodbcinst.so.1.0.0 <-- libodbcにはSQL APIがなくなっていたので
3. makeしてbrodbc.soを/usr/libにコピー
4. /etc/odbcinst.iniに追記
[brodbc03]
Description = ODBC-ODBC bridge
Driver = /usr/local/lib/brodbc.so <--ここ
UsageCount = 1
5. /etc/odbc.initに追記(まだ不確定)
[test1]
Driver = brodbc03
Server = 192.168.xxx.xxx <-- ODBC設定済みのWindowsマシン
Port = xxxxx
TARGETDSN = TEST1ODBC
Database = TEST1
Username = user
Password = user
Servercharset = Shift_jis
Charset = eucjp
Debug = 0[test2]
Driver = brodbc03
Server = 192.168.xxx.xxx
Port = xxxxx
TARGETDSN = TEST2ODBC
Database = TEST2
Username = user
Password = user
Servercharset = Shift_jis
Charset = eucjp
Debug = 0
6. isqlコマンドで接続確認
$ isql test17. php-odbcライブラリをインストール
(略)
SQL> <-- このプロンプトが出ればおっけ
$ isql test2
(略)
SQL>
# apt-get install php5-odbc php-odbc7'. Apache2をソースからコンパイルしている場合は,PHPも
./configure --prefix=/usr/local/apache2 --with-apxs2=/usr/local/apache2/bin/apxs --with-unixODBC --with-mysqlとやって作り直しておく。
8. phpから接続テスト
//データベースへの接続を開く
$conn_id = odbc_connect("test1", "user", "user");
if(!$conn_id)
{
print "データベースにつながりません\n";
exit;
}
// SQL Query発行
$result = odbc_do($conn_id, "SQL文");
if(!$result)
{
print "警告!: 結果が正しく戻ってきません.\n";
}
else
{
while(odbc_fetch_row($result))
{
print odbc_result($result, 1) . ", " . odbc_result($result, 2) . "\n";
}
}
//データベースへの接続を閉じる
$ret = odbc_close($conn_id);
ハーめんどくさ。これでもまだアクセスがきちんと確認できたか不明。一歩前進だとは思うが完全解決への道のりは長そうだ。
[2008-08-27 追記] 無事接続確認できました。しかし・・・使えるSQL文に制限があるのってものすごく不自由だ。所詮,ODBCはSQLのサブセットしかサポートできてないから,しゃーないのだが。
さて,客人を迎えに行ってから寝ます。