Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
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 20-09-2008
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
MySQL Ayuda. Estoy estancado

Tengo los componentes y el manejador de MySQL instalado y todo esta bien, habro este otro hilo porque el otro nadie lo contesta.

Es la primera vez que trato de usar este manejador de bases de datos, y estoy estancado en este problema hace tres semanas y no puedo salir. Sino no lo resuelvo ya, creo que tendre que seguir usando el BDE.

Les explico:

Cuando yo creo un programa lo que hago primero, es crear un directorio donde voy a trabajar el programa con los fuentes y las tablas, luego creo un instalador con el installshield é incluyo el ejecutable.exe y las tablas.

Ahora bien, lo que hace el sistema al ejecutarse en la nueva pc es buscar el directorio que tiene asignado es decir el directorio donde fue creado originalmente el programa osea en mi PC pero al no encontrarlo por estar instalado en otra PC extrae el directorio donde se esta ejecutando y ese directorio lo asigna al componente TDatabase y desde ese directorio lee las tablas.

Como hago esta tarea con MySQL y los componentes Zeos, MySQL siempre me lee el directorio por defecto del manejador MySQL ...\Data y si lo cambio manulamente en el archivo mysql.ini solo leera de un solo programa y los demas programas que pudiera tener en MySQL como hago.

En MySQL como direcciono y le asigno desde mi programa el directorio donde tiene que leer las tablas.

Y para hacerlo un programa individual instalable que drivers tengo que incluir, es algo asi, como el BDE.

Última edición por RebeccaGL fecha: 20-09-2008 a las 16:19:09.
Responder Con Cita
  #2  
Antiguo 20-09-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
(...) habro este otro hilo porque el otro naide lo contesta.
Para eso no abras otro hilo (que acabo de borrar por duplicado) sino que puedes añadir un mensaje al mismo, de forma que el hilo "suba" y se ponga el primero y a la vista de todos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 20-09-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up

A ver amigo quiero entenderte mejor ¿con que gestor de base de datos estabas trajando anteriormente?
Y por que quieres direccionar a las tablas donde esta la base de datos?
Me gustaria que seas mas explicativos para poder ayudarte.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #4  
Antiguo 21-09-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
No te entendi nada, pero instalaste el ODBCMySQL3.5 ??? (para ADO).
Por lo que veo, no entiendo mucho para que usar el MySQL en modo local, levantando las tablas de un directorio, te recomiendo para eso firebird, ya que puedes continuar usando ZEOS y me resulta mucho mejor.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #5  
Antiguo 23-09-2008
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Cita:
Empezado por rgstuamigo Ver Mensaje
A ver amigo quiero entenderte mejor ¿con que gestor de base de datos estabas trajando anteriormente?
Y por que quieres direccionar a las tablas donde esta la base de datos?
Me gustaria que seas mas explicativos para poder ayudarte.

Anteriormente estaba trabajando con el BDE.

Ahora, porque quiero direccionar a las tablas?.
En la BDE se crean tablas en determinado directorio, y no es como MySQL en donde se crea una Base de Datos y dentro de ellas las Tablas.

Ahora, mira si yo creo un sistema en mi PC por ejemplo en la carpeta

c:\Delphi\Proyectos\MySistema\

Es, en esta carpeta donde estara mi base de datos y mis tablas ok.

Pero al venderlo, lo instalo en otra PC estamos, ¿de que directorio se lee la base de datos en la otra PC? a eso me refiero.

Mira tengo que cargar el directorio donde se instalo el sistema, y luego indicarle al sistema que desde ese directorio lea la base de datos y por consiguiente las tablas. Bueno de esa manera trabajaba con el BDE, me imagino que en SQL debe ser algo parecido.


Conclusión.

Hay alguna forma de indicarle a MySQL que lea de otro directorio las base de datos, y esto claro haciendolo desde los componentes Zeos.

Última edición por RebeccaGL fecha: 23-09-2008 a las 03:54:08.
Responder Con Cita
  #6  
Antiguo 23-09-2008
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 connor Ver Mensaje
Hay alguna forma de indicarle a MySQL que lea de otro directorio las base de datos, y esto claro haciendolo desde los componentes Zeos.
La respuesta corta es no.

La respuesta larga es que no necesitas tal cosa. Piensa que aun cuando planees colocar las tablas en la misma pc que la aplicación, éste no es el esquema usual en una aplicación cliente-servidor. En este punto el BDE y MySQL difieren radicalmente. El BDE te da acceso a bases de escritorio, es decir, bases -justamente- que viven (a grandes rasgos) en el mismo ordenador que el ejecutable, mientras que con MySQL, tus bases se encuentran en un ordenador externo al que accedes mediante una IP. Detrás de esa IP puede haber un sistema Windows, Unix, etc., cada cual con su propio sistema de archivos; pero nada de eso importa a las aplicaciones externas, pues ni siquiera tienen acceso directo a esos archivos, sólo al servidor en sí de MySQL.

El hecho de que coloques el servidor de MySQL en el mismo ordenador, no cambia la situación, es sólo una cuestión geográfica; el acceso a las tablas sigue siendo a traves de una IP, aún siendo una IP "local" como 127.0.0.1 (también conocida como localhost).

De hecho, tienes que considerar que el servidor de MySQL y tu aplicación, son dos cosas distintas, tu aplicación ni siquiera tendría que ocuparse de instalar el servidor, sólo de ejecutar los scripts necesarios para crear la base y sus tablas.

Dicho de otra forma: tu aplicación simplemente va a hacer uso de un servicio ya existente, y es este servicio (MySQL) el que decide dónde colocar las bases de datos.

-------------------

Ahora bien, si aun después de lo dicho, insistes en querer colocar tus tablas en tus directorios, puedes optar por usar MySQL embedded, que no es otra cosa que una copia del servidor MySQL incrustada en tu aplicación, que sólo tu aplicación verá y que, aquí sí, puedes definir su propio directorio de datos.

Toma en cuenta, no obstante, que si -como mencionas- puede haber varias aplicaciones en el mismo ordenador accediendo a bases de MySQL, no tiene caso duplicar recursos incrustando una copia en cada aplicación.

// Saludos
Responder Con Cita
  #7  
Antiguo 23-09-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Además de lo que dice Román, la licencia de MySQL NO te permite distribuirlo junto con tu aplicación de ninguna manera a menos que tu aplicación sea open source (lo cual no creo). La opción embedded ya no está disponible en la versión "community" de MySQL sino solo en la comercial.

En todo caso tu aplicación debe poder configurarse para acceder a un servidor el cual se le pueda especificar mediante un ini o algo similar. Y una vez conectado proceder a la creación de las bases de datos y tablas que va a utilizar por lo que uno de los requisitos para quien compre tu programa sería contar con un servidor MySQL configurado y corriendo así como crear el usuario que tu indiques para que se conecte tu programa.

Si no quieres estar sujeto a esta limitante de la licencia de MySQL entonces opta por Firebird el cual meparece que no la tiene.

Yo resuelvo este detalle de forma simple con mis clientes: Por un lado facturo mi sistema únicamente con lo cual mi cliente obtiene licencia para utilizarlo. Y por el otro lado facturo la asesoría o servicio de instalación del mencionado servidor así como la configuración del mismo, todo esto en sus propias instalaciones e incluso descargando el software en sus propios equipos. De esta forma mi cliente tiene 2 licencias, la de mi software y la de MySQL, éste último por supuesto lo podrá utilizar para muchos otros fines si así lo quiere.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #8  
Antiguo 24-09-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Thumbs up Agregando Un Poquito

Para orientarte mejor;Se resume en esto: Digamos que tu eres un barco de trasporte de mercaderia que trae de un puerto Chino Hacia un puerto digamos de Colombia;Un Remitente(Cliente) ha enviado mercadería atraves de ti al puerto llamado "X"que esta en Colombia,lo que haces tú, es cargar la mercaderia de el puerto "Y" que esta en china, lo transportas y luego tu lo descargas en el puerto "X" ya mencionado. Si el que recibió la mercadería quiere reenviar alguna respuesta o devolver alguna mercaderia,¿Que haria?
pues facil, te utiliza a ti mismo para ello.Ahora cargas del puerto "Y"(de Colombia),la mercaderia y lo transportas hacia el puerto "X"(China).
Es algo parecido lo que ocurre con las aplicaciones Clientes-Servidor ,utilizan un puerto lógico(buffer de memoria identificada por un número) para poder comunicarse entre si; desde luego ambos puertos(números)deben ser el mismo, es una regla,osea para poder enviar algun paquete,mensaje consulta,etc; yo debo saber cual es el puerto que esta habilitado para el servidor, yo le envio mi paquete por el mismo puerto osea (el puerto "X" debe ser igual al puerto "Y").Eso significa que el servidor me da tambien una respuesta por el mismo puerto.
MySQL es un servidor de Bases de Datos, por lo tanto para que entres en comunicacion con él,deberas especificar el puerto en el cual esta corriendo y ademas la direccion IP de la maquina del servidor y ademas algunos otros parámetros.¿Me entiedes?.Osea no es direccionar un directorio(tabla access) sino darle el puerto,IP,BasedeDatos,etc,etc.y empesar a mandarle consultas y el me responde tambien.

Recomendacion
:Lee un poquito(por no decir mucho) el manual de Mysql, entiendelo y te aseguro que te va a servir de mucho para poder hacer tus aplicaciones exelentemente. Saludos amigo y perdona por ser muy explicativo.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #9  
Antiguo 24-09-2008
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Muchas gracias a todos por responder. Les entendi lo que me dijeron.

Eso quiere decir que, en mi aplicación no podre tener las tablas y el ejecutable juntos en un mismo directorio.

Tengo instalado el MySQL en c:\Delphi\MySQL\MySQL Server 5

Y el manejador crea las bases de datos y las tablas en c:\Delphi\MySQL\MySQL Server 5\Data

Tengo un Sistema en c:\Delphi\Libprj\RegVen\System

Todo esto esta asi en mi PC, ahora, instalar mi sistema en otra PC no seria problema.

Tengo un sistema llamado RegVen, y he creado en MySQL una base de datos llamada RegVen con 20 tablas, las cuales se encuentran en el directorio ...\Data del manejador MySQL, estas tablas pertenecen al sistema RegVen, ahora lo que entendi es, que la base de datos y sus tablas que se encuentran en el direcorio ...\Data la tendria que copiar en la nueva PC en el directorio ...\Data, asi con los demas sistemas. Por supuesto antes previamente instalado el manejador MySQL. y conectarme con dichas tablas via IP

Diganme algo, si uso Interbase 7 seria lo mismo, porque he leido que Firebird se pone lento a medida que crecen las tablas es eso cierto?.

He reforzado mis tablas Paradox por medio de rutinas y configuraciones y algunos trucos. Tengo varios sistemas en Paradox, uno de ellos con 700,000 registros, trabaja bien, pero es un dolor de cabeza cuando un usuario resetea la pc se corrompen los indices y a veces se parten las tablas por eso mi intención de cambiar de manejador de bases de datos, ademas tengo entendido que tener una tabla con 5 millones de registros en paradox seria peligroso.

Saludos.

Última edición por RebeccaGL fecha: 24-09-2008 a las 15:44:20.
Responder Con Cita
  #10  
Antiguo 24-09-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Te sigues confundiendo con las tablas planas. Siento decirte que puedes irte olvidando de como trabajas con Paradox ya que es totalmente distinto. El hecho de que puedas ver los archivos de MySQL no significa forzosamente que cada archivo se corresponda con una tabla y que la puedas abrir indpendientemente como lo haces con Paradox.

Piensa en tu programa muy independiente de las tablas, tu programa unicamente le va a decir al motor (el que sea) que quiere que le muestre tal o cual tabla o que le pase tales o cuales registros, que borre, que escriba etc. Pero tu programa no lo va a hacer directamente sino que lo hará a travez del motor. A tu programa no le interesa donde esta guardada la tabla, únicamente le importa tener contacto con el motor y nada más.

Ahora bien, tampoco es tan sencillo como copiar las tablas de un directorio a otro, nuevamente te confundes con lo de las tablas planas. Lo que tienes que hacer es en tu programa crear una rutina que cree todas las tablas y bases de datos en el servidor que le indiques. Así cuando instales la aplicación en otra pc tu programa se encarga de preparar todo para que pueda trabajar.

Cita:
Tengo varios sistemas en Paradox, uno de ellos con 700,000 registros, trabaja bien, pero es un dolor de cabeza cuando un usuario resetea la pc se corrompen los indices y a veces se parten las tablas por eso mi intención de cambiar de manejador de bases de datos...
Nuevamente la confusión, ni MySQL, ni Interbase, ni Firebird ni ningún otro parecido son "manejadores de bases de datos" todos son servidores de bases de datos lo cual indica claramente que el funcionamiento es totalmente distinto a como se trabaj con tablas planas.

Te recomiendo que te leas este curso desde el principo, esta en español, es muy sencillo y te da todo lo necesario para que empieces a trabajar con MySQL, lo mejor es que trae ejemplos, te explica toda la teoría y los conceptos más importantes sobre bases de datos cliente servidor, también trae referencia de funciones y varios apéndices. Sin duda muy bueno. Además lo puedes descargar o consultar en línea como prefieras.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #11  
Antiguo 16-10-2008
Avatar de RebeccaGL
RebeccaGL RebeccaGL is offline
Miembro
 
Registrado: ene 2008
Posts: 199
Poder: 17
RebeccaGL Va por buen camino
Al terminar de crear un sistema genero un instalador con el Installshield, luego se lo envio al cliente en un CD, el cliente lo instala y lo comienza a trabajar lo unico que tiene que hacer el cliente es direccionar las demas pc's hacia la pc que hara de servidor.

Pero el MySQL la cosa cambia tengo que instalar el servidor crear los host configurar las ip's y para eso tendria que viajar para instalar cada sistema, porque el cliente no tiene ni idea de lo que tendria que hacer como lo es instalar el servidor MySQL y otras cosas, entonces me pregunto.

Vale la pena el MySQL u otro servidorr que trabaje en esta misma modalidad?, pienso que no, prefiero seguir usando la BDE.

Al menos que haya alguna opción que solo me permita trabajar como lo hace la BDE. el cliente instala y listo. mas dinamico y rapido.

Y no me confundo con las tablas planas, eres tu el que se confunde, no entiendes lo que deseo saber.

Mira te hago un pregunta.

Creo un supuesto sistema con tablas MySQL lo instalo en 7 pc's lo fueron trabajando durante 2 años, ahora el cliente osea el dueño no la pc, de dicha empresa desea tener esos datos en su casa en una pc personal, dime no tendria que copiar las tablas ó pedir un backup al servidor o algo?. o otro caso el cliente desea cambiar de equipos para ello tendria que sacar copias de todas las tablas, luego en las nuevas pc's instalar el sistema y el servidor MySQL y copiar las tablas con mas de un millon de registros en las nuevas pc's no? ni modo que aparezcan solas las tablas por arte de magia, creo que no me entiendes lo que deseo saber, sean tablas planas o las tablas que sean, son tablas y tienen registros información la cual puede ser llevada transportada a otros pc's con todos los registros ya ingresados.

Ahora yo doy los sistemas con las tablas ya "creadas con anticipación", solo algunas tablas las creo en tiempo de ejecución. Me parece que nadie me entiende lo que deseo saber o mejor vere una forma mas sensilla de plantear las preguntas.

Última edición por RebeccaGL fecha: 16-10-2008 a las 16:51:30.
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
MySQL Gratis AYUDA!! cmm07 Varios 8 11-06-2008 15:30:02
Ayuda con MySQL pelaorb68 SQL 4 16-03-2007 23:32:47
Generar pdf apartir de un reporte crystal report..ayuda, estoy desesperada! chivix Impresión 3 06-03-2007 19:24:29
Estoy estancado pepelu1975 Conexión con bases de datos 2 20-02-2004 18:14:54


La franja horaria es GMT +2. Ahora son las 18:25:03.


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