GetFieldPrecisionメソッド

機能

フィールドの精度(桁数)を取得します。

形式

インデクス番号で指定する場合

UINT32  GetFieldPrecision(UINT32  dwIndex) throw DBSQLCA

フィールド名で指定する場合

UINT32  GetFieldPrecision(LPCTSTR lpctFieldName) throw DBSQLCA

引数

dwIndex

1から始まるフィールドの番号を指定します。

lpctFieldName

フィールドの名称を指定します。

戻り値

データ型:UINT32

フィールドの精度(桁数)を取得します。COL_TYPE_NUMERICの場合,小数点以下を含めた数値の有効桁数を取得します。

機能詳細

指定されたフィールドのデータの精度(桁数)を取得します。

指定されたフィールドのデータ型によって,戻り値の持つ意味が異なるものがあります。各データ型で返す値(Precision,Scale)を,表4-2から4-9に示します。

表4-2 Precision,Scaleで返す値(ORACLE)

データ型PrecisionScale
NUMBER(固定小数点数)定義長小数点以下の桁数
NUMBER(浮動小数点数)450
VARCHAR2定義長0
RAW定義長0
LONG00
LONG RAW00
DATE320
ROWID180

注※ この値は,sizeof(DBR_DATETIME)で取得した値です。

表4-3 Precision,Scaleで返す値(SQL Anywhere)

データ型PrecisionScale
CHAR
CHARACTER
VARCHAR
CHARACTER VARYING
定義長0
SYSNAME300
LONG VARCHAR
TEXT
00
SMALLINT
BIT
TINYINT
60
INT
INTEGER
110
DECIMAL
NUMERIC
定義長定義長
MONEY194
SMALLMONEY104
REAL90
DOUBLE170
DATE320
TIME320
TIMESTAMP
DATETIME
SMALLDATETIME
320
BINARY定義長0
LONG BINARY
IMAGE
00

注※ この値は,sizeof(DBR_DATETIME)で取得した値です。

表4-4 Precision,Scaleで返す値(Adaptive Server Anywhere)

データ型PrecisionScale
CHAR
CHARACTER
VARCHAR
CHARACTER VARYING
定義長0
SYSNAME300
LONG VARCHAR
TEXT
00
SMALLINT
BIT
TINYINT
OLDBIT
60
INT
INTEGER
110
DECIMAL
NUMERIC
定義長定義長
MONEY194
SMALLMONEY104
REAL90
DOUBLE170
DATE320
TIME320
TIMESTAMP
DATETIME
SMALLDATETIME
320
BINARY
VARBINARY
定義長0
LONG BINARY
IMAGE
java serialization
java.lang.Object
00
BIGINT200

注※ この値は,sizeof(DBR_DATETIME)で取得した値です

表4-5 Precision,Scaleで返す値(SQL Server)

データ型PrecisionScale
CHAR
VARCHAR
定義長0
TEXT00
SMALLINT
TINYINT
BIT
60
INT110
DECIMAL
NUMERIC
定義長定義長
MONEY194
SMALLMONEY104
REAL90
DOUBLE170
DATETIME
SMALLDATETIME
320
TIMESTAMP80
BINARY
VARBINARY
定義長0
IMAGE00

注※ この値は,sizeof(DBR_DATETIME)で取得した値です

表4-6 Precision,Scaleで返す値(HiRDB)

データ型PrecisionScale
SMALLINT60
INT110
SMALLFLT90
FLOAT170
DECIMAL定義長小数点以下の桁数
CHAR定義長0
VARCHAR定義長0
MCHAR定義長0
MVARCHAR定義長0
NCHAR定義長×20
NVARCHAR定義長×20
DATE320
TIME320
INTERVAL YEAR TO DAY320
INTERVAL HOUR TO SECOND320
BLOB定義長0
BINARY定義長0

注※ この値は,sizeof(DBR_DATETIME)で取得した値です。

表4-7 Precision,Scaleで返す値(XDM/RD)

データ型PrecisionScale
DECIMAL定義長小数点以下の桁数
LARGE DECIMAL定義長小数点以下の桁数
INT110
SMALLINT60
FLOAT170
SMALLFLT90
CHAR定義長0
VARCHAR定義長0
LONG VARCHAR定義長0
MCHAR定義長0
MVARCHAR定義長0
LONG MVARCHAR定義長0
NCHAR定義長×20
NVARCHAR定義長×20
LONG NVARCHAR定義長×20
DATE320

注※ この値は,sizeof(DBR_DATETIME)で取得した値です。

表4-8 Precision,Scaleで返す値(SQL/K)

データ型PrecisionScale
SMALLINT20
INTEGER40
DECIMAL定義長定義長
NUMERIC TRAILING定義長定義長
NUMERIC UNSIGNED定義長定義長
CHAR定義長0
NCHAR定義長×20
MCHAR定義長0
XCHAR定義長0

表4-9 Precision,Scaleで返す値(XDM/SD)

データ型PrecisionScale
BIT定義長0
$DBK(データベースキー)定義長0
NUMERIC TRAILING定義長定義長
DECIMAL定義長定義長
INTEGER40
SMALLFLT20
NCHAR定義長×20
CHAR定義長0

発生する例外

DBSQLCA(RetCode)

DB_ERROR_NOT_FOUND
指定したフィールドがありません。
DB_ERROR_CANNOT_BE_NULL
引数lpctFieldNameにNULLを指定しています。
DB_ERROR_BEFORE_EXECUTE
Executeメソッドが実行されていません。