Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2007-12

Felicidades y una Consulta

12 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

José Luis Vassallo

Buenas primero quiero decearles unas felices fiestas. Tengo unas consultas.

1) Queria saber si existe algun componente como en Delphi llamado DBLookupComboBox, ya que el DBComboBox, que existe en lazarus, no me muestra completo una base de datos si no que hay que cargarle los items.

2) En mi pc, no tengo problemas en conectarme a mi base de datos mysql con mi aplicacion. La cuestion es que no tengo idea en Lazarus bajo el SO Linux Suse 10.3 como tengo que hacer la configuraci�n la conexion, etc. En este punto estoy un poco perdido y apreciaria cualquier ayuda.

Slds.
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20071225/00352ae1/attachment.html>

Reply by email

Eduardo Lopez
to José Luis Vassallo

Hola Jos� Luis... muchas felicidades tambi�n...

Realmente no soy ning�n experto ni en Delphi ni en Lazarus pero algo he probado y tratar� de ayudarte con mis humildes conocimientos.

Jos� Luis Vassallo escribi�:

Show quoted text 6 lines
Buenas primero quiero decearles unas felices fiestas. Tengo unas consultas. 1) Queria saber si existe algun componente como en Delphi llamado DBLookupComboBox, ya que el DBComboBox, que existe en lazarus, no me muestra completo una base de datos si no que hay que cargarle los items.

El DBComboBox de Lazarus lo debes conectar a un DataSource, de modo que llena la lista autom�ticamente.
El problema que veo en ese componente es que no puedes visualizar un campo y realizar la asignaci�n de otro; para ser m�s claro si tienes en tu tabla de CLIENTES un campo c�digo_provincia y en la tabla PROVINCIAS los campos codigo_provincia y nombre_provincia el ComboBox deber�a mostrar el nombre de la provincia, pero cuando el usuario selecciona �ste tendr�a que asignar el c�digo de la misma.

El componente que tiene esa funcionalidad puedes descargarlo de:

http://wiki.lazarus.freepascal.org/RXfpc

Te agrega dos paletas de componentes, el DBComboBoxLookup esta en la RX DataAware.

Yo particularmente no uso los componentes vinculados a datos y manejo los ComboBox simples utilizando StringList para manejar los c�digos internos.

Show quoted text 6 lines
2) En mi pc, no tengo problemas en conectarme a mi base de datos mysql con mi aplicacion. La cuestion es que no tengo idea en Lazarus bajo el SO Linux Suse 10.3 como tengo que hacer la configuraci�n la conexion, etc. En este punto estoy un poco perdido y apreciaria cualquier ayuda.

Es exactamente igual que en Windows, por algo Lazarus es "Write once, compile everywere...", debes indicar los mismos valores de host, usuario, contrase�a, nombre de la base...
No hay nada extra�o al respecto, cu�ntanos que problema espec�fico tienes.

Saludos cordiales.

Eduardo L�pez

Reply by email

José Luis Vassallo
to Eduardo Lopez

El d�a 28/12/07, Eduardo Lopez <dar_alle en yahoo.com.ar> escribi�:

Show quoted text 52 lines
Hola Jos� Luis... muchas felicidades tambi�n... Realmente no soy ning�n experto ni en Delphi ni en Lazarus pero algo he probado y tratar� de ayudarte con mis humildes conocimientos. Jos� Luis Vassallo escribi�: > Buenas primero quiero decearles unas felices fiestas. > Tengo unas consultas. > > 1) Queria saber si existe algun componente como en Delphi llamado > DBLookupComboBox, ya que el DBComboBox, que existe en lazarus, no me > muestra completo una base de datos si no que hay que cargarle los items. El DBComboBox de Lazarus lo debes conectar a un DataSource, de modo que llena la lista autom�ticamente. El problema que veo en ese componente es que no puedes visualizar un campo y realizar la asignaci�n de otro; para ser m�s claro si tienes en tu tabla de CLIENTES un campo c�digo_provincia y en la tabla PROVINCIAS los campos codigo_provincia y nombre_provincia el ComboBox deber�a mostrar el nombre de la provincia, pero cuando el usuario selecciona �ste tendr�a que asignar el c�digo de la misma. El componente que tiene esa funcionalidad puedes descargarlo de: http://wiki.lazarus.freepascal.org/RXfpc Te agrega dos paletas de componentes, el DBComboBoxLookup esta en la RX DataAware. Yo particularmente no uso los componentes vinculados a datos y manejo los ComboBox simples utilizando StringList para manejar los c�digos internos. > > 2) En mi pc, no tengo problemas en conectarme a mi base de datos mysql > con mi aplicacion. La cuestion es que no tengo idea en Lazarus bajo el > SO Linux Suse 10.3 como tengo que hacer la configuraci�n la conexion, > etc. En este punto estoy un poco perdido y apreciaria cualquier ayuda. > Es exactamente igual que en Windows, por algo Lazarus es "Write once, compile everywere...", debes indicar los mismos valores de host, usuario, contrase�a, nombre de la base... No hay nada extra�o al respecto, cu�ntanos que problema espec�fico tienes. Saludos cordiales. Eduardo L�pez _______________________________________________ Lazarus-es mailing list Lazarus-es en lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Buenas, perdon por la tardanza en responder pero las fiestas me rompieron todos los planes. :-P

1) Al intentar instalar el componente rxlib, no me deja porque el fuente rxctrl.pas pide la unit commctrl. Donde la puedo obtener?

2) Tengo que explicarme mejor (perdon). Lo que necesito hacer es tengo en el servidor, instalado el mysql, como desde otra pc con una aplicaci�n lazarus, puedo acceder a las bases del servidor. Como hay que configurar la red. Tengo que instalar algo de mysql en la pc?

Muchas gracias foro y un feliz a�o nuevo a todos. ------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20071230/580169d4/attachment.html>

Reply by email

Carlos German Tejero
to José Luis Vassallo
1) Al intentar instalar el componente rxlib, no me deja porque el fuente rxctrl.pas pide la unit commctrl. Donde la puedo obtener?

No tengo idea.

2) Tengo que explicarme mejor (perdon). Lo que necesito hacer es tengo en el

servidor, instalado el mysql, como desde otra pc con una aplicaci�n lazarus, puedo acceder a las bases del servidor. Como hay que configurar la red. Tengo que instalar algo de mysql en la pc?

Deberias instalar la libreria cliente de MySQL libmysql en el cliente y la maquina servidor deberias ser accesible al cliente a traves de TCP/IP. Creo que MySQL escucha en el puerto 3306 (del servidor).

Muchas gracias foro y un feliz a�o nuevo a todos.

Feliz a�o nuevo!!!.
Carlos Germ�n Tejero ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20071231/26d2606c/attachment.html>

Reply by email

Eduardo Lopez
to José Luis Vassallo: El d�a 28/12/07, Eduardo Lopez <dar_alle en yahoo.com.ar> escribi�: Buenas, perdon…

Jos� Luis Vassallo escribi�:

Buenas, perdon por la tardanza en responder pero las fiestas me rompieron todos los planes. :-P

Je je je.. por aqu� tambi�n...

1) Al intentar instalar el componente rxlib, no me deja porque el fuente rxctrl.pas pide la unit commctrl. Donde la puedo obtener?

Realmente estimo que es un error de las bibliotecas, pero para solucionarlo, en ese mismo archivo (rxctrl.pas) renombr� esa referencia (commctr) por ComCtrls y a partir de ese momento compil� e instal� el paquete correspondiente.

Show quoted text 5 lines
2) Tengo que explicarme mejor (perdon). Lo que necesito hacer es tengo en el servidor, instalado el mysql, como desde otra pc con una aplicaci�n lazarus, puedo acceder a las bases del servidor. Como hay que configurar la red. Tengo que instalar algo de mysql en la pc?

En el equipo donde tienes instalado Suse debes instalar el "cliente" de mysql, debes fijarte en Yast para ubicar el paquete RPM correspondiente. A veces, si el script de instalaci�n del paquete no lo hace autom�ticamente, es necesario crear un enlace simb�lico sobre estas bibliotecas para que sean reconocidas por un programa L�zarus:

Por ejemplo, para dar un ejemplo, en el caso de Firebird el cliente quiz�s instala lo siguiente:
libfbclient.so.2.0.3 y debe ser creado el enlace simb�lico a esta biblioteca de la siguiente forma libfbclient.so

Saludos.
Eduardo.

Reply by email

José Luis Vassallo
to Eduardo Lopez

Buenas y sigo yo el pesado. :-)

1) Logre instalar el componente rxlib y anda casi todo bien, el problema es que en el form donde puse el componente antes de salir de el cuando quiero cerrar el query me da el error "Project raised exception class �EDatabaError' with message: Operation cannot be perfrmed on an inactive dataset", vere si cambiando algunas opciones logro hacer que desaparezca el error. Me despliega bien la informaci�n eso si.

2) Perdon por molestar tanto con este tema de la red. En mi pc lo corro sin problemas, ya que tengo tanto lazarus como el mysql en forma local en mi suse. Pero en lo de mi cliente tengo el servidor y las estaciones de trabajo (todas con suse 10.3) y no se como armar la red. En el servidor esta el mysql corriendo sin problemas ahora mi problema es el sistema que desarrollo en lazarus lo tengo que tener en cada pc (si es asi como desde la aplicacion la configuro para que acceda a la base de datos del servidor y como configuro la red)? o si tiene que estar mi aplicacion dentro del servidor (en un directorio accesible por todos)?

MilGracias. :-)
Slds.

El d�a 1/01/08, Eduardo Lopez <dar_alle en yahoo.com.ar> escribi�:

Show quoted text 37 lines
Jos� Luis Vassallo escribi�: > > Buenas, perdon por la tardanza en responder pero las fiestas me > rompieron todos los planes. :-P Je je je.. por aqu� tambi�n... > > 1) Al intentar instalar el componente rxlib, no me deja porque el > fuente rxctrl.pas pide la unit commctrl. Donde la puedo obtener? Realmente estimo que es un error de las bibliotecas, pero para solucionarlo, en ese mismo archivo (rxctrl.pas) renombr� esa referencia (commctr) por ComCtrls y a partir de ese momento compil� e instal� el paquete correspondiente. > > 2) Tengo que explicarme mejor (perdon). Lo que necesito hacer es tengo > en el servidor, instalado el mysql, como desde otra pc con una > aplicaci�n lazarus, puedo acceder a las bases del servidor. Como hay > que configurar la red. Tengo que instalar algo de mysql en la pc? En el equipo donde tienes instalado Suse debes instalar el "cliente" de mysql, debes fijarte en Yast para ubicar el paquete RPM correspondiente. A veces, si el script de instalaci�n del paquete no lo hace autom�ticamente, es necesario crear un enlace simb�lico sobre estas bibliotecas para que sean reconocidas por un programa L�zarus: Por ejemplo, para dar un ejemplo, en el caso de Firebird el cliente quiz�s instala lo siguiente: libfbclient.so.2.0.3 y debe ser creado el enlace simb�lico a esta biblioteca de la siguiente forma libfbclient.so Saludos. Eduardo. _______________________________________________ Lazarus-es mailing list Lazarus-es en lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20080104/5f934b9f/attachment.html>

Reply by email

José Luis Vassallo
to José Luis Vassallo

El d�a 4/01/08, Jos� Luis Vassallo <jose.vassallo en gmail.com> escribi�:

Show quoted text 64 lines
Buenas y sigo yo el pesado. :-) 1) Logre instalar el componente rxlib y anda casi todo bien, el problema es que en el form donde puse el componente antes de salir de el cuando quiero cerrar el query me da el error "Project raised exception class �EDatabaError' with message: Operation cannot be perfrmed on an inactive dataset", vere si cambiando algunas opciones logro hacer que desaparezca el error. Me despliega bien la informaci�n eso si. 2) Perdon por molestar tanto con este tema de la red. En mi pc lo corro sin problemas, ya que tengo tanto lazarus como el mysql en forma local en mi suse. Pero en lo de mi cliente tengo el servidor y las estaciones de trabajo (todas con suse 10.3) y no se como armar la red. En el servidor esta el mysql corriendo sin problemas ahora mi problema es el sistema que desarrollo en lazarus lo tengo que tener en cada pc (si es asi como desde la aplicacion la configuro para que acceda a la base de datos del servidor y como configuro la red)? o si tiene que estar mi aplicacion dentro del servidor (en un directorio accesible por todos)? MilGracias. :-) Slds. El d�a 1/01/08, Eduardo Lopez <dar_alle en yahoo.com.ar > escribi�: > > Jos� Luis Vassallo escribi�: > > > > Buenas, perdon por la tardanza en responder pero las fiestas me > > rompieron todos los planes. :-P > Je je je.. por aqu� tambi�n... > > > > 1) Al intentar instalar el componente rxlib, no me deja porque el > > fuente rxctrl.pas pide la unit commctrl. Donde la puedo obtener? > Realmente estimo que es un error de las bibliotecas, pero para > solucionarlo, en ese mismo archivo (rxctrl.pas) renombr� esa referencia > (commctr) por ComCtrls y a partir de ese momento compil� e instal� el > paquete correspondiente. > > > > 2) Tengo que explicarme mejor (perdon). Lo que necesito hacer es tengo > > en el servidor, instalado el mysql, como desde otra pc con una > > aplicaci�n lazarus, puedo acceder a las bases del servidor. Como hay > > que configurar la red. Tengo que instalar algo de mysql en la pc? > En el equipo donde tienes instalado Suse debes instalar el "cliente" de > mysql, debes fijarte en Yast para ubicar el paquete RPM correspondiente. > > A veces, si el script de instalaci�n del paquete no lo hace > autom�ticamente, es necesario crear un enlace simb�lico sobre estas > bibliotecas para que sean reconocidas por un programa L�zarus: > > Por ejemplo, para dar un ejemplo, en el caso de Firebird el cliente > quiz�s instala lo siguiente: > libfbclient.so.2.0.3 y debe ser creado el enlace simb�lico a esta > biblioteca de la siguiente forma libfbclient.so > > Saludos. > Eduardo. > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lazarus.freepascal.org > http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es >

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20080104/46cd6014/attachment.html>

Reply by email

Eduardo Lopez
to José Luis Vassallo: Buenas y sigo yo el pesado. :-) 1) Logre instalar el componente rxlib y anda casi todo…

Jos� Luis Vassallo escribi�:

Show quoted text 19 lines
Buenas y sigo yo el pesado. :-) 1) Logre instalar el componente rxlib y anda casi todo bien, el problema es que en el form donde puse el componente antes de salir de el cuando quiero cerrar el query me da el error "Project raised exception class �EDatabaError' with message: Operation cannot be perfrmed on an inactive dataset", vere si cambiando algunas opciones logro hacer que desaparezca el error. Me despliega bien la informaci�n eso si. 2) Perdon por molestar tanto con este tema de la red. En mi pc lo corro sin problemas, ya que tengo tanto lazarus como el mysql en forma local en mi suse. Pero en lo de mi cliente tengo el servidor y las estaciones de trabajo (todas con suse 10.3) y no se como armar la red. En el servidor esta el mysql corriendo sin problemas ahora mi problema es el sistema que desarrollo en lazarus lo tengo que tener en cada pc (si es asi como desde la aplicacion la configuro para que acceda a la base de datos del servidor y como configuro la red)? o si tiene que estar mi aplicacion dentro del servidor (en un directorio accesible por todos)?

Disculpame la demora en responder, pero estuve unos d�as de vacaciones. :-)

Respecto del punto 1) s�lo puedo decirte que es probable que al cerrar el form est�s haciendo alguna operaci�n (tipo commit) pero el dataset est� cerrado. S�lo queda revisar con detalle.

Para el punto 2) paso a detallarte: Ambas opciones son posibles: a) Tener los binarios en un servidor junto con sus archivos de configuraci�n (le�do por todos los clientes), con un directorio compartido por NFS.
b) Tener los binarios en cada equipo sus archivos de configuraci�n le�do s�lo por el usuario.

En ambos casos las bibliotecas del cliente mysql se deben instalar en todos los equipos clientes. En el punto a) la actualizaci�n del sistema es m�s sencilla, ya que actualizando el server, todos los clientes usar�n la versi�n disponible, en b) hay que actualizar equipo por equipo.

Actualmente, en tu equipo de desarrollo tienes configurado los componentes de acceso a mysql con "localhost", "tu_base_de_datos", "usuario", "contrase�a"
Lo que tienes que hacer es, leer estos valores de un archivo de configuraci�n (que puede ser en formato INI o XML) y en la creaci�n del Form asignarle las propiedades correspondientes al componente.

procedure TForm1.FormCreate(Sender: TObject);
begin
 MySQL50Connection1.hostname := 'servidor';
end;

Por ejemplo, para leer los datos de un archivo XML de configuraci�n puedes usar la unit XMLCfg:

var
cfg: TXMLConfig;
ArchivoConf:string;
begin
  ArchivoConf := 'misistema.conf';
  cfg := TXMLConfig.Create(nil);
  cfg.Filename := ArchivoConf;
  LabeledEdit_servidor.Text := cfg.GetValue('BaseDatos/NombreServidor','');
  LabeledEdit_base.Text := cfg.GetValue('BaseDatos/BaseDatos','');
  LabeledEdit_usuario.Text := cfg.GetValue('BaseDatos/Usuario','');
  cfg.free;
end;

Depende de tu aplicaci�n y del nivel de seguridad que quieras darle, puedes guardar el usuario y contrase�a en el archivo XML o bien pedirla en una pantalla de login.

El archivo de configuraci�n puede ser guardado donde quieras: en /etc/tu_archivo.conf (s�lo modificable por root y v�lido para todos los usuarios del equipo) o en cada home del usuario, donde tendr�s acceso completo al mismo y podr�s utilizarlo adem�s para guardar cualquier preferencia que desees.

De esta forma podr�s generar un binario �nico que te funcionar� tanto en tu equipo de desarrollo como en el del usuario final de la aplicaci�n.

Saludos cordiales.
Eduardo L�pez.

Reply by email

José Luis Vassallo
to Eduardo Lopez

Gracias Eduardo, estoy avanzando a full gracias a vos. 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. 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.
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" 127.0.0.1 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?

Disculpa mis preguntas y mis molestas master.

El d�a 11/01/08, Eduardo Lopez <dar_alle en yahoo.com.ar> escribi�:

Show quoted text 90 lines
Jos� Luis Vassallo escribi�: > Buenas y sigo yo el pesado. :-) > > 1) Logre instalar el componente rxlib y anda casi todo bien, el > problema es que en el form donde puse el componente antes de salir de > el cuando quiero cerrar el query me da el error "Project raised > exception class �EDatabaError' with message: Operation cannot be > perfrmed on an inactive dataset", vere si cambiando algunas opciones > logro hacer que desaparezca el error. Me despliega bien la informaci�n > eso si. > 2) Perdon por molestar tanto con este tema de la red. > En mi pc lo corro sin problemas, ya que tengo tanto lazarus como el > mysql en forma local en mi suse. Pero en lo de mi cliente tengo el > servidor y las estaciones de trabajo (todas con suse 10.3) y no se > como armar la red. En el servidor esta el mysql corriendo sin > problemas ahora mi problema es el sistema que desarrollo en lazarus lo > tengo que tener en cada pc (si es asi como desde la aplicacion la > configuro para que acceda a la base de datos del servidor y como > configuro la red)? o si tiene que estar mi aplicacion dentro del > servidor (en un directorio accesible por todos)? Disculpame la demora en responder, pero estuve unos d�as de vacaciones. :-) Respecto del punto 1) s�lo puedo decirte que es probable que al cerrar el form est�s haciendo alguna operaci�n (tipo commit) pero el dataset est� cerrado. S�lo queda revisar con detalle. Para el punto 2) paso a detallarte: Ambas opciones son posibles: a) Tener los binarios en un servidor junto con sus archivos de configuraci�n (le�do por todos los clientes), con un directorio compartido por NFS. b) Tener los binarios en cada equipo sus archivos de configuraci�n le�do s�lo por el usuario. En ambos casos las bibliotecas del cliente mysql se deben instalar en todos los equipos clientes. En el punto a) la actualizaci�n del sistema es m�s sencilla, ya que actualizando el server, todos los clientes usar�n la versi�n disponible, en b) hay que actualizar equipo por equipo. Actualmente, en tu equipo de desarrollo tienes configurado los componentes de acceso a mysql con "localhost", "tu_base_de_datos", "usuario", "contrase�a" Lo que tienes que hacer es, leer estos valores de un archivo de configuraci�n (que puede ser en formato INI o XML) y en la creaci�n del Form asignarle las propiedades correspondientes al componente. procedure TForm1.FormCreate(Sender: TObject); begin MySQL50Connection1.hostname := 'servidor'; end; Por ejemplo, para leer los datos de un archivo XML de configuraci�n puedes usar la unit XMLCfg: var cfg: TXMLConfig; ArchivoConf:string; begin ArchivoConf := 'misistema.conf'; cfg := TXMLConfig.Create(nil); cfg.Filename := ArchivoConf; LabeledEdit_servidor.Text := cfg.GetValue ('BaseDatos/NombreServidor',''); LabeledEdit_base.Text := cfg.GetValue('BaseDatos/BaseDatos',''); LabeledEdit_usuario.Text := cfg.GetValue('BaseDatos/Usuario',''); cfg.free; end; Depende de tu aplicaci�n y del nivel de seguridad que quieras darle, puedes guardar el usuario y contrase�a en el archivo XML o bien pedirla en una pantalla de login. El archivo de configuraci�n puede ser guardado donde quieras: en /etc/tu_archivo.conf (s�lo modificable por root y v�lido para todos los usuarios del equipo) o en cada home del usuario, donde tendr�s acceso completo al mismo y podr�s utilizarlo adem�s para guardar cualquier preferencia que desees. De esta forma podr�s generar un binario �nico que te funcionar� tanto en tu equipo de desarrollo como en el del usuario final de la aplicaci�n. Saludos cordiales. Eduardo L�pez. _______________________________________________ Lazarus-es mailing list Lazarus-es en lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20080117/47dba42e/attachment.html>

Reply by email

Eduardo Lopez

La forma m�s sencilla es usar la IP del servidor directamente en los valores de Host del componente de acceso a la BD en tu programa. 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).

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. Las aplicaciones de BD cliente/servidor se comunican a una IP y puerto en particular donde el motor de BD escucha y responde peticiones. 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.

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.

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.

Saludos cordiales.
Eduardo.

Earlier message 115 lines
----- Mensaje original ---- De: Jos� Luis Vassallo <jose.vassallo en gmail.com> Para: Spanish version of Lazarus List <lazarus-es en lazarus.freepascal.org> Enviado: jueves 17 de enero de 2008, 23:43:19 Asunto: Re: [Lazarus-es] Felicidades y una Consulta Gracias Eduardo, estoy avanzando a full gracias a vos. 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. 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. 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" 127.0.0.1 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? Disculpa mis preguntas y mis molestas master. El d�a 11/01/08, Eduardo Lopez < dar_alle en yahoo.com.ar> escribi�:Jos� Luis Vassallo escribi�: > Buenas y sigo yo el pesado. :-) > > 1) Logre instalar el componente rxlib y anda casi todo bien, el > problema es que en el form donde puse el componente antes de salir de > el cuando quiero cerrar el query me da el error "Project raised > exception class �EDatabaError' with message: Operation cannot be > perfrmed on an inactive dataset", vere si cambiando algunas opciones > logro hacer que desaparezca el error. Me despliega bien la informaci�n > eso si. > 2) Perdon por molestar tanto con este tema de la red. > En mi pc lo corro sin problemas, ya que tengo tanto lazarus como el > mysql en forma local en mi suse. Pero en lo de mi cliente tengo el > servidor y las estaciones de trabajo (todas con suse 10.3) y no se > como armar la red. En el servidor esta el mysql corriendo sin > problemas ahora mi problema es el sistema que desarrollo en lazarus lo > tengo que tener en cada pc (si es asi como desde la aplicacion la > configuro para que acceda a la base de datos del servidor y como > configuro la red)? o si tiene que estar mi aplicacion dentro del > servidor (en un directorio accesible por todos)? Disculpame la demora en responder, pero estuve unos d�as de vacaciones. :-) Respecto del punto 1) s�lo puedo decirte que es probable que al cerrar el form est�s haciendo alguna operaci�n (tipo commit) pero el dataset est� cerrado. S�lo queda revisar con detalle. Para el punto 2) paso a detallarte: Ambas opciones son posibles: a) Tener los binarios en un servidor junto con sus archivos de configuraci�n (le�do por todos los clientes), con un directorio compartido por NFS. b) Tener los binarios en cada equipo sus archivos de configuraci�n le�do s�lo por el usuario. En ambos casos las bibliotecas del cliente mysql se deben instalar en todos los equipos clientes. En el punto a) la actualizaci�n del sistema es m�s sencilla, ya que actualizando el server, todos los clientes usar�n la versi�n disponible, en b) hay que actualizar equipo por equipo. Actualmente, en tu equipo de desarrollo tienes configurado los componentes de acceso a mysql con "localhost", "tu_base_de_datos", "usuario", "contrase�a" Lo que tienes que hacer es, leer estos valores de un archivo de configuraci�n (que puede ser en formato INI o XML) y en la creaci�n del Form asignarle las propiedades correspondientes al componente. procedure TForm1.FormCreate(Sender: TObject); begin MySQL50Connection1.hostname := 'servidor'; end; Por ejemplo, para leer los datos de un archivo XML de configuraci�n puedes usar la unit XMLCfg: var cfg: TXMLConfig; ArchivoConf:string; begin ArchivoConf := 'misistema.conf'; cfg := TXMLConfig.Create(nil); cfg.Filename := ArchivoConf; LabeledEdit_servidor.Text := cfg.GetValue('BaseDatos/NombreServidor',''); LabeledEdit_base.Text := cfg.GetValue('BaseDatos/BaseDatos',''); LabeledEdit_usuario.Text := cfg.GetValue('BaseDatos/Usuario',''); cfg.free; end; Depende de tu aplicaci�n y del nivel de seguridad que quieras darle, puedes guardar el usuario y contrase�a en el archivo XML o bien pedirla en una pantalla de login. El archivo de configuraci�n puede ser guardado donde quieras: en /etc/tu_archivo.conf (s�lo modificable por root y v�lido para todos los usuarios del equipo) o en cada home del usuario, donde tendr�s acceso completo al mismo y podr�s utilizarlo adem�s para guardar cualquier preferencia que desees. De esta forma podr�s generar un binario �nico que te funcionar� tanto en tu equipo de desarrollo como en el del usuario final de la aplicaci�n. Saludos cordiales. Eduardo L�pez.

Reply by email

José Luis Vassallo
to Eduardo Lopez

Buenas Eduardo, ceo que me llevas un poco de ventaja en esto de las bases. Me cree un host nuevo llamado "tnt.site" el problema es que no logro que el mysql me habra este host para crear las bases, debo estar haciendo algo mal en el mysql y miro la documetacion y no encuentro que hago mal. Hace mucho que trabajas con lazarus?
Slds.

El d�a 18/01/08, Eduardo Lopez <dar_alle en yahoo.com.ar> escribi�:

Show quoted text 173 lines
La forma m�s sencilla es usar la IP del servidor directamente en los valores de Host del componente de acceso a la BD en tu programa. 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). 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. Las aplicaciones de BD cliente/servidor se comunican a una IP y puerto en particular donde el motor de BD escucha y responde peticiones. 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. 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. 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. Saludos cordiales. Eduardo. ----- Mensaje original ---- De: Jos� Luis Vassallo <jose.vassallo en gmail.com> Para: Spanish version of Lazarus List <lazarus-es en lazarus.freepascal.org> Enviado: jueves 17 de enero de 2008, 23:43:19 Asunto: Re: [Lazarus-es] Felicidades y una Consulta Gracias Eduardo, estoy avanzando a full gracias a vos. 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. 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. 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" 127.0.0.1 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? Disculpa mis preguntas y mis molestas master. El d�a 11/01/08, Eduardo Lopez < dar_alle en yahoo.com.ar> escribi�: > > Jos� Luis Vassallo escribi�: > > Buenas y sigo yo el pesado. :-) > > > > 1) Logre instalar el componente rxlib y anda casi todo bien, el > > problema es que en el form donde puse el componente antes de salir de > > el cuando quiero cerrar el query me da el error "Project raised > > exception class �EDatabaError' with message: Operation cannot be > > perfrmed on an inactive dataset", vere si cambiando algunas opciones > > logro hacer que desaparezca el error. Me despliega bien la informaci�n > > > eso si. > > 2) Perdon por molestar tanto con este tema de la red. > > En mi pc lo corro sin problemas, ya que tengo tanto lazarus como el > > mysql en forma local en mi suse. Pero en lo de mi cliente tengo el > > servidor y las estaciones de trabajo (todas con suse 10.3) y no se > > como armar la red. En el servidor esta el mysql corriendo sin > > problemas ahora mi problema es el sistema que desarrollo en lazarus lo > > > tengo que tener en cada pc (si es asi como desde la aplicacion la > > configuro para que acceda a la base de datos del servidor y como > > configuro la red)? o si tiene que estar mi aplicacion dentro del > > servidor (en un directorio accesible por todos)? > Disculpame la demora en responder, pero estuve unos d�as de vacaciones. > :-) > > Respecto del punto 1) s�lo puedo decirte que es probable que al cerrar > el form est�s haciendo alguna operaci�n (tipo commit) pero el dataset > est� cerrado. S�lo queda revisar con detalle. > > Para el punto 2) paso a detallarte: Ambas opciones son posibles: > a) Tener los binarios en un servidor junto con sus archivos de > configuraci�n (le�do por todos los clientes), con un directorio > compartido por NFS. > b) Tener los binarios en cada equipo sus archivos de configuraci�n > le�do s�lo por el usuario. > > En ambos casos las bibliotecas del cliente mysql se deben instalar en > todos los equipos clientes. En el punto a) la actualizaci�n del sistema > es m�s sencilla, ya que actualizando el server, todos los clientes > usar�n la versi�n disponible, en b) hay que actualizar equipo por > equipo. > > Actualmente, en tu equipo de desarrollo tienes configurado los > componentes de acceso a mysql con "localhost", "tu_base_de_datos", > "usuario", "contrase�a" > Lo que tienes que hacer es, leer estos valores de un archivo de > configuraci�n (que puede ser en formato INI o XML) y en la creaci�n del > Form asignarle las propiedades correspondientes al componente. > > procedure TForm1.FormCreate(Sender: TObject); > begin > MySQL50Connection1.hostname := 'servidor'; > end; > > Por ejemplo, para leer los datos de un archivo XML de configuraci�n > puedes usar la unit XMLCfg: > > var > cfg: TXMLConfig; > ArchivoConf:string; > begin > ArchivoConf := 'misistema.conf'; > cfg := TXMLConfig.Create(nil); > cfg.Filename := ArchivoConf; > LabeledEdit_servidor.Text := cfg.GetValue > ('BaseDatos/NombreServidor',''); > LabeledEdit_base.Text := cfg.GetValue('BaseDatos/BaseDatos',''); > LabeledEdit_usuario.Text := cfg.GetValue('BaseDatos/Usuario',''); > cfg.free; > end; > > Depende de tu aplicaci�n y del nivel de seguridad que quieras darle, > puedes guardar el usuario y contrase�a en el archivo XML o bien pedirla > en una pantalla de login. > > El archivo de configuraci�n puede ser guardado donde quieras: en > /etc/tu_archivo.conf (s�lo modificable por root y v�lido para todos los > usuarios del equipo) o en cada home del usuario, donde tendr�s acceso > completo al mismo y podr�s utilizarlo adem�s para guardar cualquier > preferencia que desees. > > De esta forma podr�s generar un binario �nico que te funcionar� tanto en > tu equipo de desarrollo como en el del usuario final de la aplicaci�n. > > Saludos cordiales. > Eduardo L�pez. > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lazarus.freepascal.org > http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es > -----Sigue archivo adjunto en el mensaje----- _______________________________________________ Lazarus-es mailing list Lazarus-es en lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es ------------------------------ Yahoo! Encuentros Ahora encontrar pareja es mucho m�s f�cil, prob� el nuevo Yahoo! Encuentros. Visit� http://yahoo.cupidovirtual.com/servlet/NewRegistration _______________________________________________ Lazarus-es mailing list Lazarus-es en lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20080118/05cb0dc0/attachment.html>

Reply by email

Eduardo Lopez
to José Luis Vassallo

La clave del problema est� en la configuraci�n de seguridad de mysql. En forma predeterminada, no se permite que el usuario root se conecte remotamente al servidor. Es decir debes hacerlo directamente en el server o abrir una consola por ssh.

Luego, puedes abrir una consola de mysql con el comando:

mysql -u root -p

te va a solicitar la contrase�a y te va a dejar en el prompt de mysql, alli podr�s crear las bases y tablas que desees.

Luego, para habilitar el acceso de los equipos clientes debes ejecutar el siguiente comando en la consola mysql:

mysql> GRANT ALL PRIVILEGES ON tu_basedatos.* TO 'el_usuario'@'192.168.1.10' IDENTIFIED BY 'la_contrase�a'

eso permitir� la conexi�n de el_usuario desde el cliente con IP 192.168.1.10.
Si deseas que puedan conectarse desde cualquier IP puedes reemplazar ese valor por el s�mbolo %

Saludos cordiales.
Eduardo.

Jos� Luis Vassallo escribi�:

Show quoted text 223 lines
Buenas Eduardo, ceo que me llevas un poco de ventaja en esto de las bases. Me cree un host nuevo llamado "tnt.site" el problema es que no logro que el mysql me habra este host para crear las bases, debo estar haciendo algo mal en el mysql y miro la documetacion y no encuentro que hago mal. Hace mucho que trabajas con lazarus? Slds. El d�a 18/01/08, *Eduardo Lopez* <dar_alle en yahoo.com.ar <mailto:dar_alle en yahoo.com.ar>> escribi�: La forma m�s sencilla es usar la IP del servidor directamente en los valores de Host del componente de acceso a la BD en tu programa. 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). 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. Las aplicaciones de BD cliente/servidor se comunican a una IP y puerto en particular donde el motor de BD escucha y responde peticiones. 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. 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. 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. Saludos cordiales. Eduardo. ----- Mensaje original ---- De: Jos� Luis Vassallo < jose.vassallo en gmail.com <mailto:jose.vassallo en gmail.com>> Para: Spanish version of Lazarus List <lazarus-es en lazarus.freepascal.org <mailto:lazarus-es en lazarus.freepascal.org>> Enviado: jueves 17 de enero de 2008, 23:43:19 Asunto: Re: [Lazarus-es] Felicidades y una Consulta Gracias Eduardo, estoy avanzando a full gracias a vos. 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. 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. 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" 127.0.0.1 <http://127.0.0.1> 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? Disculpa mis preguntas y mis molestas master. El d�a 11/01/08, *Eduardo Lopez* < dar_alle en yahoo.com.ar <mailto:dar_alle en yahoo.com.ar>> escribi�: Jos� Luis Vassallo escribi�: > Buenas y sigo yo el pesado. :-) > > 1) Logre instalar el componente rxlib y anda casi todo bien, el > problema es que en el form donde puse el componente antes de salir de > el cuando quiero cerrar el query me da el error "Project raised > exception class �EDatabaError' with message: Operation cannot be > perfrmed on an inactive dataset", vere si cambiando algunas opciones > logro hacer que desaparezca el error. Me despliega bien la informaci�n > eso si. > 2) Perdon por molestar tanto con este tema de la red. > En mi pc lo corro sin problemas, ya que tengo tanto lazarus como el > mysql en forma local en mi suse. Pero en lo de mi cliente tengo el > servidor y las estaciones de trabajo (todas con suse 10.3) y no se > como armar la red. En el servidor esta el mysql corriendo sin > problemas ahora mi problema es el sistema que desarrollo en lazarus lo > tengo que tener en cada pc (si es asi como desde la aplicacion la > configuro para que acceda a la base de datos del servidor y como > configuro la red)? o si tiene que estar mi aplicacion dentro del > servidor (en un directorio accesible por todos)? Disculpame la demora en responder, pero estuve unos d�as de vacaciones. :-) Respecto del punto 1) s�lo puedo decirte que es probable que al cerrar el form est�s haciendo alguna operaci�n (tipo commit) pero el dataset est� cerrado. S�lo queda revisar con detalle. Para el punto 2) paso a detallarte: Ambas opciones son posibles: a) Tener los binarios en un servidor junto con sus archivos de configuraci�n (le�do por todos los clientes), con un directorio compartido por NFS. b) Tener los binarios en cada equipo sus archivos de configuraci�n le�do s�lo por el usuario. En ambos casos las bibliotecas del cliente mysql se deben instalar en todos los equipos clientes. En el punto a) la actualizaci�n del sistema es m�s sencilla, ya que actualizando el server, todos los clientes usar�n la versi�n disponible, en b) hay que actualizar equipo por equipo. Actualmente, en tu equipo de desarrollo tienes configurado los componentes de acceso a mysql con "localhost", "tu_base_de_datos", "usuario", "contrase�a" Lo que tienes que hacer es, leer estos valores de un archivo de configuraci�n (que puede ser en formato INI o XML) y en la creaci�n del Form asignarle las propiedades correspondientes al componente. procedure TForm1.FormCreate(Sender: TObject); begin MySQL50Connection1.hostname := 'servidor'; end; Por ejemplo, para leer los datos de un archivo XML de configuraci�n puedes usar la unit XMLCfg: var cfg: TXMLConfig; ArchivoConf:string; begin ArchivoConf := 'misistema.conf'; cfg := TXMLConfig.Create(nil); cfg.Filename := ArchivoConf; LabeledEdit_servidor.Text := cfg.GetValue('BaseDatos/NombreServidor',''); LabeledEdit_base.Text := cfg.GetValue('BaseDatos/BaseDatos',''); LabeledEdit_usuario.Text := cfg.GetValue('BaseDatos/Usuario',''); cfg.free; end; Depende de tu aplicaci�n y del nivel de seguridad que quieras darle, puedes guardar el usuario y contrase�a en el archivo XML o bien pedirla en una pantalla de login. El archivo de configuraci�n puede ser guardado donde quieras: en /etc/tu_archivo.conf (s�lo modificable por root y v�lido para todos los usuarios del equipo) o en cada home del usuario, donde tendr�s acceso completo al mismo y podr�s utilizarlo adem�s para guardar cualquier preferencia que desees. De esta forma podr�s generar un binario �nico que te funcionar� tanto en tu equipo de desarrollo como en el del usuario final de la aplicaci�n. Saludos cordiales. Eduardo L�pez. _______________________________________________ Lazarus-es mailing list Lazarus-es en lazarus.freepascal.org <mailto:Lazarus-es en lazarus.freepascal.org> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es -----Sigue archivo adjunto en el mensaje----- _______________________________________________ Lazarus-es mailing list Lazarus-es en lazarus.freepascal.org <mailto:Lazarus-es en lazarus.freepascal.org> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es ------------------------------------------------------------------------ Yahoo! Encuentros Ahora encontrar pareja es mucho m�s f�cil, prob� el nuevo Yahoo! Encuentros. Visit� http://yahoo.cupidovirtual.com/servlet/NewRegistration _______________________________________________ Lazarus-es mailing list Lazarus-es en lazarus.freepascal.org <mailto:Lazarus-es en lazarus.freepascal.org> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es <http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es> ------------------------------------------------------------------------ _______________________________________________ Lazarus-es mailing list Lazarus-es en lazarus.freepascal.org http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Reply by email