所有者が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に含められるようになりました。
LANSAデータベースとしてSQL Serverを使用する場合、LANSA V11.3 CD(またはそれ以降)から新しい構成にインストールし、OAMをテーブル用に再構築します。
LANSAデータベースとしてSQL Serverを使用しない場合、X_DBMENV.DATを修正します。これを行うには、デスクトップのLANSAシステム・フォルダの [構成/管理] メニューから、[ユーティリティ]/[データベース]サブメニュー項目を選択します。
SQL Serverデータベースの設定を見つけ、パラメータが次のように設定されていることを確認します。「DATABASE_TYPE=MSSQLS, SUPPORTS_COLLECTIONS=YES.」テーブルのOAMを再構築します。
注:
配布済みシステムを変更する必要はありません。OAMの世代のみが影響を受けます。
テーブルを再インポートする必要はありません。
SQL Serverを使用して実行される新しい構成では常にコレクションを使用するため、実行時にアクセスされるテーブルは、インポート時と同じ所有者になっている必要があります。
元の動作
Microsoft、LANSAとも、テーブルの所有者をDBOとするようお勧めしています。そうでないテーブルにはアクセスできません。たまたま所有者がDBOである同名のテーブルがあれば、そちらが読み込まれてしまいます。
SQL Serverの任意のユーザーは、ストアド・プロシージャsp_addaliasを使うことで、テーブルを自動的にDBOとして作成できます。例えば「sp_addalias user1, dbo」と指定します。詳しくはSQL Serverの資料を参照してください。
SQL Serverのデータ型Smalldatetimeの使い方
SQL ServerのSmalldatetime型は、取り扱える日付の範囲が狭いので、この型の列にはシステム変数*TIMESTAMP_HIVALを使わないでください。
次のトピックも参照してください。
