Ver Mensaje Individual
  #1  
Antiguo 02-01-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Reputación: 21
AzidRain Va camino a la fama
De MySQL a FB (emebebido)

Resulta que por mero trabajo Pro-Bono, estoy haciendo una pequeña aplicación de control de caja para la escuela que dirige mi esposa, nada del otro mundo, solo pasar un libro donde registran lo que ingresa y lo que sale. Como no se necesita gran cosa de recursos pense en usar y ya meterme de una vez a conocer FB, esta vez en su version embebida, pues la idea es que sea portable. Ya he conseguido crear las tablas acostumbrarle a los generadores para los campo autoincrementados y otras cosas que FB usa y que en MySQL daba por sentado.

Uso Zeos para conectarme ya que ya los conozco bastante bien y nunca he tenido problema, el detalle es que de vez en vez me aparecen errores que para un bisogno en FB resulta críptico pero para alguno de los tantos expertos que tenemos por aquí, es algo de risa, ya hasta a pense mejor usar MySQL embebido pero es pago (ya hubiera acabado sin duda).

Os pongo un código y explico mi problema:

Código Delphi [-]
rocedure TFEditarMovimiento.Action1Execute(Sender: TObject);
begin
   with Datos.ZMovimiento do
   begin
     Post;
     Datos.ZMovimiento.CommitUpdates;
   end;
   Close;
end;

procedure TFEditarMovimiento.Action2Execute(Sender: TObject);
begin
  with Datos.ZMovimiento do
   begin
     CancelUpdates;
   end;
   Close;
end;

Function TFEditarMovimiento.Editar(fecha: TDateTime; num_nota: Integer):boolean;
begin
  //Esto esta pendiente por hacer
end;

Function TFEditarMovimiento.Nuevo(tipo: Char):Boolean;
begin


  with Datos.ZMovimiento Do
  Begin
    Open;
    Append;
    if tipo='E' then
    Begin
      Caption := 'Capturar Nuevo Egreso';
      Datos.ZConceptos.ParamByName('tipo').AsString := 'E';
      Datos.ZConceptos.Open;
    End
    else
    Begin
      Caption := 'Capturar Nuevo Ingreso';
      Datos.ZConceptos.ParamByName('tipo').AsString := 'I';
    End;
    Datos.ZConceptos.Open;
    ShowModal;
    Datos.ZConceptos.Close;
    Datos.ZMovimiento.Close;
  End;
  Result := ModalResult = mrOk;
end;

No puse la cabecera dela unidad pq es solo una ventana que abre o agrega un registro de una tabla y los botones (aceptar y cancelar [que disparan Action1 y Action2] son los que en teoría guardan o descartan lo capturado. Utilizo una tabla auxiliar conceptos para mostrar un lookupcombo y elegir de una lista.

El form que llama a su vez a esta solamente espera si le contesta si se modificó o agregó el registro para actualizar una tabla y que aparezca cualquier cambio.

El problema que tengo es que si lo ejecuto digamos "Nuevo" una vez me muestra el form y todo en orden, pero posteriormente si trato de volverlo a ejecutar me aparece "convertion error" justo al momento de ejecutar ZMovimiento.Open. El código con algunos cambios (los commits y eso) lo copie de otro que tengo con MySQL que uso como platilla. A ver si alguien me echa una luz..
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita