Buenas, la duda que tengo es la siguiente: Tengo un Form1 donde coloco los componentes TTable (TablaAbierta), TDataSource (dsTablaAbierta), TDBGrid, TButton1 y TButton2.
Trato de abrir una tabla paradox seleccionándola desde un TOpenDialog que aparece tras pulsar el TButton1, para que sea visualizada en el TDBGrid y al pulsar el TButton2 se abra un TForm2 donde hay colocado un TEdit para capturar el nombre de la tabla abierta en el TForm1 mediante... Edit1->Text = Form1->TablaAbierta->TableName;
Pero algo falla y no soy capaz de verlo...
Código:
TOpenDialog *SelecTabla;
SelecTabla = new TOpenDialog(this);
String nomTabla;
//Configuración del objeto TOpenDialog
SelecTabla->Title = "Seleccionar la Tabla que desea abrir...";
SelecTabla->Filter = "Tabla de Bases de Datos (*.DB) | *.DB";
SelecTabla->Options << ofHideReadOnly << ofFileMustExist << ofEnableSizing;
//Asignamos el directorio inicial por defecto del cuadro de diálogo
SelecTabla->InitialDir = ExtractFilePath(Application->ExeName);
if(SelecTabla->Execute())
{
nomTabla = ExtractFileName(SelecTabla->FileName); //contiene "nombreTabla.Extension"
//Indicar la ruta donde reside la tabla que deseamos abrir
TablaAbierta->DatabaseName = ExtractFilePath(SelecTabla->FileName);
//Asignamos el nombre de la tabla que deseamos visualizar:
TablaAbierta->TableName = nomTabla; //pasar el nombre de la tabla CON [.DB]
//Activar la tabla para trabajar con ella:
TablaAbierta->Active = true; //Activar por último la tabla
//Especificamos el conjunto de datos (TablaAbierta) que servirán de fuente de
//datos a los objetos DBGrid y DBNavigator para visualizarlos en pantalla:
dsTablaAbierta->DataSet = TablaAbierta;
//Configuramos las propiedades del DBGrid y DBNavigator para enlazarlos con
//Table1 y los hace visibles al usuario.
DBGrid1->DataSource = dsTablaAbierta;
DBGrid1->Visible = true;
DBNavigator1->DataSource = dsTablaAbierta;
DBNavigator1->Visible = true;
}
else //SelecTabla->Execute()==false
{
//Mensaje que aparece en caso de pulsar CANCELAR ó la 'X' de CERRAR ventana
MessageDlg("Operación de apertura de tabla cancelada.",
mtWarning, TMsgDlgButtons() << mbOK, 0);
}