by Hippo2000(1999/11/25)
DBD::Adabasモジュールのなのです。
なおこのドキュメントではCPANで公開されているDBD::Adabasのドキュメントを日本語化したものです。というよりほとんどDBD::ODBCをそのまま持ってきました。わかりにくい部分は本物を見てください。(^^;;
原本の著作権はTim Bunceさんがお持ちです(?)。
なお内容等が間違っていたら修正します。ご連絡ください
DBD::Adabas - DBIのためのAdabasドライバ
use DBI;
$dbh = DBI->connect('dbi:Adabas:DSN', 'user', 'password');
さらなる情報についてはDBIのマニュアルをご覧下さい。
(ほとんど原文のまま)
Fixed ``SQLNumResultCols err'' on joins and 'order by' with some drivers (see Microsoft Knowledge Base article #Q124899). Thanks to Paul O'Fallon for that one.
Added more (probably incomplete) support for unix Adabas in Makefile.PL
Increased default SQL_COLUMN_DISPLAY_SIZE and SQL_COLUMN_LENGTH to 2000 for drivers that don't provide a way to query them dynamically. Was 100!
When fetch reaches the end-of-data it automatically frees the internal ODBC statement handle and marks the DBI statement handle as inactive (thus an explicit 'finish' is *not* required).
Also:
LongTruncOk for Oracle ODBC (where fbh->datalen < 0)
Added tracing into SQLBindParameter (help diagnose oracle odbc bug)
Fixed/worked around bug/result from Latest Oracle ODBC driver where in
SQLColAttribute cbInfoValue was changed to 0 to indicate fDesc had a value
Added work around for compiling w/ActiveState PRK (PERL_OBJECT)
Updated tests to include date insert and type
Added more "backup" SQL_xxx types for tests
Updated bind test to test binding select
NOTE: bind insert fails on Paradox driver (don't know why)
Added support for: (see notes below)
SQLGetInfo via $dbh->func(xxx, GetInfo) SQLGetTypeInfo via $dbh->func(xxx, GetTypeInfo) SQLDescribeCol via $sth->func(colno, DescribeCol) SQLColAttributes via $sth->func(xxx, colno, ColAttributes) SQLGetFunctions via $dbh->func(xxx, GetFunctions) SQLColumns via $dbh->func(catalog, schema, table, column, 'columns')
Fixed $DBI::err to reflect the real ODBC error code which is a 5 char code, not necessarily numeric.
Fixed fetches when LongTruncOk == 1.
Updated tests to pass more often (hopefully 100% <G>)
Updated tests to test long reading, inserting and the LongTruncOk attribute.
Updated tests to be less driver specific.
今やこれらはテーブルを作るのにSQLGetTypeInfoに大きく頼っています。テストではこの関数をlong、varcharなどの型を正確に生成するためSQL型の名前をドライバに訊ねるのに使います。例えば、SQL_VARCHAR型のSQL Nameには、OracleではVARCHAR2で、MS AccessはTEXTを使っています。繰り返せば、SQL_LONGVARCHARはOracleではLONGであり、AccessではMEMOです。テストは現在、これを正しく取り扱っています。(少なくともAccessとOracle、MS SQLサーバーはテストします)
現在funcインターフェースを使って実装されている関数のうち少なくともいくつかは、DBI仕様で、より正式な関数に「移動」することが予想されます。DBI仕様が実装のメタデータをサポート/公式化するときにおこなわれるでしょう。これらのほとんどの関数はドライバとデータソースからより多くの情報を取得します。
$value = $dbh->func(6, GetInfo);
この関数はスカラ値を返し、それは数字または文字の値です。これはGetInfoに渡される引数に依存します。
use DBI qw(:sql_types);
$sth = $dbh->func(SQL_ALL_TYPES, GetInfo);
while (@row = $sth->fetch_row) {
...
}
この関数はDBIステートメントハンドルを返します。それは要求された型と互換性のある型名の入った結果セットを表します。SQL_ALL_TYPESはそのODBCドライバがサポートするすべての型を得るために使われます。注意:SQL_VARCHARのような値が正しく解釈されるために、use DBIにqw(:sql_types)を入れることは、とても重要です。これはSQL型名をプログラムの名前空間にインポートします。qw(:sql_types)を忘れて、おかしな結果を取得することは非常に多い間違いです。
SQLColumns
SQLSpecialColumns
SQLStatistics
SQLTables (use tables()) call
Level 2
SQLColumnPrivileges
SQLForeignKeys
SQLPrimaryKeys
SQLProcedureColumns
SQLProcedures
SQLTablePrivileges
SQLDataSources
SQLDrivers
SQLNativeSql
典型的には、WebサーバーはNTサービスまたはWindows95/98サービスとしてインストールされます。これは典型的には、Webサーバー自体はWeb開発者とは同じ環境、同じ許可を持っていないことを意味します。この状況は、もちろん、Unix サーバにも当てはまります。しかし、Win32上では、問題は普通ちょっと違うのです。
1) ファイルがNTFSパーティションにあれば、Webサービスユーザがそのファイルにアクセスできる権限を持っているかを確認して下さい。
2) ファイルがリモート・コンピュータにあるならば、Webサービスユーザがそのファイルにアクセスする権限を持っているかをチェックしてください。
3) そのファイルがリモート・コンピュータにあるならば、「X:\」という書き方ではなく、そのファイルのUNCパスを使ってみて下さい。これは、サービスが完全に同じアクセス許可をを取らない、さらに重要なことは、ドライバ文字そのものはマシンにグローバルであることからとても重要になりえます。つまりサービスがZ:にアクセスしようとすると、その時点でそのマシンにログインしたユーザにZ:が依存してしまいます。(サービスを開発している間、これについてテストしてきました。--これは醜く、コストがかかる割に価値がありません)
残念なことに、私が持っているAccess ODBCドライバはUNCパスを指定することを許して折らず、X:\という書き方だけを許しています。これを回避するにはすくなくとも1つの方法があります。最も簡単な方法は、多分、Regeditを使って、HKYE_LOCALUSERS\SOFTWARE\ODBC\"あなたのDSN"に行くことです(もちろんシステムDSNをだと仮定しています)。いくつかの設定があり、それは典型的にはドライバを特定するものです。Accessドライバにとって変更する重要な値は、例えばDBQという値です。これは実際にはAccessデータベースのファイル名になります。
これらはソートして、加えなければいけないのですが...。いくつかはODBC開発者にだけ関係しています。(でもそれらを削りたくありません)。
http://www.ids.net/~bjepson/freeODBC/index.html
http://dataramp.com/
http://www.openlink.co.uk
http://www.syware.com
ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。