search cancel

CA Gen : 可変⻑属性に作用するlength関数は、アプリケーションに使用される DBMS(TD)の種類により異なる結果を返すことについて

book

Article ID: 135823

calendar_today

Updated On:

Products

Gen

Issue/Introduction

可変⻑属性に作用するlength関数は、アプリケーションに使用される DBMS(TD)の種類により異なる結果を返すことについて

Environment

Release: r7.6

Component: CA Gen Run Time

Resolution

データベースにアクセスするためにOracle、DB2(UDB)、ADO.Netを使用した場合、可変⻑属性に作用するlength関数は現在のその属性の⻑さを返します。また、データベースにアクセスするためにODBCを使用した場合、可変⻑属性に作用するlength関数はその属性の定義された⻑さを返します。

 

具体的には、データベースにアクセスするためにOracle、DB2(UDB)、ADO.Netを使用した場合、テーブルから読まれた可変⻑エンティティアクション属性に作用するlength関数は現在のその属性の⻑さを返します。

データベースにアクセスするためにODBCを使用した場合、テーブルから読まれた可変⻑エンティティアクション属性に作用するlength関数はその属性の定義された⻑さを返します。

例えば、テーブル上で"ABC"という値が入っている⻑さ5で定義された可変⻑属性では、

- アプリケーションがネイティブのOracle、DB2(UDB)、ADO.Net接続を介してデータベースへ接続している場合、その属性に作用するlength関数によって返される値は3です。

- アプリケーションがODBC接続を介してデータベースへ接続している場合、その属性に作用するlength関数によって返される値は5です。

ODBCはデータベースのREADから返された⻑さについてのみ、可変⻑フィールドのための埋め込まれたSQLやADO.NETとはふるまいが異なります。可変⻑フィールドがデータベースに書き込まれる時、他のDBMSターゲットの時と同じように後続スペースは切り捨てられます。READ時に定義された⻑さを返された結果、余分な⻑さはアクション図での使用にパフォーマンス的な影響は出ておりませんが、もし必要であればTRIM関数で実際の⻑さに減らしてもかまいません。

SQLServerにとってはODBCがGenによって提供された唯一のDBMSアクセスのための実装であるため、上記に記述した相違はSQLServerにとっては重要です。

Additional Information

Old Japanese Knowledge document ID: JTEC001770

CA Genのその他のFAQについては、以下のリンクからご確認ください。

CA Gen FAQ一覧表