0

CRecordSet(MFC ODBC)を使用した一括行フェッチに関連するクエリがあります。

MSDN のページには、次のように書かれています。

メンバー関数 IsDeleted、IsFieldDirty、IsFieldNull、IsFieldNullable、SetFieldDirty、および SetFieldNull は、一括行フェッチを実装するレコードセットでは使用できません。ただし、IsDeleted の代わりに GetRowStatus を呼び出し、IsFieldNullable の代わりに GetODBCFieldInfo を呼び出すことができます。

ここで、フィールドに「NULL」/「値がない」データが含まれているかどうかを確認したいと思います。IsFieldNull関数が一括行フェッチで機能しないため、これを確認するにはどうすればよいですか?

4

1 に答える 1

-1

IsFieldNullと機能の違いがありIsFieldNullableます。

したがって、論理的には、バルク行フェッチを行っているため、特定の行のフィールドが null であるかどうかを知ることはできません。ただし、特定のフィールドが null 可能かどうかを判断できるのは、そのフィールドが null 値を受け入れることができるかどうかだけです。


このCODBCFieldInfo構造体には、ODBC データ ソースのフィールドに関する情報が含まれています。

m_nNullabilityフィールドが Null 値を受け入れるかどうかを識別するというメンバーがあります。SQL_NULLABLEこれは、フィールドがNull 値を受け入れる場合、またはフィールドが Null 値を受け入れない場合の 2 つの値のいずれSQL_NO_NULLSかになります。

そのため、参照によってオブジェクトを収集CODBCFieldInfoする関数に構造体のオブジェクトを渡します。CRecordset::GetODBCFieldInfoしたがって、心配する必要はありません。更新された値を取得し、m_nNullabilityそのオブジェクトのメンバー値をチェックして、特定の行のフィールドが null かどうかではなく、フィールドが null 可能かどうかのみを確認します

http://msdn.microsoft.com/en-us/library/xexc6xef(v=vs.80).aspx

http://msdn.microsoft.com/en-us/library/k50dcc9s(v=vs.80).aspx

CRecordset::GetODBCFieldInfo関数には 2 つのバージョンがあります。関数の 1 つのバージョンでは、フィールドを名前で検索できます。もう 1 つのバージョンでは、フィールドをインデックスで検索できます。

于 2013-04-11T10:17:37.473 に答える