PDA

Ver la Versión Completa : Cuando trabajan dos usuarios simultaneos solo graba la factura de uno


tulio
25-10-2003, 05:11:18
Hola querido Foro

Tengo un sistema de facturacion que en forma monousuaria andaba barbaro, utilizando delphi 6 e Interbase 6 (el que trae delphi ) , componentes Ibdataset y windows 98 2da edic..
El problema me surgio cuando configure una maquina como servidora y quise facturar con el mismo programa en forma simultanea con dos puestos de trabajo, solamente me graba lo que hace un solo usuario, lo que factura el otro no graba nada en absoluto, siendo el mismo ejecutable y la misma base de datos. algo rarisimo, el codigo de la parte que grabo es el siguiente

Procedure tformu_FaCtura.Graba;
var
J : Integer;
sql ,input: string;
year, month, Day, hour, min : Word;
begin
try
tablas.t_nro_factu.Open;
tablas.t_nro_factu.active:=true;
nro_factu:=tablas.t_nro_factuAnro_factura.asinteger;
nro_factu:=nro_factu+1;
tablas.t_nro_factu.edit;
tablas.t_nro_factuAnro_factura.asinteger:=nro_factu;
tablas.t_nro_factu.post;
tablas.tran.CommitRetaining;

tablas.t_cabe_fac.Open;
tablas.t_cabe_fac.Append;
tablas.t_cabe_facnro_factura.asinteger:=nro_factu;
tablas.t_cabe_facsuCUrsal.asinteger:=1;
tablas.t_cabe_facnro_cliente.asinteger:=strtoint(edit_nroC.text);
tablas.t_cabe_facfe.value:=date();
tablas.t_cabe_factipo_fac.asstring:='A';
tablas.t_cabe_facestado.asstring:='A';
tablas.t_cabe_facimporte.asfloat:=neto ;
tablas.t_cabe_facforma_de_pago.asstring:='A';
tablas.t_cabe_facu.asstring:=F_PASSWORD.USUARIO;
tablas.t_cabe_fac.post;

tablas.t_items_fac.open;
FOR J:=1 TO 33 DO
Begin
If v_cod[J]<> '' then
begin
tablas.t_items_fac.Append;
tablas.t_items_facnro_factura.asinteger:=nro_factu;
tablas.t_items_facsucursal.asinteger:=1;
tablas.t_items_faccod_articulo.asstring:=v_cod[J];
tablas.t_items_facdesCri.asstring:=v_des[J];
If v_buluni[J]='B' then
tablas.t_items_faccantidad.asinteger:=v_canti[j]
Else
tablas.t_items_faccanti_uni.asinteger:=v_canti[j];
tablas.t_items_facimporte.asfloat:=v_impo[j]-(v_Jivatot[J]);
tablas.t_items_faciva.asfloat:=v_Jivatot[j];
tablas.t_items_facdesCu.asfloat:=v_desCuento[J];
tablas.t_items_facTIPO_FAC.asSTRING:='A';
tablas.t_items_facestado.asSTRING:='E';////emitido
tablas.t_items_fac.post;
End;
End;

tablas.tran.CommitRetaining;

except
tablas.tran.RollbackRetaining;
end;


/////////////

Por favor si me ayudan porque no me doy cuenta que puede pasar

Saludos y Gracias

tulio

IVAND
26-10-2003, 17:29:42
Hola, aparentemente puede ser un problema de licencias

Porque no pruebas con Firebird

tulio
26-10-2003, 19:57:28
Gracias ivand

dos preguntas, donde consigo Firebird , y los componentes Ibdataset que uso con delphi 6 me son compatibles

Saludos tulio

marcoszorrilla
26-10-2003, 21:22:48
http://sourceforge.net/project/showfiles.php?group_id=9028

Un Saludo.

guillotmarc
26-10-2003, 22:31:30
Hola.

De las distintas descargas que hay disponibles de Firebird, te recomiendo la versión 1.03

http://prdownloads.sourceforge.net/firebird/Firebird-1.0.3.972-Win32.exe?download

Es practicamente compatible 100% con Interbase 6, por lo que no tendrás problemas por usar tu base de datos actual, y tampoco deberás tocar ni una linea de código.

NOTA : Se recomienda que hagas una copia de seguridad de tu base de datos, desde Interbase 6, y la restaures con Firebird 1.03, antes de empezar a trabajar con ella.

En breve saldrá una versión nueva de Firebird, la versión 1.5. Lleva mejoras considerables, aunque para poder aprovecharlas y para no tener problemas de compatibilidad, seguramente deberás cambiar los componentes que utilizas (en lugar de usar IBX, será mejor usar IBO, FibPlus, el driver dbExpress de www.upscene.com, ...).

Saludos.

tulio
27-10-2003, 00:34:58
Gracias Marcoszorrilla y guilletmar

voy a probar con firebird .

Entonces mi problema de no grabar dos usuarios simultaneos es un problema de licencias ?

saludos tulio

guillotmarc
27-10-2003, 11:05:54
Hola.

No lo sé, quizá IVAND nos podría explicar la razón. A mi más bien me parece que el Interbase 6 que viene con Delphi, lleva 5 licencias de conexión simultanea, para trabajar en el desarrollo de la aplicación.

Aunque, quizá esas conexiones solo se pueden realizar en local. La verdad es que lo desconozco puesto que nunca he usado ese Interbase.

NOTA : Cambiar Interbase 6 por Firebird 1, es una buena idea, independientemente de ese problema. Aunque solo sea por la cantidad de bugs que tiene corregidos (y sin olvidar, evidentemente, el hecho de que podrás conectar tantos usuarios como desees, sin necesidad de adquirir ninguna licencia comercial).

tulio
27-10-2003, 13:06:05
Muchachos

Instale el FIrebird y me anda todo el sistema aparentemente sin problemas.
Una duda, Cuando quiero ejecutar FIREBIRD PANEL DE CONTROL me salen un monton de carteles ' esta no es valida win32'

guillotmarc
27-10-2003, 13:26:55
Hola.

Ni idea, a mi siempre me ha funcionado bien. En todo caso puedes borrar el applet de panel de control (es un archivo .cpl en la carpeta System32) que tienes ahora, y instalar este :

http://www.achim-kalwa.de/fbmgr.html

Saludos.

tulio
27-10-2003, 18:07:50
Gracias guillot marc

Probe y anda todo bien.

Una pregunta Firebird es exactamente igual de confiable que Interbase o hay alguna limitación, de ser asi me pasaria definitivamente a Firebird

saludos tulio

guillotmarc
27-10-2003, 18:38:27
Hola.

Firebird 1 es más confiable que Interbase 6, puesto que se ha creado a partir de su código, corrigiendo muchos bugs.

Otra cosa es preguntarse, que es mejor, si Interbase 7 o Firebird 1.5. Ahora són dos proyectos distintos, con sus propias mejoras cada uno. Personalmente me gusta mucho Firebird, pero esto es una evaluación que debe hacer cada uno.

Saludos.

tulio
28-10-2003, 12:10:34
Gracias Marc Guillot

Me convertiste en un usuario mas de Firebird

Gracias por todos tu consejos

saludos tulio