Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Configurar zeos (https://www.clubdelphi.com/foros/showthread.php?t=68222)

myj 01-06-2010 23:37:52

Configurar zeos
 
hola a todos club delphi, espero y puedan ayudarme como siempre lo han hecho.

tengo una base de datos en mysql, con delphi 7, para conectarlos me sugirieron que instalara zeos, ya lo hice si me aparece la paleta de zeos ya, vi en una pagina que hay que copiar los dll segun la version de mysql en windows/system, ya lo hice, copie de donde tengo la carpeta lib de donde tengo la carpeta de zeos, escogi el que dice libmySQL50.dll ya que tengo la version 5.0 de mysql, sin embargo coloco el componente zconnection en mi aplicacion,y lo configure asi:

hostname =localhost,
user=root
password=la contraseña que tengo
catalog = biblioteca.
database=biblioteca(aunque se lo escribi, ya que no aparece nada)

coloque un ztable, lo ligue con el zconnection, pero en tablename no me aparece nada

que paso me salté o que hago:S,

Saludos;)

Casimiro Notevi 01-06-2010 23:53:32

Mira si te sirve este sencillo y claro tutorial.

AzidRain 01-06-2010 23:58:56

Por cierto ese tuto es mio...jijiji y creo que el único que he hecho...jajaja y por más cierto...ya andas duplicando hilos..jejeje

rgstuamigo 01-06-2010 23:59:12

Te falta seleccionar el protocolo a usar, eso se hace usando la propiedad Protocol que en tu caso sería: Protocol=mysql-5 ;).
Prueba y nos comentas cómo te fué.;)
Saludos...:)

myj 02-06-2010 00:09:06

gracias por la ayuda, si me sirvio, esque no estaba eligiendo el protocolo correcto como vienen dos que empiezan con mysql uno dice mysql-5 y otro dice mysqld-5, estaba agarrando este segundo y por eso no me mostraba la base de datos.

otra pregunta, miren instale zeos porque en otro hilo preguntaba como conectar mi aplicacion a una base de datos que tengo en otra pc.

ya instale el zeos, pero le tengo que indicar el numero de puerto tambien? o algo mas para que pueda conectar mi aplicacion a una base de datos que esta en otra pc.

saludos

rgstuamigo 02-06-2010 00:20:08

Cita:

Empezado por myj (Mensaje 365891)
ya instale el zeos, pero le tengo que indicar el numero de puerto tambien?

Por supuesto que le debes indicar el puerto atraves de la propiedad Port del componente TZConnection.;)
En el caso de que el servidor esté en otro host pues debes poner el nombre o la direccion IP del servidor en la propiedad Hostname ;).
Cabe tambien tener en cuenta que para tener la conexion correcta con el servidor debes agregar el puerto u/o programa a conectarse ala excepciones del firewall, ya que puede ocurrir que te impida conectarte remotamente.;)
Puede ocurrir tal ves algo paraecido con algun antivirus o algun otro cortafuego. Ésto lo debes hacer especialmente en la Maquina servidora(Donde corre MySQL) ;).
Saludos...:)

Casimiro Notevi 02-06-2010 00:20:14

Cita:

Empezado por AzidRain (Mensaje 365889)
Por cierto ese tuto es mio...jijiji y creo que el único que he hecho...jajaja y por más cierto...ya andas duplicando hilos..jejeje

Sí, es el tuyo, no puedo engañarte, tiene tu nombre :D
¿Sabes que es uno de los documentos más descargados de mi web?


¿duplicando hilos?

AzidRain 02-06-2010 00:32:57

Orale ya me siento famoso...de hecho ya lo vi en varias webs...lo bueno es que no solo dice mi nick si no tb la dedicatoria a ustedes mis amigos...

myj 02-06-2010 00:52:22

ok ya lo puse aun no logro hacer la conexion a la b.datos de la otra maquina, tengo que estar en un mismo grupo de trabajo?, por ahora solo tengo conectadas las 2 pc's por cable cruzado y como le asigna una direccion ip, esa le estoy poniendo en la propiedad hostname del zconnection

Casimiro Notevi 02-06-2010 00:53:55

Cita:

Empezado por AzidRain
Orale ya me siento famoso...de hecho ya lo vi en varias webs...lo bueno es que no solo dice mi nick si no tb la dedicatoria a ustedes mis amigos..

jejeje... pues sí, ya te digo, ha sido descargado unas 4000 veces en los últimos meses. A ver si preparas uno más amplio y detallado :)

myj 02-06-2010 01:28:05

hola a todos, realmente estoy hhecha bolas, ya le puse al zconnection la dir. ip de la maquina donde tengo la BD. el usuario y contraseña, el protocolo,le escirbi el nombre de la BD en la propiedad database, pero en catalog no me da nada:( ayudenme porfavor:'(.

estoy conectada al otro pc atraves de un cable cruzado, no se porque no me sale:(.

Casimiro Notevi 02-06-2010 01:38:13

Se supone que en el que hace de servidor está mysql instalado y funcionando correctamente. También se supone que tienes conexión a ese servidor. También se supone que tienes abierto el puerto correspondiente a mysql.
También se supone que no tienes firewall activados y cerrando ese puerto en el servidor ni en el cliente.

myj 02-06-2010 06:53:03

efectivamente, en la otra pc lo tengo instalado, el firewall desactivado y todo lo que comentas, bueno, seguire luchando

gracias por la ayuda amigos

AzidRain 02-06-2010 18:29:42

Se aceptan sugerencias Casimiro, como qué sugieres que podría detallar, la verdad ahi sí me siento con autoridad para hacer el tuto pues prácticamente es mi componente de cabecera para todo lo que he hecho desde que empece con bases de datos SQL. Sugiéreme temas y los hago con gusto.

Casimiro Notevi 02-06-2010 18:51:09

Por ejemplo, un mantenimiento típico de altas/bajas/consultas/modificaciones explicado paso a paso con una conexión a servidor windows y otra conexión a servidor linux.
Que incluya el uso de querys, datasets, procedimientos almacenados, etc. y campos "normales" y algún blob del tipo imagen, por ejemplo.
Echa un vistazo a este documento creado por la gente de zeos, está en inglés, así que tú lo harías en castellano :)

roman 02-06-2010 18:54:28

¿Qué diferencia habría entre una conexión a un servidor Windows y una conexión a un servidor Linux? Según ya, da enteramente lo mismo.

// Saludos

Casimiro Notevi 02-06-2010 18:58:56

Cita:

Empezado por roman (Mensaje 365983)
¿Qué diferencia habría entre una conexión a un servidor Windows y una conexión a un servidor Linux? Según ya, da enteramente lo mismo.
// Saludos

Bueno, como se supone que será un documento "amplio", pues no costaría nada añadir esos detalles para hacerlo más completito.

Cita:

En windows:
192.168.1.100:c:\datos\labasedatos.fdb
En Linux:
192.168.1.100:/mnt/datos/labasedatos.fdb
También se pueden poner ejemplos de varios tipos de bases de datos. Ya puestos :)

roman 02-06-2010 19:08:19

¡Ah! Es que, de hecho, es una cosa que siempre me ha llamado la atención cuando los veo hablar sobre firebird. Con MySQL, es totalmente indistinto puesto que el servidor se sitúa (por decirlo de alguna forma) entre el cliente y el sistema de archivos local, de manera que la conexión es, simplemente, a través de una dirección ip y un puerto, y el cliente es por completo ignorante de la ubicación física de los archivos.

// Saludos

Casimiro Notevi 02-06-2010 19:30:10

En firebird existen los alias, que supongo que será algo parecido a lo que comentas, en el componente le asignas ese alias y el usuario no puede saber dónde está la base de datos.
Yo no conozco zeos, salvo haber hecho algunas pruebecitas, así que no sé si alguna cosa que he dicho (o todas :D) son tonterías sin sentido.

rgstuamigo 02-06-2010 21:00:35

Cita:

Empezado por roman (Mensaje 365988)
¡Ah! Es que, de hecho, es una cosa que siempre me ha llamado la atención cuando los veo hablar sobre firebird. Con MySQL, es totalmente indistinto puesto que el servidor se sitúa (por decirlo de alguna forma) entre el cliente y el sistema de archivos local, de manera que la conexión es, simplemente, a través de una dirección ip y un puerto, y el cliente es por completo ignorante de la ubicación física de los archivos.

// Saludos

Exactamente eso tambien a mi me ha llamado la atención la manera de trabajar de Firebird:eek: , siempre pensé que era mas que sufiente proporsionar el hostname y el puerto (por supuesto que internamente se usa un protocolo)y listo,aunque no lo he probado a fondo pues parece ser que hay que especificar la ruta de la base de dato, lo cual se sale del concepto de lo que es Socket ;). Me parece que la filosofía de trabajo de Firebird para hacer la conexion es diferente a los demás servidores de Base de datos.:rolleyes: y muy parecido a las bases de datos de escritorio, en ese sentido.
Corríjanme si estoy errando.;)
Saludos...:)

Casimiro Notevi 02-06-2010 21:08:43

¿Y cómo se le dice en mysql, por ejemplo, dónde está la base de datos?

roman 02-06-2010 21:18:22

Se le dice: base de datos. :D

Es decir, el servidor registra cada base con un nombre epecífico y simplemente proporcionas ese nombre.

// Saludos

roman 02-06-2010 21:25:06

Mmm. De hecho, con MySQL uno no se conecta a una base de datos, simplemente te conectas al servidor. La base de datos que se especifica en la conexión (y que puede omitirse) simplemente indica cuál es la base de datos a usar por defecto en las consultas SQL.

A diferencia de firebird, en MySQL puedes enlazar más de una base en una sola consulta sql y debes prefijar con el nombre de la base las columnas o tablas. Si omites la base, estarás usando la base por defecto y obtendrás un error si no especificaste una, pero, repito, esto último no es necesario, es decir, puedes omitir la especificación de la base en la conexión y hacer algo como

Código SQL [-]
select * from foros.usuarios

que te listaria todos los usuarios de la base de datos foros.

// Saludos

AzidRain 02-06-2010 21:49:37

Estoy de acuerdo con rgstuamigo, cuando uno se conecta a un servidor la aplicacion solo le debe indica que instrucciones SQL debe de realizar y no le importa leches si la bd en realidad está en otro disco u otra máquina...Ese es el trabajo del motor. Tu nada mas le dices, listame esto, guardame aquello, borra esto y el motor sabe como actuar sin importar si corre en windows, linux o lo que sea. Esa es la clave. FB como que esta un poco atado todavía al sistema de archivos de donde corre, OJO...nadie ha dicho que es peor o mejor.

rgstuamigo 02-06-2010 21:53:29

Cita:

Empezado por Casimiro Notevi (Mensaje 366021)
¿Y cómo se le dice en mysql, por ejemplo, dónde está la base de datos?

Pues MySQL ya sabe dónde esta la base de datos, es decir MySQL internamente tiene asignada una o varias Carpeta(configurable) donde el servidor guarda todos los archivos de todas las bases de datos por ejemplo cuando se hace ésta consulta SQL:
Código SQL [-]
create database employees;
Internamente MySQL crea los archivos necesarios para la Base de Datos en éste caso llamada "employees";) ,el servidor ya sabe donde.
Si por decir queremos trabajar con otra base de datos diferente a la que estamos trabajando actualemte se puede usar la siguiente consulta SQL:
Código SQL [-]
Use MyOtraBasedeDatos;
.
En el caso de los componentes Zeos, el componente TZConnection tiene una propieda llamada "DataBase" donde se puede especificar con que base de datos del servidor se va a conectar.;)
Saludos...:)

Casimiro Notevi 02-06-2010 23:11:30

Entonces, si quiero poner una base de datos en /ventas/facturas.fdb y otra en /produccion/fabricacion.fdb y quiero que los ficheros temporales se creen en /almacen/temporales/ y las imágenes se guarden en /fotos/imagenes.fdb
¿No se puede hacer eso con mysql?

rgstuamigo 02-06-2010 23:24:12

Entiendo tu inquietud Casimiro, pero precisamente eso se trata de la filosofía de Escritorio tal cual como lo hace Access, aunque como lo he dicho antes se puede configurar(tiene un archivo de configuracion) a MySQL para que trabaje en el lugar(Algun otro host) y/o directorio(carpeta) que querramos, pues la filosofía de MySQL es orientada a tener un Directorio específico (tal cual lo hace un servidor Web, Apache por ejemplo) en el cual internamente MySQL va creando subdirectorios por cada Base de dato Creada, donde guardará los archivos especificos de cada base de datos.;) De ahí que MySQL sabe donde se encuentra el Path de cada base de datos, por lo cual para la aplicacion cliente no le hace falta poner la direccion donde está la base de datos, ya que el propio servidor es el encargado de gestionarlo y controlarlo.;).
Saludos...:)

Casimiro Notevi 03-06-2010 01:26:35

Curioso e interesante, todos los días se aprende algo.

roman 03-06-2010 02:02:03

Sí, es curioso esto de firebird. Si bien por un lado es un motor más robusto que MySQL, tal parece, como dice rgstuamigo, que tiene vestigios de las bases de escritorio. Conceptualmente, la única interacción del cliente con el motor debería ser la de mandar consultas SQL y recibir datos. Dónde y cómo se guarden los datos debería concernir exclusivamente al motor como algo interno. De hecho, por ejemplo, en una instalación normal de MySQL en unix, el directorio de datos está totalmente vedado a los usuarios; sólo root puede acceder a él.

// Saludos

Casimiro Notevi 03-06-2010 02:23:33

Y más curioso resulta teniendo en cuenta que firebird (interbase) proviene de sistemas unix, es ahí donde inició su historia.
En todas las instalaciones que realizamos siempre usamos un directorio para alojar las bases de datos y al que sólo puede entrar el servidor firebird y nadie más puede entrar en él. Pero es algo que hacemos manualmente otorgando los permisos pertinentes.
La forma de cambiar entre bases de datos de mysql me ha recordado a dbase, cuando querías referenciar a otra tabla, "use clientes", "use ventas", etc.
En fin, todo tiene sus cosas buenas y no tan buenas, no hay nada perfecto.

Delphius 03-06-2010 04:46:00

Disculpen pero no entiendo de lo que dicen, como bien lo ha dicho Casi, en Firebird existen los alias y básicamente está para ocultar a los clientes la ubicación física y real de las bases de datos.

Luego, al realizarse la conexión sólo se "apunta" a dicho alias (que no es más que un simple nombre). El motor por detrás sabe donde están los archivos y al cliente poco y nada le interesa esto.

Una vez conectado el cliente puede hacer cualquier operación sobre la base de datos. Le mandas consultas SQL para insertar, eliminar, actualizar y trabaja como cualquier otro motor. Y la verdad es que no interesa si está corriendo en un Windows, en un Linux, Mac o lo que fuese.

¿O es que no veo donde está el embrollo del que hablan?
¿Que tanto embrollo viene a cuento de si es \ o / en uno u otro SO? Para el cliente, si uno se limita a alias lo máximo que sabe es un pseudónimo.... Que es en un principio, el mismo funcionamiento que comentan en MySQL.

Para el cliente es, imitando a roman: base de datos. Para el motor, ya se las verá él.

Firebird además cuenta con parámetros y configuraciones adicionales para administrar los archivos a ciertos directorios, que dicho sea de paso es bueno seguir esta configuración. Están los parámetros DatabaseAccess, ExternalFileAccess, UdfAccess, TempDirectories (al menos en 1.5, es posible que en FB 2+ existan otros más).

El hecho de no poder realizar consultas a dos o más DB simultánamente, si se debe a la forma en como se conecta, eso si lo admito. Pero les recuerdo que a partir de 2.5 esto ya es posible ya que se ha modificado como se lleva a cabo la conexión y además se ha mejorado enormemente la comunicación y el protocolo. Esto supuso un cambio enorme en lo que respecta a seguridad y manejo de archivos.

Mucho se dice que FB depende mucho de la seguridad física y el acceso al sistema de archivos, y son cosas que siempre los ha tenido en cuenta el equipo de Firebird, y están trabajando en ello. ¿Pruebas? Firebird 2.5 y 3.0 que si bien están en desarrollo, para la 2.5 ya se puede dar el disfrute muy a pesar de estar su RC (Release Candidate) 2. Tengan en cuenta por favor que la intención de FB fue de ejecutarse en servidores dedicados.

Tal vez en esto les resulte inseguro, pero FB ofrece otros medios de seguridad, y si se los sigue se puede dormir más tranquilo.

FB está en movimiento, lento quizá, pero sigue. No tiene tantos medios como los que tiene MySQL gracias a Sun.

Disculpen si largo una piedra, pero ¿y que me dicen de la confusa licencia que tiene MySQL y de su incierto futuro? Vamos, que si para encontrar escusas para no usar u otra, tenemos para rato.

Saludos,

Casimiro Notevi 03-06-2010 15:14:39

Ya digo, me parece curioso la forma en que trabaja mysql, aunque sigue gustándome la forma en que lo hace firebird. Que a fin de cuentas tiene la forma de mysql (mediante alias) y la "normal" típica de especificar servidor:/ruta/basedatos

Por cierto, mysql ya no es de Sun, ahora lo compró Oracle.

Delphius 03-06-2010 15:29:46

Cita:

Empezado por Casimiro Notevi (Mensaje 366084)
Por cierto, mysql ya no es de Sun, ahora lo compró Oracle.

Cierto... cierto... cuando terminé de escribir me dije, ¿que no era que Oracle la compró?

Ya corrijo.

EDITO:
¿Porqué no puedo editar el post anterior? Sólo me permite editar éste.

Saludos,

roman 03-06-2010 16:33:33

MySQL no accede por medio de alias sino directamente al catálogo de bases. De lo que aquí hablamos es justamente de lo curioso que resulta que Firebird siga (en ese aspecto) la "filosofía" de las bases de escritorio como hacían Paradox o Access en los que hay una referencia directa al archivo físico que contiene la base (o las tablas), aun cuando se oculte tras un alias.

Por otro lado, sólamente hablamos de eso, de lo curiosas que resultan determinadas cosas en uno u otro motor (como el uso del use que menciona Casimiro). No hay ni embrollo ni debate ni una pugna por decir este es mejor, este es peor ;)

// Saludos

Casimiro Notevi 03-06-2010 16:49:05

Cita:

Empezado por Delphius (Mensaje 366086)
[..]¿Porqué no puedo editar el post anterior? Sólo me permite editar éste.

Se puso un límite de tiempo para poder modificarlos, creo que media hora o así.

Delphius 05-06-2010 00:02:50

Cita:

Empezado por roman (Mensaje 366096)
MySQL no accede por medio de alias sino directamente al catálogo de bases. De lo que aquí hablamos es justamente de lo curioso que resulta que Firebird siga (en ese aspecto) la "filosofía" de las bases de escritorio como hacían Paradox o Access en los que hay una referencia directa al archivo físico que contiene la base (o las tablas), aun cuando se oculte tras un alias.

Ahora entiendo. Pues, si... puede que sea extraño pero a mi me resulta natural:)... al fin de cuentas, de algún modo se tiene que tener acceso físico al/los archivo/s... y ya estamos, después de todo el DBA debe poder y saber "ver" donde están. Digo ¿no?;)

Cita:

Empezado por roman (Mensaje 366096)
Por otro lado, sólamente hablamos de eso, de lo curiosas que resultan determinadas cosas en uno u otro motor (como el uso del use que menciona Casimiro). No hay ni embrollo ni debate ni una pugna por decir este es mejor, este es peor ;)
// Saludos

Bueno, vale, quizá me sulfuré un poco:o... ¡es que eran muchos contra uno!:( ¡Arriba Firebird!:D:)

Cita:

Empezado por Casimiro Notevi (Mensaje 366099)
Se puso un límite de tiempo para poder modificarlos, creo que media hora o así.

Si, me dí cuenta de ello cuando a los minutos (no más de 10 diría yo:rolleyes:) volví al hilo y no estaba el botón editar en el último post mio.

Puedo entender la idea de que sea por cuestión de seguridad, pero es bueno (en ciertas circunstancias) poder editar el mensaje aún expirado ese tiempo.

Saludos,

Casimiro Notevi 05-06-2010 00:26:01

Cita:

Empezado por Delphius (Mensaje 366252)
[..]
Si, me dí cuenta de ello cuando a los minutos (no más de 10 diría yo:rolleyes:) volví al hilo y no estaba el botón editar en el último post mio.

Puedo entender la idea de que sea por cuestión de seguridad, pero es bueno (en ciertas circunstancias) poder editar el mensaje aún expirado ese tiempo.

Saludos,


Están los partidarios y los detractores :), yo pienso que no debe poder modificarse pasado un tiempo, y si hace falta modificar algo se añade mediante otro post y listo.
En este caso se puso por un motivo de seguridad, antes no estaba habilitado, pero no quedó otro remedio. Tal vez, cuando todo se "suavice", pueda volver a dejarse como estaba.


La franja horaria es GMT +2. Ahora son las 02:45:31.

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