Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-08-2005
Shidalis Shidalis is offline
Miembro
 
Registrado: jul 2005
Posts: 106
Poder: 19
Shidalis Va por buen camino
Question como puedo restaurar un archivo .sql a una base de datos en mysql por delphi

Saludos a todos
como puedo restaurar un archivo .sql a una base de datos en mysql por delphi
Responder Con Cita
  #2  
Antiguo 17-08-2005
JerS JerS is offline
Miembro
 
Registrado: may 2005
Ubicación: Venezuela
Posts: 254
Poder: 19
JerS Va por buen camino
Mira muchachita ya te explique como se hacia jijijijijiji
__________________
La vida es un simple pero complejo If

J=rS
Responder Con Cita
  #3  
Antiguo 17-08-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
Saludos!

Hay varias formas dependiendo de cómo te estés conectando a la base de datos, pero consistiría en cargar el archivo .sql y pasárselo a un componente descendiente de "TDataSet" que admita SQL (como TQuery, TSQLQuery, TADOQuery, etc.).

Por ejemplo, si conectas a la base de datos mediante DBExpress y utilizaras TSQLQuery:

Código Delphi [-]
  SQLQuery.Close;
  SQLQuery.SQL.LoadFromFile('Prueba.sql');
  SQLQuery.Prepared := True;
  SQLQuery.Open;

Chao!
Responder Con Cita
  #4  
Antiguo 17-08-2005
Shidalis Shidalis is offline
Miembro
 
Registrado: jul 2005
Posts: 106
Poder: 19
Shidalis Va por buen camino
Gracias por tu respuesta pero de esa manera no me funciona.
Lo que yo necesito es que comando puedo utilizar para enviar un respaldo de una base de datos d mysql que esta en un archivo .sql a otra base de datos tambien en sql.
Ya yo hice el archivo .bat que contiene la sentencia para migrar la informacion el archivo .bat contiene lo siguiente:

Código:
 c:\mysql\bin\mysql bdsat2 < C:\RespaldoInicial.sql
pero necesito el comando para ejecutar ese .bat
Responder Con Cita
  #5  
Antiguo 18-08-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
Para ejecutar un .bat o cualquier proceso en Delphi puedes usar la función "WinExec" pero me parece que no te estoy entendiendo bien... Si lo que preguntas es que comando has de ejecutar para hacer backup o restaurar una base de datos MySQL visita la siguiente direccion: http://www.desarrolloweb.com/articul....php?manual=34
(En dicha Web te hablan del comando "mysqldump" para hacer backup y de como restaurar usando el comando "mysql", para ejecutar ambos comandos con sus parámetros desde Delphi tendras que usar la función "WinExec" o podrías probar también con "ShellExecute" o "CreateProcess")

Última edición por jmariano fecha: 18-08-2005 a las 00:08:22.
Responder Con Cita
  #6  
Antiguo 18-08-2005
m@kio m@kio is offline
Miembro
 
Registrado: may 2005
Posts: 42
Poder: 0
m@kio Va por buen camino
Yo hize lo sig. para restaurar una BD SQL

Código Delphi [-]
  procedure EjecutarPrograma(rutaPrograma,
     parametros: string; esperar: boolean);
   var
    salida: DWord;
    punteroInfo: PShellExecuteInfo;
    infoEjecucion: TShellExecuteInfo;
   begin
    with infoEjecucion do
    begin
     cbSize := SizeOf(infoEjecucion);
     fMask := SEE_MASK_NOCLOSEPROCESS;
     wnd := GetActiveWindow;
     lpVerb := nil;
     lpFile := PChar(rutaPrograma);
     lpParameters := Pchar(parametros + #0);
     lpDirectory := nil;
     nShow := SW_NORMAL;
     hInstApp := 0;
    end;
    punteroInfo:= @infoEjecucion;
    ShellExecuteEx(punteroInfo);
    if esperar then
     repeat
      salida := WaitForSingleObject(infoEjecucion.hProcess, 500);
      Application.ProcessMessages;
     until (salida <> WAIT_TIMEOUT);
   end;
  
  procedure TForm1.Button1Click(Sender: TObject);
  begin
   EjecutarPrograma('osql','-b -U sa -P -i "'+ExtractFilePath(application.ExeName)+'EsthelDB.sql"',true);
  end;

Donde se manda llamar EjecutarPrograma nada mas es k pongas el comando para ejecutar querys en MySQL, pero creo que esto te puede servir.

Si tienes alguna duda, pues lo comentas y veremos k se puede hacer

Última edición por m@kio fecha: 18-08-2005 a las 00:56:00.
Responder Con Cita
  #7  
Antiguo 18-08-2005
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola amigos,

Tengo un problema amigo m@kio, me sale que no esta declarado el identificador PShellExecuteInfo y todos los demas que no los encuentra, la verdad no se que libreria añadir en el uses lo busque pero no lo encuentro, siempre tengo ese problema con algunos programas de los que no identifica los tipos y no se donde encontar a que librerias corresponden.

No se sobre el api de windows supongo que es de ahi las funciones que utilizas, no entiendo casi nada sobre la funcion EjecutarPrograma, por favor si me pudieras dar una pequeña explicación si no es mucha molestia o decirme donde puedo encontrar información para entender tu programa.

Muchas Gracias de por adelantado

Que tengan buen dia amigos
Responder Con Cita
  #8  
Antiguo 18-08-2005
Shidalis Shidalis is offline
Miembro
 
Registrado: jul 2005
Posts: 106
Poder: 19
Shidalis Va por buen camino
Amigo Caro debes agregar ShellApi para que reconozca las funciones
Responder Con Cita
  #9  
Antiguo 18-08-2005
Shidalis Shidalis is offline
Miembro
 
Registrado: jul 2005
Posts: 106
Poder: 19
Shidalis Va por buen camino
Con la ayuda de todos ustedes me funciono de esta manera:

Código:
 
procedure CrearArchivoBat(rutArchivo,Contenido: string);
var
  temp: TStrings;
begin
   temp := TStringList.Create;
   try
	 temp.Add(Contenido);
	 temp.SaveToFile(rutArchivo);
   finally
	 temp.Free;
   end;
end;
 
procedure TForm_Menu.respaldarClick(Sender: TObject);
begin
   CrearArchivoBat(ExtractFilePath(Application.ExeName)+'Respaldos_SAT\RespaldoBDSAT.bat', 'c:\mysql\bin\mysqldump -uroot -d bdsat > C:\Archiv~1\Klariu~2\SAT\Respaldo_BDSAT_Vacia.sql');   //Este procedimiento contiene la ruta donde se guardara el archivo.bat y el otro parametro es lo que va a contener el archivo.bat
   shellexecute(Handle, 'open','E:\Hidalis\proyecto SAT\Respaldos_SAT\RespaldoBDSAT.bat',nil,nil,SW_SHOWNORMAL);
//   winexec('E:\Hidalis\proyecto SAT\Respaldos_SAT\RespaldoBDSAT.bat',SW_SHOWNORMAL); el winexec tambien funciona como el shellexecute, lo coloque para supieran las dos formas de hacerlo.
end;
 
procedure TForm_Menu.restaurtarClick(Sender: TObject);
begin
   CrearArchivoBat(ExtractFilePath(Application.ExeName)+'Respaldos_SAT\RestaurarBDSAT.bat','c:\mysql\bin\mysql bdsat2 < C:\Archiv~1\Klariu~2\SAT\Respaldo_BDSAT_Vacia.sql');
   winexec('E:\Hidalis\proyecto SAT\Respaldos_SAT\RestaurarBDSAT.bat',SW_SHOWNORMAL);
   //EL COMANDO SHELLEXECUTE TAMBIEN FUNCIONA EN ESTA PARTE
end;
Muchas gracias por su si no entienden el codigo pregunten por favor
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:04:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi