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
ySetSourceTableName
de las tablas adjuntas y usar la función miembroRefreshLink
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
ySetValidationRule
, y las funciones miembroGetValidationText
ySetValidationText
.Usar la función miembro
Open
para crear un objetoCDaoRecordset
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
En todos los casos, primero construya un objeto
CDaoTableDef
; para ello, proporcione un puntero a un objeto CDaoDatabase al que pertenece la tabla.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 aCreate
, no se llama aOpen
.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
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 estructurasCDaoIndexFieldInfo
.m_nFields
Debe especificar el número de campos de la matriz de estructurasCDaoFieldInfo
.
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 origenAFX_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, ExternaAFX_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
CDaoTableDef::RefreshLink
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)