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)

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 04:50:46.

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