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.