 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Sab 21 May, 2005 2:21 am Asunto: Tablas en tiempo de ejecucion? |
|
|
Hola a todos, Alguien podria ayudarme con un problema que tengo, quiero crear tablas en tiempo de ejecucion y no puedo hacerlo, es decir quiero que mi programa(BD-local) chequee si existen las tablas si es asi que las use, si no estan que las cree, y aca esta mi problema no se como hacerlo desde la VCL, estube estudiando el codigo que esta en la pag. 270 del libro La Cara Oculta C++, y no me funciona, para tablas dBase, que es la tabla que estoy usando, probe con el codigo que esta en el libro "Borland C++ Builder 5 Developers Guide" Chapter 21, Working with tables 21-18, y tampoco, directamente no compila, y no es un error de version de compilador yo en este momento estoy usando C++ Builder 4.
Es mucho pedir un programa de ejemplo, pero me serviria de lujo si me aconsejan alguna guia o tutorial para esto.
Gracias. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Sab 21 May, 2005 5:35 am Asunto: |
|
|
checa este ejemplo te sirve para crear tablas tipo paradox, las dbase, siguen el mismo estilo
| Código: | //---------------------------------------------------------------------------
void __fastcall TForm1::BotonCrearClick(TObject *Sender)
{
// Establecemos el alias, que determinará
// la localización de la tabla en el disco
TablaGrupos->DatabaseName = "MIBASE";
// Facilitamos el nombre de la nueva tabla
// y su tipo
TablaGrupos->TableName = "GRUPOS.DB";
TablaGrupos->TableType = ttParadox;
// Usamos la propiedad FieldDefs para definir
// las columnas que contendrá la tabla
// Una columna con el identificador del grupo,
// que será una cadena de 10 caracteres y
// cuyo valor será requerido siempre
TablaGrupos->FieldDefs->Add("ID_GRUPO", ftString, 10, true);
// y un comentario adicional
TablaGrupos->FieldDefs->Add("Comentario", ftString, 128, false);
TIndexOptions Opciones;
Opciones << ixPrimary << ixUnique;
// Usamos la propiedad IndexDefs para definir
// los índices que nos interesen. En este caso
// un índice formado por la columna ID_GRUPO
TablaGrupos->IndexDefs->Add("IndiceGrupo", "ID_GRUPO", Opciones);
// Creamos la tabla
TablaGrupos->CreateTable();
TablaGrupos->Open(); // y la abrimos
// Abrimos la tabla de artículos y nos ponemos
// en la primera fila
TablaArticulos->Open();
TablaArticulos->First();
// Mientras haya filas en la tabla
while (! TablaArticulos->Eof) {
// Añadimos una nueva fila a la tabla de grupos
TablaGrupos->Append();
// Establecemos el valor de la columna obligatoria,
// que contendrá el identificador de grupo
TablaGrupos->FieldByName("ID_GRUPO")->AsString =
TablaArticulosGrupo->Value;
try { // Intentamos añadir la nueva fila a la tabla
TablaGrupos->Post();
} catch(...) {
// Si se genera una excepción, porque se
// produzca una duplicación en el índice
TablaGrupos->Cancel(); // cancelamos la operación
}
// Pasamos a la siguiente fila de la
// tabla de artículos
TablaArticulos->Next();
}
// Cerramos la tabla de artículos
TablaArticulos->Close();
// y activamos la propiedad Enabled del TDataSource
DataSource1->Enabled = true;
}
//--------------------------------------------------- |
saludos _________________

Ultima edición por Cesar C. Salazar Gonzalez el Lun 23 May, 2005 6:52 pm, editado 1 vez |
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Dom 22 May, 2005 10:21 pm Asunto: |
|
|
Muchisimas gracias César, ese codigo si que funciona..
César supón que quieres crear un index secundario como sería el codigo?, yo busque algo como "ixSecundary" pero esto aparentemente esto no existe, entonses se me ocurre que deveria ser de otra forma para los index secundarios...
Saludos Tor |
|
| Volver arriba |
|
 |
Tor Master


Registrado: 22 Mar 2005Mensajes: 269Ubicación: obera, misiones, argentina
|
Publicado: Mie 01 Jun, 2005 4:10 am Asunto: |
|
|
Es complicado lo que yo pregunto pasa que no tengo mucha idea , es muy poco mi experiencia en el mundillo de las BD, estube estudiano bastante teroria pero sobre esto la verdad que encontre muy poco (crear tablas usando la VCL).
Aguien podria orientarme?
graciass.. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mie 01 Jun, 2005 4:16 am Asunto: |
|
|
Un ejemplo para crear una tabla, dentro de builder, (sacado de la ayuda, del comando CreateTable) para VCL
| Código: |
The following example shows how to create a table.
Table1->Active = false; // The Table component must not be active
Table1->DatabaseName = "BCDEMOS";
Table1->TableType = ttParadox;
Table1->TableName = "CustInfo";
if (!Table1->Exists) // Don't overwrite an existing table
{
// describe the fields in the table
Table1->FieldDefs->Clear();
TFieldDef *pNewDef = Table1->FieldDefs->AddFieldDef();
pNewDef->Name = "Field1";
pNewDef->DataType = ftInteger;
pNewDef->Required = true;
pNewDef = Table1->FieldDefs->AddFieldDef();
pNewDef->Name = "Field2";
pNewDef->DataType = ftString;
pNewDef->Size = 30;
// Next, describe any indexes
Table1->IndexDefs->Clear();
/* the 1st index has no name because it is a Paradox primary key */
Table1->IndexDefs->Add("","Field1", TIndexOptions() <<ixPrimary << ixUnique);
Table1->IndexDefs->Add("Fld2Index","Field2", TIndexOptions() << ixCaseInsensitive);
// Now that we have specified what we want, create the table
Table1->CreateTable();
}
|
_________________
 |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Mar 15 Nov, 2005 3:06 pm Asunto: |
|
|
Hola.
¿Y para crear tablas de Access?
Uso C++Builder 4.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Mar 15 Nov, 2005 6:19 pm Asunto: |
|
|
La misma filosofia, pero usando ADO u ODBC _________________
 |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Mie 16 Nov, 2005 3:16 pm Asunto: |
|
|
Hola.
¿Y con BDE?
Gracias. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|