Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Ambiguity between....

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Ambiguity between.... Responder citando

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? Question

Gracias por adelantado.

PD: el código para crear el backup lo cogí de un post de este foro, gracias a Marky por postearlo Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

¿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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Voy a probar tu código, a ver si funciona, gracias Angel Smile
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.