Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Crear BD MySql en Tiempo de Ejecucion (https://www.clubdelphi.com/foros/showthread.php?t=96286)

Eduard23 02-07-2023 21:42:52

Crear BD MySql en Tiempo de Ejecucion
 
hola amigos necesito de su valiosa ayuda estoy haciendo una aplicacion con motor de base de datos mysql y necesito crear en tiempo de ejecucion una BD
desde el comando funciona perfecto pero cuando lo hago desde el codigo no,les muestro
desde el comando:
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql.exe -uroot -p1234 < ejemplo.bat ejemplo.bat contiene Create database prueba;

desde el codigo:
comand:= 'C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe';
cmd := '"mysql.exe -uroot -p1234 < ejemplo.bat"';
ShellExecute(0,'open', Pchar(comand), Pchar(cmd), nil, SW_NORMAL );

no da error pero no crea la BD prueba
Espero por su valiosa ayuda.

CrazySoft 02-07-2023 22:58:14

Buenas tardes, me parece que esta mal tu sintaxis porque estas llamando dos veces a mysql.exe en el comando shell


prueba creando un bat con todo lo que quiero hacer y ejecutas el shell


ejemplo.bat



@echo off
echo Creando Base de Datos...
echo Por favor espere...
"d:\MySQL57\bin\mysql.exe" -uroot -pXXXX < "e:\_scri\ejecuta.sql"





ejecuta.sql
CREATE DATABASE basedatos;
use basedatos;
CREATE TABLE prueba (
codigo VARCHAR (10),
nombre VARCHAR (200),
valor INT (11)
);




desde el código:

comand:= 'e:\_scri\prueba.bat';
ShellExecute(0,'open', Pchar(comand), nil, nil, SW_NORMAL );

Eduard23 02-07-2023 23:43:57

Gracias por la pronta respuesta hice lo que me indicastes cree un bat con todo a realizar
te muestro

Crea_BD.Bat --> 'C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe -uroot -p1234 < Ejemplo.Sql';
Ejemplo.Sql --> Create Database mydatabase;
Comand:='C:\Program Files\MySQL\MySQL Server 5.5\bin\Crea_BD.Bat';
ShellExecute(0,'open', Pchar(comand), nil, nil, SW_NORMAL );

Sigue igual no crea la BD

duilioisola 03-07-2023 08:48:35

¿Has ejecutado el script directamente desde la línea de comando?
Crea un bat que contenga la línea que deseas y una pausa

Código:

Crea_BD.Bat
-----------
C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe -uroot -p1234 < Ejemplo.Sql
PAUSE

Posibles errores que podrías ver:

- No se encuentra C:\Program
Deberás poner todo entre comillas para que CMD lo entienda como una sola "palabra".
Código:

"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe" -uroot -p1234 < Ejemplo.Sql
- mysql se queje de usuario y contraseña

- mysql no esté donde indicas, sinó en otra carpeta

- Error en las sentencias utilizadas para crear la base de datos. (quizás falta un commit?)

Eduard23 04-07-2023 22:42:58

Buenas tardes Muchas gracias duilioisola era eso la ruta...
Hasta una Proxima vez

Saludos


La franja horaria es GMT +2. Ahora son las 13:27:04.

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