Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-02-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 23
AzidRain Va camino a la fama
El enfoque de BDE vs Zeos y otros mas es totalmente distinto, la base de dastos puede o no existir precisamente en la pc donde se ejecuta la aplicación. En el caso de las Zeos necesitarás al menos dos componentes para hacer lo que quieres: ZConnection, en donde le debes decir algunos datos del servidor a donde te quieres conectar (usuario, passw, direccion del host y protocolo a usar [mysql en este caso]) y luego el ZScriptProcessor al cual vas a a conectar con el ZConnection previamente configurado.

Es decir, le tienes que decir al script en que servidor va a correr, informacion que ya contiene el zconnection. Si gustas postea tu archivo sql y te pongo un proyecto completo que hace lo que quieres, realmente es sencillo.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #2  
Antiguo 05-02-2010
nadlor nadlor is offline
Miembro
 
Registrado: dic 2009
Posts: 12
Poder: 0
nadlor Va por buen camino
Basicamente la estructura del script es asi:

Código SQL [-]
CREATE DATABASE /*!32312 IF NOT EXISTS*/ 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...

Última edición por nadlor fecha: 05-02-2010 a las 23:58:40.
Responder Con Cita
  #3  
Antiguo 06-02-2010
nadlor nadlor is offline
Miembro
 
Registrado: dic 2009
Posts: 12
Poder: 0
nadlor Va por buen camino
Azid, si es que tenias otra solucion en mente, te lo agradeceria.
Responder Con Cita
  #4  
Antiguo 06-02-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 23
AzidRain Va camino a la fama
Si conoces y tienes instalado Zeos con gusto te pongo el proyecto completo si te lo pongo y no tienes Zeos nomás te voy a confundir...
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #5  
Antiguo 06-02-2010
nadlor nadlor is offline
Miembro
 
Registrado: dic 2009
Posts: 12
Poder: 0
nadlor Va por buen camino
Acabo de instalar Zeos 6.6.6...
Responder Con Cita
  #6  
Antiguo 07-02-2010
nadlor nadlor is offline
Miembro
 
Registrado: dic 2009
Posts: 12
Poder: 0
nadlor Va por buen camino
Bueno, para cerrar este tema, comento que e solucionado mi inconveniente.

Cambié los componentes BDE por los componentes ZEOS.

Estos ultimos, me permiten conectarme directamente a la base de datos sin especificar DNS de usuario, conexiones ODBC.

El script *.sql (creacion de base de datos del sistema) que queria ejecutar al principio con ShellExecute, opte gracias a este foro, por embeber el codigo sql del script en el codigo de delphi, lanzando las sentencias de creacion como mostré anteriormente con los componentes ZQuery de Zeos.

Ahora bien mi ultima duda era, si en principio en la maquina del usuario no existirìa mi base de datos sino hasta que yo la creace al ejecutar por primera vez mi aplicacion hecha en delphi;


¿a qué base de datos relaciono la propiedad <database> del componente ZConnection (ligado al zquery con el que largo los comandos de creacion)?

Pues si le pongo una base de datos inexistente, no me dejara ejecutar el comando sql.

Ligue dicha propiedad a la base de datos <mysql> o <test> que son creadas en la instalacion de MySQL.

y como con Zeos no se requiere conexion odbc, me facilito mas aun el trabajo.

Es una solucion simple, tal vez no es la mas adecuada, pero funcionó!

Salu2
Responder Con Cita
  #7  
Antiguo 13-02-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por nadlor Ver Mensaje
¿a qué base de datos relaciono la propiedad <database> del componente ZConnection (ligado al zquery con el que largo los comandos de creacion)?

Pues si le pongo una base de datos inexistente, no me dejara ejecutar el comando sql.

Ligue dicha propiedad a la base de datos <mysql> o <test> que son creadas en la instalacion de MySQL.
No necesitas relacionarla con ninguna base en específico; es decir, puedes dejar en blanco la propiedad Database y ejecutar comandos SQL.

// Saludos
Responder Con Cita
  #8  
Antiguo 13-02-2010
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Poder: 24
JXJ Va por buen camino
Question

Cita:
Empezado por AzidRain Ver Mensaje
Si conoces y tienes instalado Zeos con gusto te pongo el proyecto completo si te lo pongo y no tienes Zeos nomás te voy a confundir...
AzidRain
¿puedes poner el proyecto completo?,
yo teng zeos instalado y aprendiendo a usarlo

gracias.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ejecutar script desde el isql victork_py Firebird e Interbase 9 25-05-2017 20:56:54
Ejecutar script toni.vi Conexión con bases de datos 6 19-02-2009 12:51:53
Ejecutar script sql en firebird jlalvarez Firebird e Interbase 8 05-03-2008 01:25:42
Ejecutar Script SQL con DELPHI patay SQL 1 06-08-2007 18:12:26
Componente ejecutar Script buitrago Conexión con bases de datos 3 27-11-2003 09:40:54


La franja horaria es GMT +2. Ahora son las 00:32:25.


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