<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p
{mso-style-priority:99;
mso-margin-top-alt:auto;
margin-right:0cm;
mso-margin-bottom-alt:auto;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"Texto de globo Car";
margin:0cm;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";
mso-fareast-language:EN-US;}
span.EstiloCorreo17
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EstiloCorreo18
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.EstiloCorreo20
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
span.TextodegloboCar
{mso-style-name:"Texto de globo Car";
mso-style-priority:99;
mso-style-link:"Texto de globo";
font-family:"Tahoma","sans-serif";
mso-fareast-language:EN-US;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body bgcolor=white lang=ES link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>Gracias, en zeos tenía el autocommit a true pero no funcionaba, finalmente he cambiado zeos por sqldb y aparentemente ahora, tecleando todo a mano y abriendo y cerrando las conexiones a la base de datos dentro de cada formulario (antes intenté usar un form común), creo que voy por buen camino.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>He probado los procedimientos almacenados creándolos con ibexpert personal, me ha costado un poco encontrar la lógica y la forma de usarlos pero finalmente lo he conseguido y parece que funciona bien. De todas formas os agradecería que me confirmarais si voy por buen camino o hay otra forma de hacer u optimizar lo siguiente.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>El procedimiento sería este:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>CREATE OR ALTER PROCEDURE USUARIOS_NUEVO (<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> usuario varchar(80),<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> clave varchar(80),<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> nivel integer)<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>as<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>begin<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> /* Nuevo usuario */<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>INSERT INTO USUARIOS (USUARIO,CLAVE,NIVEL) values (:USUARIO, :CLAVE, :NIVEL);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> suspend;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>end<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Y el código el siguiente:<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> try<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> SQLQryOrdenes.SQL.Clear;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> SQLQryOrdenes.SQL.Text := 'EXECUTE PROCEDURE USUARIOS_NUEVO :USUARIO, :CLAVE, :NIVEL;';<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> SQLQryOrdenes.ParamByName('USUARIO').Value:=edtUsuario.Text;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> SQLQryOrdenes.ParamByName('CLAVE').Value:=cifra(edtPassword.Text);<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> //Genera el nivel con relación al ItemIndex<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> // 0=Control total<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> // 1=Usuario<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> // 2=…<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> SQLQryOrdenes.ParamByName('NIVEL').Value:=cbNivel.ItemIndex;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> SQLQryOrdenes.ExecSQL;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> SQLTransactionVAV.CommitRetaining;<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='color:#1F497D'> </span><span style='color:#1F497D'>SQLQryUsuarios.Refresh;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> except<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> ShowMessage('Error: al guardar los datos en la tabla');<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'> end;<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'>Un saludo.<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:ES'>De:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:ES'> Ismael L. Donis Garcia [mailto:ismael@citricos.co.cu] <br><b>Enviado el:</b> jueves, 21 de julio de 2011 15:35<br><b>Para:</b> Spanish version of Lazarus List<br><b>Asunto:</b> Re: [Lazarus-es] Comportamiento Lazarus y firebird<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'>El problema lo tienes porque no estas haciendo el Commit de la transacción, eso no tiene nada que ver con firebird.</span><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'> <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'>Otra cosa me parece que lo que debías de optar es por no usar zeos ya que el soporte no va al mismo ritmo de lazarus, en vez de haber decidirte por usar o una distribución de firebird u otra, aunque yo en lo personal no recomiendo tampoco a nadie que para un desarrollo serio use la versión 2.5 de firebird porque tiene muchos insectos, eso si pueden usar perfectamente la última foto de la versión 2.5.1 la cual ya se le han corregido muchos insectos, la cual considero que no faltará mucho en salir como candidate 1 del próximo reléase.</span><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'> <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'>Otra cosa te recomiendo que trabajes todas las actualizaciones con procedimientos almacenados, factor este que te va a evitar muchos dolores de cabeza con las aplicaciones cliente-servidor.</span><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'> <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'>Saludos Cordiales</span><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'><o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'>=========<br>|| ISMAEL ||<br>=========<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'>PD: Mi caso es todo lo contrario al tuyo, muchos conocimientos en el manejo de RDBMS y muy pocos de Lazarus.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'> <o:p></o:p></span></p></div><blockquote style='border:none;border-left:solid black 1.5pt;padding:0cm 0cm 0cm 4.0pt;margin-left:3.75pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt'><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'>----- Original Message ----- <o:p></o:p></span></p></div><div><p class=MsoNormal style='background:#E4E4E4'><b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'>From:</span></b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'> <a href="mailto:manuel@clublazarus.com" title="manuel@clublazarus.com">Manuel Galeote</a> <o:p></o:p></span></p></div><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'>To:</span></b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'> <a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" title="Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a> <o:p></o:p></span></p></div><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'>Sent:</span></b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'> Thursday, July 21, 2011 8:07 AM<o:p></o:p></span></p></div><div><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'>Subject:</span></b><span style='font-size:10.0pt;font-family:"Arial","sans-serif";mso-fareast-language:ES'> [Lazarus-es] Comportamiento Lazarus y firebird<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'><o:p> </o:p></span></p></div><p class=MsoNormal>Hola a todos.<o:p></o:p></p><p class=MsoNormal>Estoy comenzando a desarrollar una aplicación para windows y he decidido usar Lazarus y Firebird por la capacidad, de con relativamente poco cambio, poder usarlo en otro sistema operativo (Linux o mac). Con Lazarus alguna cosa he hecho pero en firebird no tengo ninguna experiencia.<o:p></o:p></p><p class=MsoNormal>He comenzado con mal pie al usar zeos 6.6.6 y firebird 2.5 ya que me da en la nariz que no son muy compatibles. A partir de aquí he bajado a firebird 2.1 y todo ha funcionado mejor pero me estoy encontrando con algún que otro problemilla y agradecería a quien tenga experiencia en el tema que me dijera si esto es normal.<o:p></o:p></p><p class=MsoNormal>Tengo un formulario principal donde hago la conexión con un zconnection y un formulario donde permito modifca datos con un ztable,dataset, grid y edt…<o:p></o:p></p><p class=MsoNormal>Si ejecuto la aplicación, se conecta correctamente a la base de datos y puedo hacer los cambios que quiera.<o:p></o:p></p><p class=MsoNormal>Ejecuto la aplicación 2 veces (simulo el uso en 2 ordenadores), cuando realizo cambios en la tabla en el primer programa el segundo no refresca los cambios. Entiendo que es normal ya que supongo que tendré que hacer un refresco de datos en la tabla.<o:p></o:p></p><p class=MsoNormal>Pues no funciona nada, hasta que no fuerce una desconexión de la base de datos y vuelva a conectar. He probado con un componente de tabla y con otro de query y a hacer refresh de la tabla, close y open o poner el active a false y luego a true y no refrescan los datos. Tengo necesariamente que desactivar la conexión y volver a conectarla para que lo haga.<o:p></o:p></p><p class=MsoNormal>Alguien sabe por qué pasa.<o:p></o:p></p><p class=MsoNormal>Un saludo.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div class=MsoNormal align=center style='text-align:center'><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'><hr size=2 width="100%" align=center></span></div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif";mso-fareast-language:ES'>_______________________________________________<br>Lazarus-es mailing list<br><a href="mailto:Lazarus-es@lists.lazarus.freepascal.org">Lazarus-es@lists.lazarus.freepascal.org</a><br><a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><o:p></o:p></span></p></blockquote></div></body></html>