Compartir por


CDaoTableDef (clase)

Representa la definición almacenada de una tabla base o una tabla asociada.

Nota:

DAO se admite mediante Office 2013. DAO 3.6 es la versión final y se considera obsoleta.

Sintaxis

class CDaoTableDef : public CObject

Miembros

Constructores públicos

Nombre Descripción
CDaoTableDef::CDaoTableDef Construye un objeto CDaoTableDef.

Métodos públicos

Nombre Descripción
CDaoTableDef::Append Agrega una nueva tabla a la base de datos.
CDaoTableDef::CanUpdate Devuelve un valor distinto de cero si se puede actualizar la tabla (se pueden modificar la definición de los campos o las propiedades de la tabla).
CDaoTableDef::Close Cierra un objeto tabledef abierto.
CDaoTableDef::Create Crea una tabla que se puede agregar a la base de datos mediante Append.
CDaoTableDef::CreateField Se llama para crear un campo para una tabla.
CDaoTableDef::CreateIndex Se llama para crear un índice para una tabla.
CDaoTableDef::DeleteField Se llama para eliminar un campo de una tabla.
CDaoTableDef::DeleteIndex Se llama para eliminar un índice de una tabla.
CDaoTableDef::GetAttributes Devuelve un valor que indica una o varias características de un objeto CDaoTableDef.
CDaoTableDef::GetConnect Devuelve un valor que proporciona información sobre el origen de una tabla.
CDaoTableDef::GetDateCreated Devuelve la fecha y hora en que se creó la tabla base subyacente a un objeto CDaoTableDef.
CDaoTableDef::GetDateLastUpdated Devuelve la fecha y hora del cambio más reciente realizado en el diseño de la tabla base.
CDaoTableDef::GetFieldCount Devuelve un valor que representa el número de campos de la tabla.
CDaoTableDef::GetFieldInfo Devuelve tipos específicos de información sobre los campos de la tabla.
CDaoTableDef::GetIndexCount Devuelve el número de índices de la tabla.
CDaoTableDef::GetIndexInfo Devuelve tipos específicos de información sobre los índices de la tabla.
CDaoTableDef::GetName Devuelve el nombre de la tabla definido por el usuario.
CDaoTableDef::GetRecordCount Devuelve el número de registros de la tabla.
CDaoTableDef::GetSourceTableName Devuelve un valor que especifica el nombre de la tabla adjunta en la base de datos de origen.
CDaoTableDef::GetValidationRule Devuelve un valor que valida los datos de un campo cuando cambia o se agrega a una tabla.
CDaoTableDef::GetValidationText Devuelve un valor que especifica el texto del mensaje que muestra la aplicación si el valor de un objeto Field no satisface la regla de validación especificada.
CDaoTableDef::IsOpen Devuelve un valor distinto de cero si la tabla está abierta.
CDaoTableDef::Open Abre un objeto tabledef existente almacenado en la colección TableDefs de la base de datos.
CDaoTableDef::RefreshLink Actualiza la información de conexión de una tabla adjunta.
CDaoTableDef::SetAttributes Establece un valor que indica una o varias características de un objeto CDaoTableDef.
CDaoTableDef::SetConnect Establece un valor que proporciona información sobre el origen de una tabla.
CDaoTableDef::SetName Establece el nombre de la tabla.
CDaoTableDef::SetSourceTableName Establece un valor que especifica el nombre de una tabla adjunta en la base de datos de origen.
CDaoTableDef::SetValidationRule Establece un valor que valida los datos de un campo cuando cambia o se agrega a una tabla.
CDaoTableDef::SetValidationText Establece un valor que especifica el texto del mensaje que muestra la aplicación si el valor de un objeto Field no satisface la regla de validación especificada.

Miembros de datos públicos

Nombre Descripción
CDaoTableDef::m_pDAOTableDef Puntero a la interfaz DAO subyacente al objeto tabledef.
CDaoTableDef::m_pDatabase Base de datos de origen de esta tabla.

Comentarios

Cada objeto de base de datos DAO mantiene una colección, de nombre TableDefs, que contiene todos los objetos tabledef DAO guardados.

Puede manipular una definición de tabla mediante un objeto CDaoTableDef. Por ejemplo, puede hacer lo siguiente:

  • Examinar la estructura de campos e índices de cualquier tabla local, adjunta o externa de una base de datos.

  • Llamar a las funciones miembro SetConnect y SetSourceTableName de las tablas adjuntas y usar la función miembro RefreshLink para actualizar las conexiones a las tablas adjuntas.

  • Llamar a la función miembro CanUpdate para determinar si puede editar definiciones de campo en la tabla.

  • Obtener o establecer condiciones de validación mediante GetValidationRule y SetValidationRule, y las funciones miembro GetValidationText y SetValidationText.

  • Usar la función miembro Open para crear un objeto CDaoRecordset de tipo tabla, conjunto de registros dinámicos o instantánea.

    Nota:

    Las clases de base de datos DAO son distintas de las clases de base de datos MFC, basadas en la conectividad abierta de base de datos (ODBC). Todos los nombres de las clases de base de datos DAO tienen el prefijo "CDao". Sigue pudiendo acceder a orígenes de datos ODBC con las clases DAO; las clases DAO suelen ofrecer capacidades superiores porque son específicas del motor de base de datos de Microsoft Jet.

Uso de objetos tabledef para trabajar con una tabla existente o para crear una nueva

  1. En todos los casos, primero construya un objeto CDaoTableDef; para ello, proporcione un puntero a un objeto CDaoDatabase al que pertenece la tabla.

  2. Luego haga lo siguiente, en función de lo que quiera:

    • Para usar una tabla guardada existente, llame a la función miembro Open del objeto tabledef y proporcione el nombre de la tabla guardada.

    • Para crear una nueva tabla, llame a la función miembro Create del objeto tabledef y proporcione el nombre de la tabla. Llame a CreateField y CreateIndex para agregar campos e índices a la tabla.

    • Llame a Append para guardar la tabla; para ello, anéxela a la colección TableDefs de la base de datos. Create coloca el objeto tabledef en un estado abierto, por lo que después de llamar a Create, no se llama a Open.

      Sugerencia

      La manera más fácil de crear tablas guardadas es crearlas y almacenarlas en la base de datos mediante Microsoft Access. Luego puede abrirlas y usarlas en el código MFC.

Para usar el objeto tabledef que ha abierto o creado, cree y abra un objeto CDaoRecordset; para ello, especifique el nombre del objeto tabledef con un valor dbOpenTable en el parámetro nOpenType.

Para usar un objeto tabledef para crear un objeto CDaoRecordset, normalmente se crea o se abre un objeto tabledef como se ha descrito arriba y luego se crea un objeto recordset y se pasa un puntero al objeto tabledef cuando se llama a CDaoRecordset::Open. El objeto tabledef que pase debe estar en un estado abierto. Para obtener más información, vea la claseCDaoRecordset.

Cuando termine de usar un objeto tabledef, llame a su función miembro Close y destruya el objeto tabledef.

Jerarquía de herencia

CObject

CDaoTableDef

Requisitos

Encabezado: afxdao.h

CDaoTableDef::Append

Llame a esta función miembro después de llamar a Create para crear un nuevo objeto tabledef a fin de guardar el objeto tabledef en la base de datos.

virtual void Append();

Comentarios

La función anexa el objeto a la colección TableDefs de la base de datos. Puede usar el objeto tabledef como un objeto temporal al definirlo si no lo anexa, pero si quiere guardarlo y usarlo, debe llamar a Append.

Nota:

Si intenta anexar un objeto tabledef sin nombre (que contiene una cadena null o vacía), MFC inicia una excepción.

Para obtener información relacionada, vea el tema sobre el método Append en la Ayuda de DAO.

CDaoTableDef::CanUpdate

Llame a esta función miembro para determinar si se puede cambiar la definición de la tabla subyacente a un objeto CDaoTableDef.

BOOL CanUpdate();

Valor devuelto

Valor distinto de cero si la estructura de la tabla (esquema) se puede modificar (agregar o eliminar campos e índices), en caso contrario, 0.

Comentarios

De manera predeterminada, se puede actualizar una tabla recién creada subyacente a un objeto CDaoTableDef, pero no una tabla adjunta subyacente a un objeto CDaoTableDef. Un objeto CDaoTableDef puede ser actualizable, aunque el conjunto de registros resultante no lo sea.

Para obtener información relacionada, vea el tema sobre la propiedad Updatable en la Ayuda de DAO.

CDaoTableDef::CDaoTableDef

Construye un objeto CDaoTableDef.

CDaoTableDef(CDaoDatabase* pDatabase);

Parámetros

pDatabase
Puntero a un objeto CDaoDatabase.

Comentarios

Después de construir el objeto, debe llamar a la función miembro Create u Open. Cuando termine con el objeto, debe llamar a su función miembro Close y destruir el objeto CDaoTableDef.

CDaoTableDef::Close

Llame a esta función miembro para cerrar y liberar el objeto tabledef.

virtual void Close();

Comentarios

Normalmente, después de llamar a Close, se elimina el objeto tabledef si se ha asignado con new.

Puede llamar a Open de nuevo después de llamar a Close. Esto permite reutilizar el objeto tabledef.

Para obtener información relacionada, vea el tema sobre el método Close en la Ayuda de DAO.

CDaoTableDef::Create

Llame a esta función miembro para crear una nueva tabla guardada.

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

Parámetros

lpszName
Puntero a una cadena que contiene el nombre de la tabla.

lAttributes
Valor correspondiente a las características de la tabla representada por el objeto tabledef. Puede usar OR bit a bit para combinar cualquiera de las constantes siguientes:

Constante Descripción
dbAttachExclusive En las bases de datos que usan el motor de base de datos de Microsoft Jet, indica que la tabla es una tabla adjunta abierta para uso exclusivo.
dbAttachSavePWD En las bases de datos que usan el motor de base de datos de Microsoft Jet, indica que el identificador de usuario y la contraseña de la tabla adjunta se guardan con la información de conexión.
dbSystemObject Indica que la tabla es una tabla del sistema proporcionada por el motor de base de datos de Microsoft Jet.
dbHiddenObject Indica que la tabla es una tabla oculta proporcionada por el motor de base de datos de Microsoft Jet.

lpszSrcTable
Puntero a una cadena que contiene el nombre de la tabla de origen. De manera predeterminada, este valor se inicializa como NULL.

lpszConnect
Puntero a una cadena que contiene la cadena de conexión predeterminada. De manera predeterminada, este valor se inicializa como NULL.

Comentarios

Una vez que haya asignado nombre al objeto tabledef, puede llamar a Append para guardarlo en la colección TableDefs de la base de datos. Después de llamar a Append, el objeto tabledef está en un estado abierto y se puede usar para crear un objeto CDaoRecordset.

Para obtener información relacionada, vea el tema sobre el método CreateTableDef en la Ayuda de DAO.

CDaoTableDef::CreateField

Llame a esta función miembro para agregar un campo a la tabla.

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

void CreateField(CDaoFieldInfo& fieldinfo);

Parámetros

lpszName
Puntero a una expresión de cadena que especifica el nombre de este campo.

nType
Valor que indica el tipo de datos del campo. Puede ser uno de estos valores:

Tipo Tamaño (bytes) Descripción
dbBoolean 1 byte BOOL
dbByte BYTE
dbInteger 2 int
dbLong 4 long
dbCurrency 8 Currency (COleCurrency)
dbSingle 4 flotante
dbDouble 8 doble
dbDate 8 Date/Time ( COleDateTime)
dbText 1 - 255 Text (CString)
dbLongBinary 0 Long Binary (objeto OLE), CLongBinary o CByteArray
dbMemo 0 Memo (CString)

lSize
Valor que indica el tamaño máximo, en bytes, de un campo que contiene texto, o el tamaño fijo de un campo que contiene texto o valores numéricos. El parámetro lSize se omite en todos los campos, excepto en los de texto.

lAttributes
Valor que corresponde a las características del campo y que se puede combinar mediante un operador OR bit a bit.

Constante Descripción
dbFixedField El tamaño del campo es fijo (valor predeterminado para los campos numéricos).
dbVariableField El tamaño del campo es variable (solo campos de texto).
dbAutoIncrField El valor del campo de los nuevos registros se incrementa automáticamente a un entero largo único que no se puede cambiar. Solo se admite en tablas de base de datos de Microsoft Jet.
dbUpdatableField Se puede cambiar el valor del campo.
dbDescending El campo se ordena en orden descendente (Z - A o 100 - 0) (solo se aplica a un objeto Field en una colección Fields de un objeto Index). Si omite esta constante, el campo se ordena en orden ascendente (A - Z o 0 - 100) (valor predeterminado).

fieldinfo
Una referencia a una estructura CDaoFieldInfo.

Comentarios

Se crea un objeto DAOField (OLE) y se anexa a la colección Fields del objeto DAOTableDef (OLE). Además de su uso para examinar las propiedades del objeto, también puede usar CDaoFieldInfo para construir un parámetro de entrada para crear nuevos campos en un objeto tabledef. La primera versión de CreateField es más sencilla de usar, pero si quiere un control más preciso, puede usar la segunda versión de CreateField, que toma un parámetro CDaoFieldInfo.

Si usa la versión de CreateField que toma un parámetro CDaoFieldInfo, debe establecer cuidadosamente cada uno de los siguientes miembros de la estructura CDaoFieldInfo:

  • m_strName

  • m_nType

  • m_lSize

  • m_lAttributes

  • m_bAllowZeroLength

Los miembros restantes de CDaoFieldInfo deben establecerse en 0, FALSE o una cadena vacía, según corresponda para el miembro, o puede producirse una CDaoException.

Para obtener información relacionada, vea el tema sobre el método CreateField en la Ayuda de DAO.

CDaoTableDef::CreateIndex

Llame a esta función para agregar un índice a una tabla.

void CreateIndex(CDaoIndexInfo& indexinfo);

Parámetros

indexinfo
Referencia a una estructura CDaoIndexInfo.

Comentarios

Los índices especifican el orden de los registros a los que se accede desde las tablas de base de datos y si se aceptan o no registros duplicados. Los índices también proporcionan un acceso eficaz a los datos.

No es necesario crear índices para las tablas, aunque en tablas grandes y sin indexar, el acceso a un registro específico o la creación de un conjunto de registros puede llevar mucho tiempo. Por otro lado, la creación de demasiados índices ralentiza las operaciones de actualización, anexión y eliminación, ya que todos los índices se actualizan automáticamente. Tenga en cuenta estos factores a la hora de decidir qué índices crear.

Se deben establecer los siguientes miembros de la estructura CDaoIndexInfo:

  • m_strName Se debe proporcionar un nombre.

  • m_pFieldInfos Debe apuntar a una matriz de estructuras CDaoIndexFieldInfo.

  • m_nFields Debe especificar el número de campos de la matriz de estructuras CDaoFieldInfo.

Si se establece en FALSE, se omiten los miembros restantes. Además, el miembro m_lDistinctCount se omite durante la creación del índice.

CDaoTableDef::DeleteField

Llame a esta función miembro para quitar un campo y hacer que no sea accesible.

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

Parámetros

lpszName
Puntero a una expresión de cadena que es el nombre de un campo existente.

nIndex
Índice del campo en la colección Fields de base cero de la tabla, para la búsqueda por índice.

Comentarios

Puede usar esta función miembro en un nuevo objeto que no se haya anexado a la base de datos o cuando CanUpdate devuelva un valor distinto de cero.

Para obtener información relacionada, vea el tema sobre el método Delete en la Ayuda de DAO.

CDaoTableDef::DeleteIndex

Llame a esta función miembro para eliminar un índice de una tabla subyacente.

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

Parámetros

lpszName
Puntero a una expresión de cadena que es el nombre de un índice existente.

nIndex
Índice de matriz del objeto de índice en la colección TableDefs de base cero de la base de datos, para la búsqueda por índice.

Comentarios

Puede usar esta función miembro en un nuevo objeto que no se haya anexado a la base de datos o cuando CanUpdate devuelva un valor distinto de cero.

Para obtener información relacionada, vea el tema sobre el método Delete en la Ayuda de DAO.

CDaoTableDef::GetAttributes

En un objeto CDaoTableDef, el valor devuelto especifica las características de la tabla representada por el objeto CDaoTableDef y puede ser una suma de estas constantes:

long GetAttributes();

Valor devuelto

Devuelve un valor que indica una o varias características de un objeto CDaoTableDef.

Comentarios

Constante Descripción
dbAttachExclusive En las bases de datos que usan el motor de base de datos de Microsoft Jet, indica que la tabla es una tabla adjunta abierta para uso exclusivo.
dbAttachSavePWD En las bases de datos que usan el motor de base de datos de Microsoft Jet, indica que el identificador de usuario y la contraseña de la tabla adjunta se guardan con la información de conexión.
dbSystemObject Indica que la tabla es una tabla del sistema proporcionada por el motor de base de datos de Microsoft Jet.
dbHiddenObject Indica que la tabla es una tabla oculta proporcionada por el motor de base de datos de Microsoft Jet.
dbAttachedTable Indica que la tabla es una tabla adjunta de una base de datos no ODBC, como una base de datos Paradox.
dbAttachedODBC Indica que la tabla es una tabla adjunta de una base de datos ODBC, como Microsoft SQL Server.

Una tabla del sistema es una tabla creada por el motor de base de datos de Microsoft Jet para contener distinta información interna.

Una tabla oculta es una tabla creada para uso temporal por el motor de base de datos de Microsoft Jet.

Para obtener más información, vea el tema sobre la propiedad Attributes en la Ayuda de DAO.

CDaoTableDef::GetConnect

Llame a esta función miembro para obtener la cadena de conexión de un origen de datos.

CString GetConnect();

Valor devuelto

Objeto CString que contiene la ruta de acceso y el tipo de base de datos de la tabla.

Comentarios

En un objeto CDaoTableDef que representa una tabla adjunta, el objeto CString consta de una o dos partes (un especificador de tipo de base de datos y una ruta de acceso a la base de datos).

La ruta de acceso como se muestra en la tabla siguiente es la ruta de acceso completa del directorio que contiene los archivos de base de datos, y debe ir precedida del identificador "DATABASE=". En algunos casos (como en las bases de datos de Microsoft Jet y Microsoft Excel) se incluye un nombre de archivo específico en el argumento de ruta de acceso de la base de datos.

La tabla de CDaoTableDef::SetConnect muestra posibles tipos de base de datos y sus especificadores y rutas de acceso de base de datos correspondientes:

Para las tablas base de base de base de datos de Microsoft Jet, el especificador es una cadena vacía ("").

Si se requiere contraseña pero no se proporciona, el controlador ODBC muestra un cuadro de diálogo de inicio de sesión la primera vez que se accede a una tabla y, de nuevo, si la conexión se cierra y se vuelve a abrir. Si una tabla adjunta tiene el atributo dbAttachSavePWD, la confirmación de inicio de sesión no aparece cuando se vuelve a abrir la tabla.

Para obtener información relacionada, vea el tema sobre la propiedad Connect en la Ayuda de DAO.

CDaoTableDef::GetDateCreated

Llame a esta función para determinar la fecha y hora en que se creó la tabla subyacente al objeto CDaoTableDef.

COleDateTime GetDateCreated();

Valor devuelto

Valor que contiene la fecha y hora de creación de la tabla subyacente al objeto CDaoTableDef.

Comentarios

La configuración de fecha y hora se deriva del equipo en el que se ha creado o actualizado por última vez la tabla base. En un entorno multiusuario, los usuarios deben obtener esta configuración directamente del servidor de archivos para evitar discrepancias; es decir, todos los clientes deben usar un origen de hora "estándar", quizás de un servidor.

Para obtener información relacionada, vea el tema "DateCreated, LastUpdated Properties" en la Ayuda de DAO.

CDaoTableDef::GetDateLastUpdated

Llame a esta función para determinar la fecha y hora en que se actualizó por última vez la tabla subyacente al objeto CDaoTableDef.

COleDateTime GetDateLastUpdated();

Valor devuelto

Valor que contiene la fecha y hora en que la tabla subyacente al objeto CDaoTableDef se actualizó por última vez.

Comentarios

La configuración de fecha y hora se deriva del equipo en el que se ha creado o actualizado por última vez la tabla base. En un entorno multiusuario, los usuarios deben obtener esta configuración directamente del servidor de archivos para evitar discrepancias; es decir, todos los clientes deben usar un origen de hora "estándar", quizás de un servidor.

Para obtener información relacionada, vea el tema "DateCreated, LastUpdated Properties" en la Ayuda de DAO.

CDaoTableDef::GetFieldCount

Llame a esta función miembro para recuperar el número de campos definidos en la tabla.

short GetFieldCount();

Valor devuelto

Número de campos de la tabla.

Comentarios

Si su valor es 0, no hay objetos en la colección.

Para obtener información relacionada, vea el tema sobre la propiedad Count en la Ayuda de DAO.

CDaoTableDef::GetFieldInfo

Llame a esta función miembro para obtener varios tipos de información sobre un campo definido en el objeto 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);

Parámetros

nIndex
Índice del objeto de campo en la colección Fields de base cero de la tabla, para la búsqueda por índice.

fieldinfo
Una referencia a una estructura CDaoFieldInfo.

dwInfoOptions
Opciones que especifican qué información sobre el campo que se va a recuperar. Las opciones disponibles se enumeran aquí junto con lo que hacen que la función devuelva:

  • AFX_DAO_PRIMARY_INFO (Valor predeterminado) Nombre, Tipo, Tamaño, Atributos. Use esta opción para un rendimiento más rápido.

  • AFX_DAO_SECONDARY_INFO Información principal más: Posición ordinal, Requerida, Permitir longitud cero, Orden de intercalación, Nombre externo, Campo de origen, Tabla de origen

  • AFX_DAO_ALL_INFO Información principal y secundaria más: Regla de validación, Texto de validación, Valor predeterminado

lpszName
Puntero al nombre del objeto de campo, para la búsqueda por nombre. El nombre es una cadena de hasta 64 caracteres que asigna un nombre único al campo.

Comentarios

Una versión de la función permite buscar un campo por índice. La otra versión permite buscar un campo por nombre.

Para obtener una descripción de la información devuelta, vea la estructura CDaoFieldInfo. Esta estructura tiene miembros que corresponden a los elementos de información enumerados anteriormente en la descripción de dwInfoOptions. Si solicita información en un nivel, también obtiene información de los niveles anteriores.

Para obtener más información, vea el tema sobre la propiedad Attributes en la Ayuda de DAO.

CDaoTableDef::GetIndexCount

Llame a esta función miembro para obtener el número de índices de una tabla.

short GetIndexCount();

Valor devuelto

Número de índices de la tabla.

Comentarios

Si su valor es 0, no hay índices en la colección.

Para obtener información relacionada, vea el tema sobre la propiedad Count en la Ayuda de DAO.

CDaoTableDef::GetIndexInfo

Llame a esta función miembro para obtener varios tipos de información sobre un índice definido en el objeto 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);

Parámetros

nIndex
Índice numérico del objeto Index en la colección Indexes de base cero de la tabla, para la búsqueda por su posición en la colección.

indexinfo
Referencia a una estructura CDaoIndexInfo.

dwInfoOptions
Opciones que especifican qué información sobre el índice se va a recuperar. Las opciones disponibles se enumeran aquí junto con lo que hacen que la función devuelva:

  • AFX_DAO_PRIMARY_INFO Nombre, Información de campos, Campos. Use esta opción para un rendimiento más rápido.

  • AFX_DAO_SECONDARY_INFO Información principal más: Principal, Única, Agrupada, Omitir valores null, Requerida, Externa

  • AFX_DAO_ALL_INFO Información principal y secundaria más: Recuento de valores únicos

lpszName
Puntero al nombre del objeto de índice, para la búsqueda por nombre.

Comentarios

Una versión de la función permite buscar un índice por su posición en la colección. La otra versión permite buscar un índice por nombre.

Para obtener una descripción de la información devuelta, vea la estructura CDaoIndexInfo. Esta estructura tiene miembros que corresponden a los elementos de información enumerados anteriormente en la descripción de dwInfoOptions. Si solicita información en un nivel, también obtiene información de los niveles anteriores.

Para obtener más información, vea el tema sobre la propiedad Attributes en la Ayuda de DAO.

CDaoTableDef::GetName

Llame a esta función miembro para obtener el nombre definido por el usuario de la tabla subyacente.

CString GetName();

Valor devuelto

Nombre definido por el usuario de una tabla.

Comentarios

Este nombre comienza con una letra y puede contener un máximo de 64 caracteres. Puede incluir números y caracteres de subrayado, pero no signos de puntuación ni espacios.

Para obtener más información, consulte el tema "Name Property" (Propiedad de UserName) en la Ayuda de DAO.

CDaoTableDef::GetRecordCount

Llame a esta función miembro para averiguar cuántos registros hay en un objeto CDaoTableDef.

long GetRecordCount();

Valor devuelto

Número de registros a los que se accede en un objeto tabledef.

Comentarios

Una llamada a GetRecordCount en un objeto CDaoTableDef de tipo tabla refleja el número aproximado de registros de la tabla y se ve afectada inmediatamente a medida que se agregan y eliminan registros de tabla. Las transacciones revertidas aparecen como parte del recuento de registros hasta que se llama a CDaoWorkSpace::CompactDatabase. Un objeto CDaoTableDef sin registros tiene un valor de propiedad de recuento de registros de 0. Cuando se trabaja con tablas adjuntas o bases de datos ODBC, GetRecordCount siempre devuelve -1.

Para obtener información relacionada, vea el tema sobre la propiedad RecordCount en la Ayuda de DAO.

CDaoTableDef::GetSourceTableName

Llame a esta función miembro para recuperar el nombre de una tabla adjunta en una base de datos de origen.

CString GetSourceTableName();

Valor devuelto

Objeto CString que especifica el nombre de origen de una tabla adjunta, o una cadena vacía si se trata de una tabla de datos nativa.

Comentarios

Una tabla adjunta es una tabla de otra base de datos vinculada a una base de datos de Microsoft Jet. Los datos de las tablas adjuntas permanecen en la base de datos externa, donde otras aplicaciones pueden manipularlos.

Para obtener información relacionada, vea el tema sobre la propiedad SourceTableName en la Ayuda de DAO.

CDaoTableDef::GetValidationRule

Llame a esta función miembro para recuperar la regla de validación de un objeto tabledef.

CString GetValidationRule();

Valor devuelto

Objeto CString que valida los datos de un campo cuando cambia o se agrega a una tabla.

Comentarios

Las reglas de validación se usan en conexión con operaciones de actualización. Si un objeto tabledef contiene una regla de validación, las actualizaciones de este deben ajustarse a los criterios predeterminados antes de cambiar los datos. Si el cambio no se ajusta a los criterios, se inicia una excepción que contiene el valor de GetValidationText. En el caso de un objeto CDaoTableDef, CString es de solo lectura en una tabla adjunta y de lectura y escritura en una tabla base.

Para obtener información relacionada, vea el tema sobre la propiedad ValidationRule en la Ayuda de DAO.

CDaoTableDef::GetValidationText

Llame a esta función para recuperar la cadena que se va a mostrar cuando un usuario escriba datos que no se ajusten a la regla de validación.

CString GetValidationText();

Valor devuelto

Objeto CString que especifica el texto que se muestra si el usuario escribe datos que no se ajustan a la regla de validación.

Comentarios

En el caso de un objeto CDaoTableDef, CString es de solo lectura en una tabla adjunta y de lectura y escritura en una tabla base.

Para obtener información relacionada, vea el tema sobre la propiedad ValidationText de la Ayuda de DAO.

CDaoTableDef::IsOpen

Llame a esta función miembro para determinar si el CDaoTableDef objeto está abierto actualmente.

BOOL IsOpen() const;

Valor devuelto

Valor distinto de cero si el objeto CDaoTableDef está abierto; de lo contrario, 0.

Comentarios

CDaoTableDef::m_pDatabase

Contiene un puntero al objeto CDaoDatabase de esta tabla.

Comentarios

CDaoTableDef::m_pDAOTableDef

Contiene un puntero a la interfaz OLE del objeto tabledef DAO subyacente al objeto CDaoTableDef.

Comentarios

Use este puntero si necesita acceder directamente a la interfaz DAO.

CDaoTableDef::Open

Llame a esta función miembro para abrir un objeto tabledef guardado anteriormente en la colección TableDefs de la base de datos.

virtual void Open(LPCTSTR lpszName);

Parámetros

lpszName
Puntero a una cadena que especifica un nombre de tabla.

Comentarios

Llame a esta función miembro para actualizar la información de conexión de una tabla adjunta.

void RefreshLink();

Comentarios

Para cambiar la información de conexión de una tabla adjunta, llame a SetConnect en el objeto CDaoTableDef correspondiente y luego use la función miembro RefreshLink para actualizar la información. Cuando se llama a RefreshLink, las propiedades de la tabla adjunta no cambian.

Para obligar a que la información de conexión modificada se aplique, se deben cerrar todos los objetos CDaoRecordset abiertos basados en este objeto tabledef.

Para obtener información relacionada, vea el tema sobre el método RefreshLink en la Ayuda de DAO.

CDaoTableDef::SetAttributes

Establece un valor que indica una o varias características de un objeto CDaoTableDef.

void SetAttributes(long lAttributes);

Parámetros

lAttributes
Características de la tabla representada por el objeto CDaoTableDef; puede ser una suma de estas constantes:

Constante Descripción
dbAttachExclusive En las bases de datos que usan el motor de base de datos de Microsoft Jet, indica que la tabla es una tabla adjunta abierta para uso exclusivo.
dbAttachSavePWD En las bases de datos que usan el motor de base de datos de Microsoft Jet, indica que el identificador de usuario y la contraseña de la tabla adjunta se guardan con la información de conexión.
dbSystemObject Indica que la tabla es una tabla del sistema proporcionada por el motor de base de datos de Microsoft Jet.
dbHiddenObject Indica que la tabla es una tabla oculta proporcionada por el motor de base de datos de Microsoft Jet.

Comentarios

Al establecer varios atributos, puede combinarlos si suma las constantes adecuadas con el operador OR bit a bit. Si se establece dbAttachExclusive en una tabla no adjunta, se produce una excepción. La combinación de los valores siguientes también produce una excepción:

  • dbAttachExclusive | dbAttachedODBC

  • dbAttachSavePWD | dbAttachedTable

Para obtener más información, vea el tema sobre la propiedad Attributes en la Ayuda de DAO.

CDaoTableDef::SetConnect

En un objeto CDaoTableDef que representa una tabla adjunta, el objeto de cadena consta de una o dos partes (un especificador de tipo de base de datos y una ruta de acceso a la base de datos).

void SetConnect(LPCTSTR lpszConnect);

Parámetros

lpszConnect
Puntero a una expresión de cadena que especifica parámetros adicionales que se van a pasar a controladores ODBC o ISAM instalables.

Comentarios

La ruta de acceso como se muestra en la tabla siguiente es la ruta de acceso completa del directorio que contiene los archivos de base de datos, y debe ir precedida del identificador "DATABASE=". En algunos casos (como en las bases de datos de Microsoft Jet y Microsoft Excel) se incluye un nombre de archivo específico en el argumento de ruta de acceso de la base de datos.

Nota:

No incluya espacios en blanco en torno al sigo igual en las instrucciones de ruta de acceso con el formato "DATABASE=drive:\\path". Esto haría que se iniciara una excepción y se produjera un error en la conexión.

En la tabla siguiente se muestran posibles tipos de base de datos y sus especificadores y rutas de acceso de base de datos correspondientes:

Tipo de base de datos Especificador Path
Base de datos con el motor de base de datos de Jet "[ database];" " drive:\\ path\\ filename.MDB"
dBASE III "dBASE III;" " drive:\\ path"
dBASE IV "dBASE IV;" " drive:\\ path"
dBASE 5 "dBASE 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 o Excel 95 "Excel 5.0;" " drive:\\ path\\ filename.XLS"
Excel 97 "Excel 8.0;" " drive:\\ path\ filename.XLS"
Importación HTML "HTML Import;" " drive:\\ path\ filename"
Exportación HTML "HTML Export;" " drive:\\ path"
Texto "Text;" "drive:\\path"
ODBC "ODBC; DATABASE= database; UID= user;PWD= password; DSN= datasourcename; LOGINTIMEOUT= seconds;" (Puede que no sea una cadena de conexión completa para todos los servidores; es solo un ejemplo. Es muy importante no tener espacios entre los parámetros). None
Exchange "Exchange;

MAPILEVEL= folderpath;

[TABLETYPE={ 0 | 1 };]

[PROFILE= profile;]

[PWD= password;]

[DATABASE= database;]"
"drive:\\ path\\ filename.MDB"

Nota:

Btrieve no se admite a partir de DAO 3.5.

Debe usar una barra diagonal inversa doble (\\) en las cadenas de conexión. Si ha modificado las propiedades de una conexión existente mediante SetConnect, posteriormente debe llamar a RefreshLink. Si va a inicializar las propiedades de conexión mediante SetConnect, no necesita llamar a RefreshLink, pero si decide hacerlo, anexe primero el objeto tabledef.

Si se requiere contraseña pero no se proporciona, el controlador ODBC muestra un cuadro de diálogo de inicio de sesión la primera vez que se accede a una tabla y, de nuevo, si la conexión se cierra y se vuelve a abrir.

Puede establecer la cadena de conexión de un objeto CDaoTableDef si proporciona un argumento de origen a la función miembro Create. Puede comprobar el valor para determinar el tipo, la ruta de acceso, el identificador de usuario, la contraseña o el origen de datos ODBC de la base de datos. Para obtener más información, vea la documentación del controlador en cuestión.

Para obtener información relacionada, vea el tema sobre la propiedad Connect en la Ayuda de DAO.

CDaoTableDef::SetName

Llame a esta función miembro para establecer un nombre definido por el usuario para una tabla.

void SetName(LPCTSTR lpszName);

Parámetros

lpszName
Puntero a una expresión de cadena que especifica un nombre para una tabla.

Comentarios

El nombre debe comenzar con una letra y puede contener un máximo de 64 caracteres. Puede incluir números y caracteres de subrayado, pero no signos de puntuación ni espacios.

Para obtener más información, consulte el tema "Name Property" (Propiedad de UserName) en la Ayuda de DAO.

CDaoTableDef::SetSourceTableName

Llame a esta función miembro para especificar el nombre de una tabla adjunta o el nombre de la tabla base en la que se basa el objeto CDaoTableDef, tal cual existe en el origen de los datos.

void SetSourceTableName(LPCTSTR lpszSrcTableName);

Parámetros

lpszSrcTableName
Puntero a una expresión de cadena que especifica un nombre de tabla en la base de datos externa. En una tabla base, el valor es una cadena vacía ("").

Comentarios

A continuación, debe llamar a RefreshLink. Este valor de propiedad está vacío en una tabla base y es de lectura y escritura en una tabla adjunta o un objeto no anexado a una colección.

Para obtener información relacionada, vea el tema sobre la propiedad SourceTableName en la Ayuda de DAO.

CDaoTableDef::SetValidationRule

Llame a esta función miembro para establecer una regla de validación para un objeto tabledef.

void SetValidationRule(LPCTSTR lpszValidationRule);

Parámetros

lpszValidationRule
Puntero a una expresión de cadena que valida una operación.

Comentarios

Las reglas de validación se usan en conexión con operaciones de actualización. Si un objeto tabledef contiene una regla de validación, las actualizaciones de este deben ajustarse a los criterios predeterminados antes de cambiar los datos. Si el cambio no se ajusta a los criterios, se muestra una excepción que contiene el texto de GetValidationText.

La validación solo se admite en bases de datos que usan el motor de base de datos de Microsoft Jet. La expresión no puede hacer referencia a funciones definidas por el usuario, funciones de agregado de dominio, funciones de agregado SQL o consultas. Una regla de validación de un objeto CDaoTableDef puede hacer referencia a varios campos de ese objeto.

Por ejemplo, en campos de nombre hire_date y termination_date, una regla de validación podría ser:

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

Para obtener información relacionada, vea el tema sobre la propiedad ValidationRule en la Ayuda de DAO.

CDaoTableDef::SetValidationText

Llame a esta función miembro para establecer el texto de excepción de una regla de validación de un objeto CDaoTableDef con una tabla base subyacente compatible con el motor de base de datos de Microsoft Jet.

void SetValidationText(LPCTSTR lpszValidationText);

Parámetros

lpszValidationText
Puntero a una expresión de cadena que especifica el texto mostrado si los datos especificados no son válidos.

Comentarios

No se puede establecer el texto de validación de una tabla adjunta.

Para obtener información relacionada, vea el tema sobre la propiedad ValidationText de la Ayuda de DAO.

Consulte también

CObject (clase)
Gráfico de jerarquías
CDaoDatabase (clase)
CDaoRecordset (clase)