Microsoft SQL Server

所有者が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に含められるようになりました。

Databases

     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を使わないでください。

次のトピックも参照してください。

Timestamp 型、DateTime 型の列の取り扱い

PC 外部ファイル