2005-03-24

λ Windowsネィティブ環境でのPostgreSQLのインストールと実行についてのよくある質問とその回答

  • なぜエンコーディングにUnicodeを選択できないのですか?
  • ターミナルサービスセッションからはPostgreSQLをインストールできないというエラーメッセージが現れます。

あと必要な権限の話とか、Windows固有の注意点がちょうどいい感じでまとまってる。

しかし PostgreSQL 8.0 Windows版って OLEDBプロバイダ,.NET データプロバイバが付属しているのもありがたい。 最初の一歩がずいぶんと楽になっている。

…割には OLEDBプロバイダ使ってる人は全然見つからんな。 IIS+PostgreSQL という選択は今だったら ASP.NET だろうし。

λ [Windows] PostgreSQL 8.0 をアクセスする JScript

テーブル作成済み,INSERTとSELECTできる権限もつけているという前提での 最低限の JScript サンプル。ConnectionStringの location パラメータにデータベース名を指定するという仕様には違和感がある。

<package>
<job id="postgresqltest">
<?job debug="true" error="true"?>
<script language="JScript">
function ExecuteScalar(conn, sql)
{
  var rs;
  var sql;
  try {
    var recordsAffected;
    rs = conn.Execute(sql, recordsAffected, -1); // -1 : adCmdUnspecified
    if (rs.BOF && rs.EOF) { return null; } // エラー発生
    rs.MoveFirst();
    return rs.Fields(0).Value;
  } catch(e) {
    WScript.Echo(e.description);
    return null;
  }
}

var srcSQLConnectionString = "Provider=PostgreSQL;Data Source=localhost;location=testdb;";
var srcSQLid   = "postgres";
var srcSQLpass = "********";

var conn = new ActiveXObject("ADODB.Connection");
conn.ConnectionTimeout = 15;
conn.CommandTimeout = 30;
conn.CursorLocation = 3; // adUseClient

conn.Open(srcSQLConnectionString, srcSQLid, srcSQLpass, -1);
conn.Execute("INSERT INTO table1 (a,b) VALUES (1,'tako')", null, 0x80); // 0x80 : adExecuteNoRecords 行を返さないSQL文の実行
WScript.Echo(ExecuteScalar(conn, "SELECT COUNT(*) FROM table1;"));
conn.Close();

</script>
</job>
</package>

VBScriptで言うところの Nothing を作るのはとりあえずサボリ。

OLEDB経由であれば フィールド名に日本語、半角英数字、全角英数字の混じったアヤシゲTableへのアクセスも、 識別子となるところをいちいちダブルクオートでくくる という対応はしないで成功した。

λ slony1

CVS HEAD では、Windows用バックエンドができてて、フロントエンドは pgAdminIII に入れようとしているらしい。

FreeBSDをマスターとして1台立てて、Windowsのスレーブにばらまく構成なら現状でもいけるのかなあ。 帰りにペーパー読んでみる。

3/25 追記

単純にはダメ。スレーブ側にも xxid, slony1_funcs の2つのPostgreSQL拡張が必要になる。 カスケード可能なシステムなので、最初はスレーブでも後からマスターにもなれるような構成だった。

λ PGCluster

マルチマスターかつ[Windowsで動きません]と明記されてる。とりあえずパス。

λ Windows Server Update Services Release Candidate Open Evaluation

SQL Server必須なのか。月刊WindowsUpdateに対して MSDE で耐えられるのかどうかが謎だ。

[]