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

Registrado: 15 Oct 2006Mensajes: 12
|
Publicado: Jue 30 Nov, 2006 11:24 am Asunto: Ambiguity between.... |
|
|
Wenas estoy creando una copia de seguridad de una BD Paradox, con el siguiente código:
| Código: | void __fastcall TfrmCopia::BitBtn1Click(TObject *Sender)
{
AnsiString Caption="Selecciona la carpeta en la que quieres guardar la copia de seguridad";
AnsiString Root="c:";
AnsiString Directorio;
if(SelectDirectory(Caption,Root,Directorio))
{
AnsiString Archivo[15]={"AuxMesas.db","Camareros.db","ContenidoFactura.db","ContenidoMesa.db","Entradas.db","Familias.db","FormasPago.db","MesasFacturadas.db","Movimientos.db","Pagos.db","Productos.db","Prov_prod.db","Proveedores.db","Salidas.db","Tarjetas.db"};
AnsiString Origen,Destino;
Origen=ExtractFilePath(Application->ExeName);
Destino=Directorio;
if((Destino.Length())!=3) //si no es a:\ o c:\ .... pues pone un \ al final
Destino=Destino+"\\";
for(int x=0;x<15;x++) //Esto varialo según el numero de archivos que tengas
{
if(CopyFile((Origen+Archivo[x]).c_str(),(Destino+Archivo[x]).c_str(),false)==0)
MessageBox(Handle,"Error al copiar el archivo","Error",MB_ICONERROR);
}
}
} |
Al compilarlo me dice "undefined function SelectDirectory", asi que incluí la libreria "QDialogs.hpp", al hacer esto y compilar me aparecen los siguientes errores:
"Ambiguity between TForm and Forms::TForm" en las siguientes partes de codigo:
| Código: | class TfrmCopia : public TForm
{
__published: // IDE-managed Components
TBitBtn *BitBtn1;
TBitBtn *BitBtn2;
TBitBtn *BitBtn3;
void __fastcall BitBtn3Click(TObject *Sender);
void __fastcall BitBtn1Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TfrmCopia(TComponent* Owner);
}; |
| Código: | class TfrmAdministracion : public TForm
{
__published: // IDE-managed Components
TBitBtn *btnProductos;
TBitBtn *btnAlmacenes;
TBitBtn *btnCamareros;
TBitBtn *btnEstadisticas;
TBitBtn *btnCopiaSeg;
TBitBtn *btnSalir;
TBitBtn *btnOpciones;
void __fastcall btnProductosClick(TObject *Sender);
void __fastcall btnAlmacenesClick(TObject *Sender);
void __fastcall btnCamarerosClick(TObject *Sender);
void __fastcall Familias1Click(TObject *Sender);
void __fastcall Productos2Click(TObject *Sender);
void __fastcall Proveedores1Click(TObject *Sender);
void __fastcall Existencias1Click(TObject *Sender);
void __fastcall GestionarCamareros1Click(TObject *Sender);
void __fastcall btnSalirClick(TObject *Sender);
void __fastcall btnOpcionesClick(TObject *Sender);
void __fastcall btnCopiaSegClick(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TfrmAdministracion(TComponent* Owner);
}; |
| Código: | __fastcall TfrmCopia::TfrmCopia(TComponent* Owner)
: TForm(Owner)
{
} |
Y otro "Ambiguity between Application and Forms::Application" en
| Código: | Origen=ExtractFilePath(Application->ExeName); |
He buscado en el foro pero no me he aclarado demasiado, y me parece que nadie ha tenido este tipo de ambigüedades, alguien sabes que es lo que pasa?
Gracias por adelantado.
PD: el código para crear el backup lo cogí de un post de este foro, gracias a Marky por postearlo  |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 30 Nov, 2006 6:31 pm Asunto: |
|
|
¿Y por qué no usas para efectuar la copia de seguridad el elemento BatchMove de la paleta Data Access? Te pongo el código que estoy usando yo para esto.
Necesitas dos elementos TTable (yo los creo sobre la marcha) para indicar la tabla origen y la tabla destino de la copia y un FileListBox para sacar la lsita de tablas.
| Código: | void __fastcall TfPersonas::ObtCopClick(TObject *Sender)
{
TTable *OriSeg = new TTable(this);
TTable *DesSeg = new TTable(this);
FileListBox1->Mask = "*.db";
for (int nItem = 0; nItem < FileListBox1->Items->Count; nItem++)
{
fTablas->OriSeg->TableName = FileListBox1->Items->Strings[nItem];
fTablas->DesSeg->TableName = "Copia\\" + FileListBox1->Items->Strings[nItem];
fTablas->Seguridad->Source = fTablas->OriSeg;
fTablas->Seguridad->Destination = fTablas->DesSeg;
fTablas->Seguridad->Mode = batCopy;
fTablas->Seguridad->Execute();
}
}
//--------------------------------------------------------------------------- |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
Laurana Cdt

Registrado: 15 Oct 2006Mensajes: 12
|
Publicado: Vie 01 Dic, 2006 1:10 am Asunto: |
|
|
Voy a probar tu código, a ver si funciona, gracias Angel  |
|
| Volver arriba |
|
 |
Tugui Master


Registrado: 09 Nov 2002Mensajes: 663
|
Publicado: Jue 07 Feb, 2008 4:42 pm Asunto: |
|
|
Hey hola a ambos perdón pero he probado tu código Angel, y no me funciona lo he puesto en el onclick de un botón normal:
| Código: |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TTable *OriSeg = new TTable(this);
TTable *DesSeg = new TTable(this);
FileListBox1->Mask = "*.db";
for (int nItem = 0; nItem <FileListBox1>Items->Count; nItem++)
{
fTablas->OriSeg->TableName = FileListBox1->Items->Strings[nItem];
fTablas->DesSeg->TableName = "Copia\\" + FileListBox1->Items->Strings[nItem];
fTablas->Seguridad->Source = fTablas->OriSeg;
fTablas->Seguridad->Destination = fTablas->DesSeg;
fTablas->Seguridad->Mode = batCopy;
fTablas->Seguridad->Execute();
}
}
|
Me dice que no reconoce fTablas. ¿Qué tipo de elemento es?
He probado de poner ese mismo nombre al BatchMove y me dice que OriSeg no pertenece a fTablas. _________________ ¡ADELANTE CON ESTE SUPER FORO! |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 08 Feb, 2008 8:26 am Asunto: |
|
|
| Tugui escribió: | Me dice que no reconoce fTablas. ¿Qué tipo de elemento es?
He probado de poner ese mismo nombre al BatchMove y me dice que OriSeg no pertenece a fTablas. |
A ver: fTablas es un TDataModule; tengo al costumbre, cuando los uso, de llamarlos así lo mismo que todos los formularios los hago empezar con f o las variables de tipo numérico con n. OriSeg, y DesSeg que también está por ahí son dos TTable normales que uso para indicar que tabla se está copiando (OriSeg, de Origen Seguridad) y en que tabla se está copiando (DesSeg, de Destino Seguridad). _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| 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.
|