Basicamente la estructura del script es asi:
Código SQL
[-]CREATE DATABASE a_db;
USE a_db;
DROP TABLE IF EXISTS `alumnos`;
CREATE TABLE `alumnos` (
`Doc` int(9) NOT NULL,
`Nombres` varchar(20) default NULL,
`Apellidos` varchar(20) default NULL,
PRIMARY KEY (`Doc`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
(Solo puse una tabla ejemplo y algunos campos para que no sea largo)
El tema es que ya he logrado ejecutar las sentencias en el evento OnCreate del Form principal, primero preguntando si existe o no la base de datos en el directorio y luego creando, todo perfecto, asi:
Código Delphi
[-]
procedure TFPrincipal.crear_a_bd;
var fil:string;
b:integer;
begin
fil:= AnsiReplaceStr('C:\Archivos de programa\MySQL\MySQL Server 5.0\data\a_db\db.opt','\','\\');
if FileExists(fil) then
begin
b:=1;
end
else
begin
b:=0;
end;
IF b=0 THEN
begin
q.Close; q.SQL.Clear;
q.SQL.Add('CREATE DATABASE IF NOT EXISTS a_db');
q.ExecSQL;
q.Close; q.SQL.Clear;
q.SQL.Add('USE a_db');
q.ExecSQL;
q.Close; q.SQL.Clear;
q.SQL.Add('CREATE TABLE `alumnos` (`Doc` int(9) NOT NULL, `Nombres` varchar(20) default NULL, `Apellidos` varchar(20) default NULL, PRIMARY KEY (`Doc`))');
q.ExecSQL;
end;
El procedimiento anterior, lo hice con componentes BDE, funcionoo perfectamente si le agrego en la propiedad del componente Tdatabase:
<AliasName= 'cualkier otra base de datos existente'>
Hasta ahi todo perfecto, ya funciona todo si no menciono la base de datos a crear.
Pero el tema, es a
cual base de datos vinculo al componente (sea BDE ò Zeos), una <por defecto> que digamos siempre pueda existir en cualkier otra pc... no se... a eso va mi interrogante...