Share via


CDaoTableDef クラス

ベース テーブル、またはアタッチ テーブルの格納された定義を表現します。

構文

class CDaoTableDef : public CObject

メンバー

パブリック コンストラクター

名前 説明
CDaoTableDef::CDaoTableDef CDaoTableDef オブジェクトを構築します。

パブリック メソッド

名前 説明
CDaoTableDef::Append データベースに新しいテーブルを追加します。
CDaoTableDef::CanUpdate テーブルを更新できる場合は 0 以外の値を返します (フィールドまたはテーブルプロパティの定義を変更できます)。
CDaoTableDef::Close 開いている tabledef を閉じます。
CDaoTableDef::Create Append を使用してデータベースに追加できるテーブルを 作成します
CDaoTableDef::CreateField テーブルのフィールドを作成するために呼び出されます。
CDaoTableDef::CreateIndex テーブルのインデックスを作成するために呼び出されます。
CDaoTableDef::D eleteField テーブルからフィールドを削除するために呼び出されます。
CDaoTableDef::D eleteIndex テーブルからインデックスを削除するために呼び出されます。
CDaoTableDef::GetAttributes オブジェクトの 1 つ以上の特性を示す値を CDaoTableDef 返します。
CDaoTableDef::GetConnect テーブルのソースに関する情報を提供する値を返します。
CDaoTableDef::GetDateCreated オブジェクトの基になるベース テーブルが作成された日時を CDaoTableDef 返します。
CDaoTableDef::GetDateLastUpdated 基本テーブルのデザインに対して行われた最新の変更の日時を返します。
CDaoTableDef::GetFieldCount テーブル内のフィールドの数を表す値を返します。
CDaoTableDef::GetFieldInfo テーブル内のフィールドに関する特定の種類の情報を返します。
CDaoTableDef::GetIndexCount テーブルのインデックスの数を返します。
CDaoTableDef::GetIndexInfo テーブルのインデックスに関する特定の種類の情報を返します。
CDaoTableDef::GetName テーブルのユーザー定義名を返します。
CDaoTableDef::GetRecordCount テーブル内のレコードの数を返します。
CDaoTableDef::GetSourceTableName ソース データベース内の添付テーブルの名前を指定する値を返します。
CDaoTableDef::GetValidationRule フィールド内のデータが変更またはテーブルに追加されるときに検証する値を返します。
CDaoTableDef::GetValidationText Field オブジェクトの値が指定された検証規則を満たしていない場合にアプリケーションが表示するメッセージのテキストを指定する値を返します。
CDaoTableDef::IsOpen テーブルが開いている場合は、0 以外の値を返します。
CDaoTableDef::Open データベースの TableDef のコレクションに格納されている既存の tabledef を開きます。
CDaoTableDef::RefreshLink 接続テーブルの接続情報を更新します。
CDaoTableDef::SetAttributes オブジェクトの 1 つ以上の特性を示す値を CDaoTableDef 設定します。
CDaoTableDef::SetConnect テーブルのソースに関する情報を提供する値を設定します。
CDaoTableDef::SetName テーブルの名前を設定します。
CDaoTableDef::SetSourceTableName ソース データベース内のアタッチされたテーブルの名前を指定する値を設定します。
CDaoTableDef::SetValidationRule フィールド内のデータが変更またはテーブルに追加されるときに検証する値を設定します。
CDaoTableDef::SetValidationText Field オブジェクトの値が指定された検証規則を満たしていない場合にアプリケーションに表示されるメッセージのテキストを指定する値を設定します。

パブリック データ メンバー

名前 説明
CDaoTableDef::m_pDAOTableDef tabledef オブジェクトの基になる DAO インターフェイスへのポインター。
CDaoTableDef::m_pDatabase このテーブルのソース データベース。

解説

各 DAO データベース オブジェクトメイン、保存されているすべての DAO tabledef オブジェクトを含む TableDefs と呼ばれるコレクションが含まれています。

オブジェクトを使用してテーブル定義を CDaoTableDef 操作します。 たとえば、次のようなことができます。

  • データベース内のローカル テーブル、アタッチテーブル、または外部テーブルのフィールドとインデックス構造を調べます。

  • アタッチされたテーブルの SetConnect および SetSourceTableName メンバー関数を呼び出し、そのメンバー関数を RefreshLink 使用して、アタッチされたテーブルへの接続を更新します。

  • メンバー関数を CanUpdate 呼び出して、テーブル内のフィールド定義を編集できるかどうかを判断します。

  • and SetValidationRule関数とメンバー関数をGetValidationRule使用して、検証条件をSetValidationTextGetValidationText取得または設定します。

  • メンバー関数をOpen使用して、テーブル、ダイナセット、またはスナップショットタイプCDaoRecordsetのオブジェクトを作成します。

    Note

    DAO データベース クラスは、Open Database Connectivity (ODBC) に基づく MFC データベース クラスとは異なります。 すべての DAO データベース クラス名には、"CDao" プレフィックスがあります。 DAO クラスを使用して ODBC データ ソースに引き続きアクセスできます。DAO クラスは、Microsoft Jet データベース エンジンに固有であるため、一般に優れた機能を提供します。

tabledef オブジェクトを使用して既存のテーブルを操作するか、新しいテーブルを作成するには

  1. いずれの場合も、最初にオブジェクトを CDaoTableDef 構築し、テーブルが属する CDaoDatabase オブジェクトへのポインターを指定します。

  2. 次に、必要に応じて次の操作を行います。

    • 既存の保存済みテーブルを使用するには、tabledef オブジェクトの Open メンバー関数を呼び出し、保存されたテーブルの名前を指定します。

    • 新しいテーブルを作成するには、tabledef オブジェクトの Create メンバー関数を呼び出し、テーブルの名前を指定します。 CreateField と CreateIndex を呼び出して、テーブルにフィールドとインデックスを追加します。

    • Append を呼び出して、データベースの TableDefs コレクションに追加してテーブルを保存します。 Create tabledef を開いている状態にするため、呼び出した Create 後は呼び出 Openしません。

      ヒント

      保存されたテーブルを作成する最も簡単な方法は、Microsoft Access を使用してテーブルを作成し、データベースに格納することです。 その後、MFC コードで開いて使用できます。

開いたまたは作成した tabledef オブジェクトを使用するには、オブジェクトをCDaoRecordset作成して開き、nOpenType パラメーターに値を指定dbOpenTableして tabledef の名前を指定します。

tabledef オブジェクトを使用してオブジェクトを作成CDaoRecordsetするには、通常、前述のように tabledef を作成または開き、レコードセット オブジェクトを作成し、CDaoRecordset::Open を呼び出すときに tabledef オブジェクトへのポインターを渡します。 渡す tabledef は、開いている状態である必要があります。 詳細については、CDaoRecordset クラスを参照してください。

tabledef オブジェクトの使用が完了したら、その Close メンバー関数を呼び出し、tabledef オブジェクトを破棄します。

継承階層

CObject

CDaoTableDef

要件

ヘッダー: afxdao.h

CDaoTableDef::Append

Create を呼び出して新しい tabledef オブジェクトを作成し、tabledef をデータベースに保存した後で、このメンバー関数を呼び出します。

virtual void Append();

解説

この関数は、データベースの TableDefs コレクションにオブジェクトを追加します。 tabledef は、追加しないことで定義するときに一時オブジェクトとして使用できますが、保存して使用する場合は、 を呼び出す Append必要があります。

Note

名前のない tabledef (null または空の文字列を含む) を追加しようとすると、MFC は例外をスローします。

関連情報については、DAO ヘルプの「Append メソッド」を参照してください。

CDaoTableDef::CanUpdate

このメンバー関数を呼び出して、オブジェクトの基になるテーブルの定義を CDaoTableDef 変更できるかどうかを判断します。

BOOL CanUpdate();

戻り値

テーブル構造 (スキーマ) を変更 (フィールドとインデックスの追加または削除) できる場合は 0 以外、それ以外の場合は 0。

解説

既定では、オブジェクトの基になる新しく作成されたテーブルを CDaoTableDef 更新でき、オブジェクトの基になるアタッチされたテーブルを CDaoTableDef 更新することはできません。 結果の CDaoTableDef レコードセットが更新できない場合でも、オブジェクトは更新可能な場合があります。

関連情報については、DAO ヘルプの「更新可能なプロパティ」を参照してください。

CDaoTableDef::CDaoTableDef

CDaoTableDef オブジェクトを構築します。

CDaoTableDef(CDaoDatabase* pDatabase);

パラメーター

pDatabase
CDaoDatabase オブジェクトへのポインター。

解説

オブジェクトを構築した後、Create または Open メンバー関数を呼び出す必要があります。 オブジェクトを終了したら、その Close メンバー関数を呼び出し、オブジェクトを破棄するCDaoTableDef必要があります。

CDaoTableDef::Close

tabledef オブジェクトを閉じて解放するには、このメンバー関数を呼び出します。

virtual void Close();

解説

通常、呼び出した Close後、tabledef オブジェクトが割り当てられた場合は削除します new

呼び出した後にもう一度 Open を呼び出Closeすことができます。 これにより、tabledef オブジェクトを再利用できます。

関連情報については、DAO ヘルプの「Close メソッド」を参照してください。

CDaoTableDef::Create

このメンバー関数を呼び出して、新しい保存済みテーブルを作成します。

virtual void Create(
    LPCTSTR lpszName,
    long lAttributes = 0,
    LPCTSTR lpszSrcTable = NULL,
    LPCTSTR lpszConnect = NULL);

パラメーター

lpszName
テーブルの名前を含む文字列へのポインター。

lAttributes
tabledef オブジェクトによって表されるテーブルの特性に対応する値。 ビットごとの OR を使用して、次のいずれかの定数を組み合わせることができます。

定数 説明
dbAttachExclusive Microsoft Jet データベース エンジンを使用するデータベースの場合、テーブルが排他的に開かれた添付テーブルであることを示します。
dbAttachSavePWD Microsoft Jet データベース エンジンを使用するデータベースの場合は、接続テーブルのユーザー ID とパスワードが接続情報と共に保存されることを示します。
dbSystemObject テーブルが Microsoft Jet データベース エンジンによって提供されるシステム テーブルであることを示します。
dbHiddenObject テーブルが Microsoft Jet データベース エンジンによって提供される非表示テーブルであることを示します。

lpszSrcTable
ソース テーブル名を含む文字列へのポインター。 既定では、この値は NULL として初期化されます。

lpszConnect
既定の接続文字列を含む文字列へのポインター。 既定では、この値は NULL として初期化されます。

解説

tabledef という名前を付けたら、Append を呼び出して、データベースの TableDefs コレクションに tabledef を保存できます。 呼び出したAppend後、tabledef は開いている状態になり、それを使用して CDaoRecordset オブジェクトを作成できます。

関連情報については、DAO ヘルプの「CreateTableDef メソッド」を参照してください。

CDaoTableDef::CreateField

このメンバー関数を呼び出して、テーブルにフィールドを追加します。

void CreateField(
    LPCTSTR lpszName,
    short nType,
    long lSize,
    long lAttributes = 0);

void CreateField(CDaoFieldInfo& fieldinfo);

パラメーター

lpszName
このフィールドの名前を指定する文字列式へのポインター。

nType
フィールドのデータ型を示す値。 設定には、次のいずれかの値を指定できます。

Type サイズ (バイト) 説明
dbBoolean 1 バイト BOOL
dbByte BYTE
dbInteger 2 int
dbLong 4 long
dbCurrency 8 Currency ( COleCurrency)
dbSingle 4 float
dbDouble 8 倍精度浮動小数点
dbDate 8 Date/Time ( COleDateTime)
dbText 1 - 255 Text ( CString)
dbLongBinary 0 Long Binary (OLE オブジェクト)、 CLongBinary 、または CByteArray
dbMemo 0 Memo ( CString)

lSize
テキストを含むフィールドの最大サイズ (バイト単位)、またはテキストまたは数値を含むフィールドの固定サイズを示す値。 テキスト フィールド以外のすべての場合、lSize パラメーターは無視されます。

lAttributes
フィールドの特性に対応し、ビットごとの OR を使用して結合できる値。

定数 説明
dbFixedField フィールド サイズは固定されています (数値フィールドの既定値)。
dbVariableField フィールド サイズは可変です (テキスト フィールドのみ)。
dbAutoIncrField 新しいレコードのフィールド値は、変更できない一意の長整数に自動的にインクリメントされます。 Microsoft Jet データベース テーブルでのみサポートされます。
dbUpdatableField フィールド値は変更できます。
dbDescending フィールドは降順 (Z - A または 100 - 0) で並べ替えられます (Index オブジェクトの Fields コレクション内の Field オブジェクトにのみ適用されます)。 この定数を省略すると、フィールドは昇順 (A ~ Z または 0 - 100) で並べ替えられます (既定値)。

Fieldinfo
CDaoFieldInfo 構造体への参照。

解説

DAOField (OLE) オブジェクトが作成され、(OLE) オブジェクトの Fields コレクションにDAOTableDef追加されます。 オブジェクトプロパティを調べるための使用に加えて、tabledefに新しいフィールドを作成するための入力パラメータを構築することもできます CDaoFieldInfo 。 最初のCreateFieldバージョンは簡単に使用できますが、より細かい制御が必要な場合は、パラメーターを受け取る CDaoFieldInfo 2 番目のバージョンをCreateField使用できます。

パラメーターを受け取るCDaoFieldInfoバージョンCreateFieldを使用する場合は、次の構造体の各メンバーを慎重に設定するCDaoFieldInfo必要があります。

  • m_strName

  • m_nType

  • m_lSize

  • m_lAttributes

  • m_bAllowZeroLength

再メインメンバーは、メンバーCDaoFieldInfo応じて 0、FAL Standard Edition、または空の文字列に設定する必要があります。またはCDaoException、発生する可能性があります。

関連情報については、DAO ヘルプの「CreateField メソッド」を参照してください。

CDaoTableDef::CreateIndex

テーブルにインデックスを追加するには、この関数を呼び出します。

void CreateIndex(CDaoIndexInfo& indexinfo);

パラメーター

indexinfo
CDaoIndexInfo 構造体への参照。

解説

インデックスは、データベース テーブルからアクセスされるレコードの順序と、重複するレコードを受け入れるかどうかを指定します。 インデックスは、データへの効率的なアクセスも提供します。

テーブルのインデックスを作成する必要はありませんが、インデックスのない大きなテーブルでは、特定のレコードにアクセスしたり、レコードセットを作成したりするのに時間がかかる場合があります。 一方、インデックスを作成しすぎると、すべてのインデックスが自動的に更新されるため、更新、追加、削除の操作が遅くなります。 作成するインデックスを決定するときは、これらの要因を考慮してください。

構造体の次のメンバーを CDaoIndexInfo 設定する必要があります。

  • m_strName 名前を指定する必要があります。

  • m_pFieldInfos 構造体の CDaoIndexFieldInfo 配列を指す必要があります。

  • m_nFields 構造体の配列 CDaoFieldInfo 内のフィールドの数を指定する必要があります。

再メインメンバーは、FAL Standard Edition に設定されている場合は無視されます。 さらに、インデックスの作成時に m_lDistinctCount メンバーは無視されます。

CDaoTableDef::D eleteField

このメンバー関数を呼び出してフィールドを削除し、アクセスできないようにします。

void DeleteField(LPCTSTR lpszName);
void DeleteField(int nIndex);

パラメーター

lpszName
既存のフィールドの名前である文字列式へのポインター。

Nindex
テーブルの 0 から始まる Fields コレクション内のフィールドのインデックス。インデックスによる参照用です。

解説

このメンバー関数は、データベースに追加されていない新しいオブジェクト、または CanUpdate が 0 以外の値を返すときに使用できます。

関連情報については、DAO ヘルプの「Delete メソッド」のトピックを参照してください。

CDaoTableDef::D eleteIndex

基になるテーブル内のインデックスを削除するには、このメンバー関数を呼び出します。

void DeleteIndex(LPCTSTR lpszName);
void DeleteIndex(int nIndex);

パラメーター

lpszName
既存のインデックスの名前である文字列式へのポインター。

Nindex
データベースの 0 から始まる TableDefs コレクション内のインデックス オブジェクトの配列インデックス。インデックスによる参照用です。

解説

このメンバー関数は、データベースに追加されていない新しいオブジェクト、または CanUpdate が 0 以外の値を返すときに使用できます。

関連情報については、DAO ヘルプの「Delete メソッド」のトピックを参照してください。

CDaoTableDef::GetAttributes

オブジェクトの CDaoTableDef 場合、戻り値はオブジェクトによって表されるテーブルの特性を CDaoTableDef 指定し、次の定数の合計を指定できます。

long GetAttributes();

戻り値

オブジェクトの 1 つ以上の特性を示す値を CDaoTableDef 返します。

解説

定数 説明
dbAttachExclusive Microsoft Jet データベース エンジンを使用するデータベースの場合、テーブルが排他的に開かれた添付テーブルであることを示します。
dbAttachSavePWD Microsoft Jet データベース エンジンを使用するデータベースの場合は、接続テーブルのユーザー ID とパスワードが接続情報と共に保存されることを示します。
dbSystemObject テーブルが Microsoft Jet データベース エンジンによって提供されるシステム テーブルであることを示します。
dbHiddenObject テーブルが Microsoft Jet データベース エンジンによって提供される非表示テーブルであることを示します。
dbAttachedTable テーブルが、Paradox データベースなどの ODBC 以外のデータベースからアタッチされたテーブルであることを示します。
dbAttachedODBC テーブルが、Microsoft SQL Server などの ODBC データベースからアタッチされたテーブルであることを示します。

システム テーブルは、さまざまな内部情報を格納するために Microsoft Jet データベース エンジンによって作成されたテーブルです。

非表示テーブルは、Microsoft Jet データベース エンジンによって一時的に使用するために作成されたテーブルです。

関連情報については、DAO ヘルプの「Attributes プロパティ」を参照してください。

CDaoTableDef::GetConnect

このメンバー関数を呼び出して、データ ソースの接続文字列を取得します。

CString GetConnect();

戻り値

CStringテーブルのパスとデータベースの種類を含むオブジェクト。

解説

アタッチされたテーブルを CDaoTableDef 表すオブジェクトの場合、 CString オブジェクトは 1 つまたは 2 つの部分 (データベース型指定子とデータベースへのパス) で構成されます。

次の表に示すパスは、データベース ファイルを含むディレクトリの完全なパスであり、その前に識別子 "DATABA Standard Edition=" を付ける必要があります。 場合によっては (Microsoft Jet および Microsoft Excel データベースと同様)、特定のファイル名がデータベース パス引数に含まれます。

CDaoTableDef::SetConnect のテーブルは、使用可能なデータベースの種類とそれに対応するデータベース指定子とパスを示しています。

Microsoft Jet データベース ベース テーブルの場合、指定子は空の文字列 ("") です。

パスワードが必要であっても指定されていない場合、ODBC ドライバーは、テーブルに初めてアクセスする際にログイン ダイアログ ボックスを表示し、接続を閉じて再度開くと、再度表示されます。 アタッチされたテーブルに属性がある dbAttachSavePWD 場合、テーブルを再度開いたときにログイン プロンプトは表示されません。

関連情報については、DAO ヘルプの「Connect プロパティ」を参照してください。

CDaoTableDef::GetDateCreated

この関数を呼び出して、オブジェクトの基になるテーブルが作成された日付と時刻を CDaoTableDef 確認します。

COleDateTime GetDateCreated();

戻り値

オブジェクトの基になる CDaoTableDef テーブルの作成日時を含む値。

解説

日付と時刻の設定は、ベース テーブルが作成または最後に更新されたコンピューターから派生します。 マルチユーザー環境では、ユーザーは、不一致を避けるために、ファイル サーバーから直接これらの設定を取得する必要があります。つまり、すべてのクライアントは、おそらく 1 つのサーバーから "標準" のタイム ソースを使用する必要があります。

関連情報については、DAO ヘルプの「DateCreated,LastUpdated プロパティ」を参照してください。

CDaoTableDef::GetDateLastUpdated

オブジェクトの基になるテーブルが最後に更新された日時を確認するには、この関数を CDaoTableDef 呼び出します。

COleDateTime GetDateLastUpdated();

戻り値

オブジェクトの基になるテーブルが最後に更新された日時を CDaoTableDef 含む値。

解説

日付と時刻の設定は、ベース テーブルが作成または最後に更新されたコンピューターから派生します。 マルチユーザー環境では、ユーザーは、不一致を避けるために、ファイル サーバーから直接これらの設定を取得する必要があります。つまり、すべてのクライアントは、おそらく 1 つのサーバーから "標準" のタイム ソースを使用する必要があります。

関連情報については、DAO ヘルプの「DateCreated,LastUpdated プロパティ」を参照してください。

CDaoTableDef::GetFieldCount

このメンバー関数を呼び出して、テーブルに定義されているフィールドの数を取得します。

short GetFieldCount();

戻り値

テーブル内のフィールドの数。

解説

値が 0 の場合、コレクション内にオブジェクトはありません。

関連情報については、DAO ヘルプの「Count プロパティ」を参照してください。

CDaoTableDef::GetFieldInfo

tabledef で定義されているフィールドに関するさまざまな種類の情報を取得するには、このメンバー関数を呼び出します。

void GetFieldInfo(
    int nIndex,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetFieldInfo(
    LPCTSTR lpszName,
    CDaoFieldInfo& fieldinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

パラメーター

Nindex
テーブルの 0 から始まる Fields コレクション内のフィールド オブジェクトのインデックス。インデックスによる参照用です。

Fieldinfo
CDaoFieldInfo 構造体への参照。

dwInfoOptions
取得するフィールドに関する情報を指定するオプション。 使用可能なオプションと、関数が返す原因を次に示します。

  • AFX_DAO_PRIMARY_INFO (既定値)名前、型、サイズ、属性。 最速のパフォーマンスを得る場合は、このオプションを使用します。

  • AFX_DAO_SECONDARY_INFO 主な情報に加えて、序数の位置、必須、ゼロ長の許可、照合順序、外部名、ソース フィールド、ソース テーブル

  • AFX_DAO_ALL_INFO プライマリとセカンダリの情報に加えて、検証規則、検証テキスト、既定値

lpszName
名前で検索するためのフィールド オブジェクトの名前へのポインター。 名前は、フィールドに一意の名前を付ける最大 64 文字の文字列です。

解説

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

返される情報の説明については、CDaoFieldInfo 構造体を参照してください。 この構造体には、dwInfoOptions の説明で上に示した情報の 項目に対応するメンバーがあります。 1 つのレベルで情報を要求すると、以前のレベルの情報も取得されます。

関連情報については、DAO ヘルプの「Attributes プロパティ」を参照してください。

CDaoTableDef::GetIndexCount

テーブルのインデックスの数を取得するには、このメンバー関数を呼び出します。

short GetIndexCount();

戻り値

テーブルのインデックスの数。

解説

値が 0 の場合、コレクション内にインデックスはありません。

関連情報については、DAO ヘルプの「Count プロパティ」を参照してください。

CDaoTableDef::GetIndexInfo

tabledef で定義されているインデックスに関するさまざまな種類の情報を取得するには、このメンバー関数を呼び出します。

void GetIndexInfo(
    int nIndex,
    CDaoIndexInfo& indexinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

void GetIndexInfo(
    LPCTSTR lpszName,
    CDaoIndexInfo& indexinfo,
    DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);

パラメーター

Nindex
テーブルの 0 から始まる Indexes コレクション内の Index オブジェクトの数値インデックス。コレクション内の位置による参照用です。

indexinfo
CDaoIndexInfo 構造体への参照。

dwInfoOptions
取得するインデックスに関する情報を指定するオプション。 使用可能なオプションと、関数が返す原因を次に示します。

  • AFX_DAO_PRIMARY_INFO 名前、フィールド情報、フィールド。 最速のパフォーマンスを得る場合は、このオプションを使用します。

  • AFX_DAO_SECONDARY_INFO プライマリ情報に加えて、プライマリ、一意、クラスター化、Null を無視、必須、外部

  • AFX_DAO_ALL_INFO プライマリとセカンダリの情報に加えて、個別のカウント

lpszName
名前で検索するためのインデックス オブジェクトの名前へのポインター。

解説

関数の 1 つのバージョンでは、コレクション内の位置でインデックスを検索できます。 もう 1 つのバージョンでは、名前でインデックスを検索できます。

返される情報の説明については、CDaoIndexInfo 構造体を参照してください。 この構造体には、dwInfoOptions の説明で上に示した情報の 項目に対応するメンバーがあります。 1 つのレベルで情報を要求すると、以前のレベルの情報も取得されます。

関連情報については、DAO ヘルプの「Attributes プロパティ」を参照してください。

CDaoTableDef::GetName

このメンバー関数を呼び出して、基になるテーブルのユーザー定義名を取得します。

CString GetName();

戻り値

テーブルのユーザー定義名。

解説

この名前は文字で始まり、最大 64 文字を含めることができます。 数字とアンダースコア文字を含めることができますが、句読点やスペースを含めることはできません。

関連情報については、DAO ヘルプの「Name プロパティ」を参照してください。

CDaoTableDef::GetRecordCount

オブジェクト内のレコードの数を調べるには、このメンバー関数を CDaoTableDef 呼び出します。

long GetRecordCount();

戻り値

tabledef オブジェクトでアクセスされるレコードの数。

解説

テーブル型CDaoTableDefオブジェクトの呼び出しGetRecordCountは、テーブル内のレコードの概数を反映し、テーブル レコードが追加および削除されるとすぐに影響を受けます。 ロールバックされたトランザクションは、CDaoWorkSpace::CompactDatabase を呼び出すまでレコード数の一部として表示されます。 CDaoTableDefレコードのないオブジェクトのレコード数プロパティの設定は 0 です。 アタッチされたテーブルまたは ODBC データベースを操作する場合は、 GetRecordCount 常に -1 を返します。

関連情報については、DAO ヘルプの「RecordCount プロパティ」を参照してください。

CDaoTableDef::GetSourceTableName

このメンバー関数を呼び出して、ソース データベース内の添付テーブルの名前を取得します。

CString GetSourceTableName();

戻り値

CStringアタッチされたテーブルのソース名を指定するオブジェクト。ネイティブ データ テーブルの場合は空の文字列。

解説

添付テーブルは、Microsoft Jet データベースにリンクされている別のデータベース内のテーブルです。 アタッチされたテーブルのデータはメイン外部データベースに再び格納されます。このデータは、他のアプリケーションで操作できます。

関連情報については、DAO ヘルプの「SourceTableName プロパティ」を参照してください。

CDaoTableDef::GetValidationRule

tabledef の検証規則を取得するには、このメンバー関数を呼び出します。

CString GetValidationRule();

戻り値

CStringフィールド内のデータが変更またはテーブルに追加されるときに検証するオブジェクト。

解説

検証規則は、更新操作に関連して使用されます。 tabledef に検証規則が含まれている場合、その tabledef の更新は、データが変更される前に、事前に定義された条件と一致する必要があります。 変更が条件と一致しない場合は、GetValidationText値を含む例外がスローされます。 オブジェクトの CDaoTableDef 場合、これは CString アタッチされたテーブルの場合は読み取り専用で、ベース テーブルの場合は読み取り/書き込み専用です。

関連情報については、DAO ヘルプの「ValidationRule プロパティ」を参照してください。

CDaoTableDef::GetValidationText

ユーザーが入力規則に一致しないデータを入力したときに表示する文字列を取得するには、この関数を呼び出します。

CString GetValidationText();

戻り値

CStringユーザーが入力規則に一致しないデータを入力した場合に表示されるテキストを指定するオブジェクト。

解説

オブジェクトの CDaoTableDef 場合、これは CString アタッチされたテーブルの場合は読み取り専用で、ベース テーブルの場合は読み取り/書き込み専用です。

関連情報については、DAO ヘルプの「ValidationText プロパティ」を参照してください。

CDaoTableDef::IsOpen

オブジェクトが現在開いているかどうかを判断するには、このメンバー関数を CDaoTableDef 呼び出します。

BOOL IsOpen() const;

戻り値

オブジェクトが CDaoTableDef 開いている場合は 0 以外、それ以外の場合は 0。

解説

CDaoTableDef::m_pDatabase

このテーブルの CDaoDatabase オブジェクトへのポインターを格納します。

解説

CDaoTableDef::m_pDAOTableDef

オブジェクトの基になる DAO tabledef オブジェクトの OLE インターフェイスへのポインターを CDaoTableDef 格納します。

解説

DAO インターフェイスに直接アクセスする必要がある場合は、このポインターを使用します。

CDaoTableDef::Open

このメンバー関数を呼び出して、以前にデータベースの TableDef のコレクションに保存された tabledef を開きます。

virtual void Open(LPCTSTR lpszName);

パラメーター

lpszName
テーブル名を指定する文字列へのポインター。

解説

このメンバー関数を呼び出して、接続テーブルの接続情報を更新します。

void RefreshLink();

解説

接続テーブルの接続情報を変更するには、対応するCDaoTableDefオブジェクトで SetConnect を呼び出し、メンバー関数をRefreshLink使用して情報を更新します。 呼び出 RefreshLinkすと、添付テーブルのプロパティは変更されません。

変更された接続情報を強制的に有効にするには、この tabledef に基づいて開いている すべての CDaoRecordset オブジェクトを閉じる必要があります。

関連情報については、DAO ヘルプの「RefreshLink メソッド」を参照してください。

CDaoTableDef::SetAttributes

オブジェクトの 1 つ以上の特性を示す値を CDaoTableDef 設定します。

void SetAttributes(long lAttributes);

パラメーター

lAttributes
オブジェクトによって CDaoTableDef 表されるテーブルの特性で、次の定数の合計を指定できます。

定数 説明
dbAttachExclusive Microsoft Jet データベース エンジンを使用するデータベースの場合、テーブルが排他的に開かれた添付テーブルであることを示します。
dbAttachSavePWD Microsoft Jet データベース エンジンを使用するデータベースの場合は、接続テーブルのユーザー ID とパスワードが接続情報と共に保存されることを示します。
dbSystemObject テーブルが Microsoft Jet データベース エンジンによって提供されるシステム テーブルであることを示します。
dbHiddenObject テーブルが Microsoft Jet データベース エンジンによって提供される非表示テーブルであることを示します。

解説

複数の属性を設定する場合は、ビットごとの OR 演算子を使用して適切な定数を合計することで、それらを組み合わせることができます。 接続されていないテーブルに設定 dbAttachExclusive すると、例外が発生します。 次の値を組み合わせると、例外も発生します。

  • dbAttachExclusive | dbAttachedODBC

  • dbAttachSavePWD | dbAttachedTable

関連情報については、DAO ヘルプの「Attributes プロパティ」を参照してください。

CDaoTableDef::SetConnect

添付テーブルを CDaoTableDef 表すオブジェクトの場合、文字列オブジェクトは 1 つまたは 2 つの部分 (データベース型指定子とデータベースへのパス) で構成されます。

void SetConnect(LPCTSTR lpszConnect);

パラメーター

lpszConnect
ODBC ドライバーまたはインストール可能な ISAM ドライバーに渡す追加のパラメーターを指定する文字列式へのポインター。

解説

次の表に示すパスは、データベース ファイルを含むディレクトリの完全なパスであり、その前に識別子 "DATABA Standard Edition=" を付ける必要があります。 場合によっては (Microsoft Jet および Microsoft Excel データベースと同様)、特定のファイル名がデータベース パス引数に含まれます。

Note

"DATABA Standard Edition=drive:\\path" という形式の等号パス ステートメントの周囲に空白を含めないでください。 これにより、例外がスローされ、接続が失敗します。

次の表は、使用可能なデータベースの種類と、対応するデータベース指定子とパスを示しています。

データベースの種類 指定子 パス
Jet データベース エンジンを使用したデータベース "[ database];" " drive:\\ path\\ filename。MDB"
dBA Standard Edition III "dBA Standard Edition III;" " drive:\\ path"
dBA Standard Edition IV "dBA Standard Edition IV;" " drive:\\ path"
dBA Standard Edition 5 "dBA Standard Edition 5.0;" " drive:\\ path"
Paradox 3.x "Paradox 3.x;" " drive:\\ path"
Paradox 4.x "Paradox 4.x;" " drive:\\ path"
Paradox 5.x "Paradox 5.x;" " drive:\\ path"
Excel 3.0 "Excel 3.0;" " drive:\\ path\\ filename.XLS"
Excel 4.0 "Excel 4.0;" " drive:\\ path\\ filename.XLS"
Excel 5.0 または Excel 95 "Excel 5.0;" " drive:\\ path\\ filename.XLS"
Excel 97 "Excel 8.0;" " drive:\\ path\ filename.XLS"
HTML インポート "HTML インポート;" " drive:\\ path\ filename"
HTML エクスポート "HTML エクスポート;" " drive:\\ path"
テキスト "Text;" "drive:\\path"
ODBC "ODBC;DATABA Standard Edition= database;UID= user;PWD= password;DSN= datasourcename;LOGINTIMEOUT= seconds;"(これは、すべてのサーバーの完全な接続文字列ではない可能性があります。これは単なる例です。パラメーター間にスペースを含めないようにすることが非常に重要です)。 なし
Exchange "Exchange;

MAPILEVEL= folderpath;

[TABLETYPE={ 0 | 1 };]

[PROFILE= profile;]

[PWD= password;]

[DATABA Standard Edition= database;]"
"drive:\\ path\\ filename.MDB"

Note

DAO 3.5 の時点では、Btrieve はサポートされなくなりました。

接続文字列では、二重円記号 (\\) を使用する必要があります。 既存の接続SetConnectのプロパティを変更した場合は、その後 RefreshLink を呼び出す必要があります。 を使用して SetConnect接続プロパティを初期化する場合は、呼び出す RefreshLink必要はありませんが、これを選択する必要がある場合は、最初に tabledef を追加します。

パスワードが必要であっても指定されていない場合、ODBC ドライバーは、テーブルに初めてアクセスする際にログイン ダイアログ ボックスを表示し、接続を閉じて再度開くと、再度表示されます。

メンバー関数にソース引数を指定することで、CDaoTableDefオブジェクトの接続文字列をCreate設定できます。 設定をチェックして、データベースの種類、パス、ユーザー ID、パスワード、または ODBC データ ソースを決定できます。 詳細については、特定のドライバーのドキュメントを参照してください。

関連情報については、DAO ヘルプの「Connect プロパティ」を参照してください。

CDaoTableDef::SetName

このメンバー関数を呼び出して、テーブルのユーザー定義名を設定します。

void SetName(LPCTSTR lpszName);

パラメーター

lpszName
テーブルの名前を指定する文字列式へのポインター。

解説

名前は文字で始まる必要があり、最大 64 文字を含めることができます。 数字とアンダースコア文字を含めることができますが、句読点やスペースを含めることはできません。

関連情報については、DAO ヘルプの「Name プロパティ」を参照してください。

CDaoTableDef::SetSourceTableName

このメンバー関数を呼び出して、データの元のソースに CDaoTableDef 存在するため、アタッチされたテーブルの名前またはオブジェクトの基になるベース テーブルの名前を指定します。

void SetSourceTableName(LPCTSTR lpszSrcTableName);

パラメーター

lpszSrcTableName
外部データベース内のテーブル名を指定する文字列式へのポインター。 ベース テーブルの場合、設定は空の文字列 ("") です。

解説

その後、RefreshLink を呼び出す必要があります。 このプロパティ設定は、ベース テーブルの場合は空で、添付テーブルまたはコレクションに追加されていないオブジェクトの場合は読み取り/書き込み可能です。

関連情報については、DAO ヘルプの「SourceTableName プロパティ」を参照してください。

CDaoTableDef::SetValidationRule

tabledef の検証規則を設定するには、このメンバー関数を呼び出します。

void SetValidationRule(LPCTSTR lpszValidationRule);

パラメーター

lpszValidationRule
操作を検証する文字列式へのポインター。

解説

検証規則は、更新操作に関連して使用されます。 tabledef に検証規則が含まれている場合、その tabledef の更新は、データが変更される前に、事前に定義された条件と一致する必要があります。 変更が条件と一致しない場合は、GetValidationTextテキストを含む例外が表示されます。

検証は、Microsoft Jet データベース エンジンを使用するデータベースでのみサポートされます。 式は、ユーザー定義関数、集計関数、SQL 集計関数メインクエリを参照できません。 オブジェクトの検証規則は、 CDaoTableDef そのオブジェクト内の複数のフィールドを参照できます。

たとえば、hire_date および termination_date という名前のフィールドの場合、検証規則は次のようになります。

myTableDef.SetValidationRule(_T("termination_date > hire_date"));

関連情報については、DAO ヘルプの「ValidationRule プロパティ」を参照してください。

CDaoTableDef::SetValidationText

このメンバー関数を呼び出して、Microsoft Jet データベース エンジンでサポートされている基になるベース テーブルを持つオブジェクトの検証規則 CDaoTableDef の例外テキストを設定します。

void SetValidationText(LPCTSTR lpszValidationText);

パラメーター

lpszValidationText
入力されたデータが無効な場合に表示されるテキストを指定する文字列式へのポインター。

解説

添付テーブルの検証テキストを設定することはできません。

関連情報については、DAO ヘルプの「ValidationText プロパティ」を参照してください。

関連項目

CObject クラス
階層図
CDaoDatabase クラス
CDaoRecordset クラス