Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   como hago esto (https://www.clubdelphi.com/foros/showthread.php?t=25683)

meosre 30-09-2005 01:01:45

como hago esto
 

como hago para hacer esto mismo que se hace en sql 2000 para correr scripts en mysql desde delphi:

osql -U sa -P "" -i "C:\Program Files\Microsoft SQL Server\MSSQL\Install\InstNwnd.sql"

por fa lo necesito urgente

roman 30-09-2005 04:31:49

Cita:

Empezado por meosre
por fa lo necesito urgente

No creo que abrir tres hilos

http://www.clubdelphi.com/foros/showthread.php?t=25680
http://www.clubdelphi.com/foros/showthread.php?t=25682
http://www.clubdelphi.com/foros/showthread.php?t=25681

además de éste, relacionados con lo mismo, te vaya a ser de gran ayuda.

¿No puedes pasar el contenido del script directamente a una componente ZQuery (o la que uses para acceder a MySql) y ejecutar con ella la consulta?

// Saludos

fredo 30-09-2005 14:58:37

hola
 
haz un archivo .bat con el script, y luego ejecutalo con:

ShellExecute (0, nil, 'archivo.bat' ,nil, nil, SW_HIDE);

super sensillo....

Saludos

meosre 06-10-2005 17:14:09

lo hicimos, gracias
 
logramos hacerlo de la siguiente manera, es importante dar la ruta de mysql.exe que esta en bin, si como nosotros tienen que hacer varias corridas de scripts utilicen el shellexecuteex con el wait por que sino las siguientes puede que no las haga, si solo es una pueden hacerlo con el shellexecute, es importante que el parametro sea el comando a ejecutar, y tener cuidado con la sintaxis de --user=nombre y el --password=contraseña debe ser pegado, sino tampoco lo hace.

Código Delphi [-]
 function ejecutarscriptbd(ruta): boolean;
 var
   rutaestrbd, rutasql, rutadatos,
   parametros, parametroelim, parametroact: string;
   cadena, cadena2, cadena3 : PAnsiChar;
   f: TextFile;
   generado : boolean;
   ExecInfo: TShellExecuteInfo;
 begin
   //el parametro que recibe es la ruta donde se encuentran los scripts
   generado := false;
 
   //ruta del mysql.exe que esta en el bin
   if suiEdtpathMysql.Text <> '' then
   begin
     if FileExists(ruta + 'CreacionBD.txt') then
     begin
       ruta := AnsiReplaceStr(ruta,'\','/');
       rutasql := suiEdtpathMysql.Text+ 'bin\mysql.exe';
       cadena := Pchar(rutasql);
        parametros := '--user='+suiEdtuser.Text +' --password='+ suiEdtPassw.Text
          +' --execute "source '+ ruta +'/CreacionBD.txt"';
       cadena2:= Pchar(parametros);
       try
         ExecInfo.cbSize := SizeOf(ExecInfo);
         ExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
         ExecInfo.Wnd := 0;
         ExecInfo.lpVerb := 'open';
         ExecInfo.lpFile := cadena;
         ExecInfo.lpParameters := cadena2;
         ExecInfo.lpDirectory := nil;
         ExecInfo.nShow := SW_HIDE;
         ShellExecuteEx(@ExecInfo);
         WaitForSingleObject(ExecInfo.hProcess, INFINITE);
         generado := true;
 
       except
         // generado := false;
       end;
       result := generado;
     end;
     {...}


:D :D :D :D :D :D :D :D


La franja horaria es GMT +2. Ahora son las 20:13:01.

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