所有者がDBOでないテーブル
LANSAの旧バージョンでは、実行時にSQL Serverのテーブルにアクセスする際、テーブル所有者に関する情報は使いません。これは、SQL Server 2000以前のバージョンでは、完全な所有者ソリューションが実装されていなかったからです。
下位互換性維持のため、既存の構成とコンパイル済みOAMでは、引き続き「元の動作」で説明する元の動作になります。
SQL ServerをLANSAデータベースとして使用し、LANSA V11.3以前のバージョンのLANSAを使用してそれを作成した場合、かつSQL Serverを使用してアプリケーションを配布した場合は、この新しい機能を使用してはいけません。必ず、以前のバージョンのLANSAで作成したLANSAデータベースを使用し続けてください。これは、コレクションをサポートしないデータベースからコレクションをサポートするデータベースへの移行が行えないからです。
LANSA V11.3で初めてSQL Server LANSAデータベースを使用する場合、またはLANSAデータベースとしてOracleまたはAdaptive Server Anywhereを使用する場合には、この機能を使用できます。
これまでは、SQL Server PC用外部テーブルのOAMの世代では、生成されるSQLから常にテーブル所有者が除外されていました。今後は、次の説明に従えば、テーブル所有者をSQLに含められるようになりました。
SQL Serverデータベースの設定を見つけ、パラメータが次のように設定されていることを確認します。「DATABASE_TYPE=MSSQLS, SUPPORTS_COLLECTIONS=YES.」テーブルのOAMを再構築します。
注:Microsoft、LANSAとも、テーブルの所有者をDBOとするようお勧めしています。そうでないテーブルにはアクセスできません。たまたま所有者がDBOである同名のテーブルがあれば、そちらが読み込まれてしまいます。
SQL Serverの任意のユーザーは、ストアド・プロシージャsp_addaliasを使うことで、テーブルを自動的にDBOとして作成できます。例えば「sp_addalias user1, dbo」と指定します。詳しくはSQL Serverの資料を参照してください。
SQL Serverのデータ型Smalldatetimeの使い方
SQL ServerのSmalldatetime型は、取り扱える日付の範囲が狭いので、この型の列にはシステム変数*TIMESTAMP_HIVALを使わないでください。
次のトピックも参照してください。