<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:verdana,helvetica,sans-serif;font-size:12pt"><div style="font-family: verdana,helvetica,sans-serif; font-size: 12pt;">La forma más sencilla es usar la IP del servidor directamente en los valores de Host del <span style="text-decoration: underline;">componente de acceso a la BD en <span style="font-weight: bold;">tu programa</span></span>. <br>De esta forma, el programa siempre va a buscar la base de datos en esa dirección IP (independientemente si es el servidor o el cliente).<br><br>No necesitas realizar ningún cambio de permisos en el archivo mysql.sock; ya que tu aplicación no tiene que "tocar" ningún archivo del equipo servidor.<br>Las aplicaciones de BD cliente/servidor se comunican a una IP y puerto en particular donde el motor de BD escucha y responde peticiones. <br>En qué lugar guarda internamente sus datos y cómo hace para resolver
las consultas, es problema del servidor y ningún equipo cliente (por razones de seguridad) debe tener acceso a estas carpetas ni archivos.<br><br>Por lo que cuentas veo que (al igual que yo) tienes experiencia en implementaciones con archivos ISAM, donde los programas y datos están en carpetas compartidas donde son accedidos simultáneamente por varios equipos clientes. En ese marco todos los archivos de datos son accedidos a la vez por los clientes conectados.<br><br>En el esquema de base de datos cliente/servidor el único que accede al archivo(s) físico(s) de datos es el programa servidor y sólo él sabe donde están los mismos. Para hacer una analogía es un tipo en un mostrador, donde los clientes le hacen pedidos y él les entrega lo solicitado en el mostrador, pero nadie más que él toca la mercadería en depósito y sólo él sabe cómo organizarla y estibarla.<br><br>Saludos cordiales.<br>Eduardo.<br><br><div style="font-family: times new
roman,new york,times,serif; font-size: 12pt;">----- Mensaje original ----<br>De: José Luis Vassallo <jose.vassallo@gmail.com><br>Para: Spanish version of Lazarus List <lazarus-es@lazarus.freepascal.org><br>Enviado: jueves 17 de enero de 2008, 23:43:19<br>Asunto: Re: [Lazarus-es] Felicidades y una Consulta<br><br>Gracias Eduardo, estoy avanzando a full gracias a vos.<br>Tarde en responder porque se me destrozo el linux y reinstalar todo y hacerlo funcionar me hizo perder un monton de tiempo. Los componentes los logre instalar tantos los rx como los zeozde manejo de base de datos.
<br>Use como me indicaste el nfs para acceder a la carpeta desde otra pc (ya que me monto una mini red en casa un amigo). Mi pc es el server y tengo otra pc que es la workstation.<br>Comparto la aplicacion y cuando intento acceder al server me salta un error "sql error:can't connect loca mysql server throught socket '/var/mysql/mysql.sock(2)', si ejecuto en la workstation el mysql me salta error porque no tiene la base. El error se crea prque tanto el server como la estacion tienen como host "localhost"
<a rel="nofollow" target="_blank" href="http://127.0.0.1">127.0.0.1</a> para solucionar esto yo tendria que crear una en el servidor un nuevo host llamado por ej. "ControlStockHost" con una ip. x.x.x.x y desde la workstation configurar el acceso a esta? tengo que darles acceso al archivo "
mysql.sock" del servidor? <br>Disculpa mis preguntas y mis molestas master.<br><br><div><span class="gmail_quote">El día 11/01/08, <b class="gmail_sendername">Eduardo Lopez</b> <<a rel="nofollow" ymailto="mailto:dar_alle@yahoo.com.ar" target="_blank" href="mailto:dar_alle@yahoo.com.ar">
dar_alle@yahoo.com.ar</a>> escribió:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">José Luis Vassallo escribió:<br>> Buenas y sigo yo el pesado. :-)
<br>><br>> 1) Logre instalar el componente rxlib y anda casi todo bien, el<br>> problema es que en el form donde puse el componente antes de salir de<br>> el cuando quiero cerrar el query me da el error "Project raised
<br>> exception class ¿EDatabaError' with message: Operation cannot be<br>> perfrmed on an inactive dataset", vere si cambiando algunas opciones<br>> logro hacer que desaparezca el error. Me despliega bien la información
<br>> eso si.<br>> 2) Perdon por molestar tanto con este tema de la red.<br>> En mi pc lo corro sin problemas, ya que tengo tanto lazarus como el<br>> mysql en forma local en mi suse. Pero en lo de mi cliente tengo el
<br>> servidor y las estaciones de trabajo (todas con suse 10.3) y no se<br>> como armar la red. En el servidor esta el mysql corriendo sin<br>> problemas ahora mi problema es el sistema que desarrollo en lazarus lo
<br>> tengo que tener en cada pc (si es asi como desde la aplicacion la<br>> configuro para que acceda a la base de datos del servidor y como<br>> configuro la red)? o si tiene que estar mi aplicacion dentro del<br>
> servidor (en un directorio accesible por todos)?<br>Disculpame la demora en responder, pero estuve unos días de vacaciones. :-)<br><br>Respecto del punto 1) sólo puedo decirte que es probable que al cerrar<br>el form estés haciendo alguna operación (tipo commit) pero el dataset
<br>está cerrado. Sólo queda revisar con detalle.<br><br>Para el punto 2) paso a detallarte: Ambas opciones son posibles:<br>a) Tener los binarios en un servidor junto con sus archivos de<br>configuración (leído por todos los clientes), con un directorio
<br>compartido por NFS.<br>b) Tener los binarios en cada equipo sus archivos de configuración<br>leído sólo por el usuario.<br><br>En ambos casos las bibliotecas del cliente mysql se deben instalar en<br>todos los equipos clientes. En el punto a) la actualización del sistema
<br>es más sencilla, ya que actualizando el server, todos los clientes<br>usarán la versión disponible, en b) hay que actualizar equipo por equipo.<br><br>Actualmente, en tu equipo de desarrollo tienes configurado los<br>
componentes de acceso a mysql con "localhost", "tu_base_de_datos",<br>"usuario", "contraseña"<br>Lo que tienes que hacer es, leer estos valores de un archivo de<br>configuración (que puede ser en formato INI o XML) y en la creación del
<br>Form asignarle las propiedades correspondientes al componente.<br><br>procedure TForm1.FormCreate(Sender: TObject);<br>begin<br> MySQL50Connection1.hostname := 'servidor';<br>end;<br><br>Por ejemplo, para leer los datos de un archivo XML de configuración
<br>puedes usar la unit XMLCfg:<br><br>var<br>cfg: TXMLConfig;<br>ArchivoConf:string;<br>begin<br> ArchivoConf := 'misistema.conf';<br> cfg := TXMLConfig.Create(nil);<br> cfg.Filename := ArchivoConf;<br> LabeledEdit_servidor.Text :=
cfg.GetValue('BaseDatos/NombreServidor','');<br> LabeledEdit_base.Text := cfg.GetValue('BaseDatos/BaseDatos','');<br> LabeledEdit_usuario.Text := cfg.GetValue('BaseDatos/Usuario','');
<br> cfg.free;<br>end;<br><br>Depende de tu aplicación y del nivel de seguridad que quieras darle,<br>puedes guardar el usuario y contraseña en el archivo XML o bien pedirla<br>en una pantalla de login.<br><br>El archivo de configuración puede ser guardado donde quieras: en
<br>/etc/tu_archivo.conf (sólo modificable por root y válido para todos los<br>usuarios del equipo) o en cada home del usuario, donde tendrás acceso<br>completo al mismo y podrás utilizarlo además para guardar cualquier<br>
preferencia que desees.<br><br>De esta forma podrás generar un binario único que te funcionará tanto en<br>tu equipo de desarrollo como en el del usuario final de la aplicación.<br><br>Saludos cordiales.<br>Eduardo López.
<br><br>_______________________________________________<br>Lazarus-es mailing list<br><a rel="nofollow" ymailto="mailto:Lazarus-es@lazarus.freepascal.org" target="_blank" href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a><br><a rel="nofollow" target="_blank" href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es">
http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br></blockquote></div><br>
<!-- kill --><div><br><br>-----Sigue archivo adjunto en el mensaje-----<br><br>_______________________________________________<br>Lazarus-es
mailing
list<br><a ymailto="mailto:Lazarus-es@lazarus.freepascal.org" href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a><br><a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br></div></div><br></div></div><br>
<hr size=1><br><font face="Verdana" size="-2">Yahoo! Encuentros<br>Ahora encontrar pareja es mucho más fácil, probá el nuevo Yahoo! Encuentros.<br> Visitá http://yahoo.cupidovirtual.com/servlet/NewRegistration</font></body></html>