Ver Mensaje Individual
  #3  
Antiguo 11-05-2007
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Reputación: 20
FGarcia Va por buen camino
hola nuevamente!

No se si sea correcto continuar aqui pero en caso contrario por favor le solicito a los moderadores que lo muevan.

Lepe, por el momento me "brinque" el procedimiento del OnExit del Edit asi que hago esto con el boton de guardar cambios:

Código Delphi [-]
//Capturamos el peso e insertamos los datos en la bd
procedure TMainFrm.btnPesarClick(Sender: TObject);
begin
  btnPesar.Enabled := False;
  g_iEntrada := 0;
  if  (g_strEstado = 'M') then
    showmessage('¡La Báscula tiene movimiento ESPERE!')
  else if (g_strEstado = 'U') then
    showmessage('¡EL PESO ES NEGATIVO!')
  else
    try
      begin
        lblPesoCap.Caption := g_strDatos;
        frmDatos.MDOEntrada.Append;
        frmDatos.MDOEntrada.FieldByName('FOLIO').Value := tmpFolio ;
        frmDatos.MDOEntrada.FieldByName('PLACAS').Value := edPlacas.Text ;
        frmDatos.MDOEntrada.FieldByName('CLIENTE').Value := dbCliente.Text ;
        frmDatos.MDOEntrada.FieldByName('PRODUCTO').Value := dbProducto.Text ;
        frmDatos.MDOEntrada.FieldByName('OPERADOR').Value := edOperador.Text ;
        frmDatos.MDOEntrada.FieldByName('PESO_ENT').Value := g_strDatos;
        frmDatos.MDOEntrada.FieldByName('HF_ENT').Value := Now;
        frmDatos.MDOEntrada.Post;
      end;
    except
    on E:Exception do
      begin
        ShowMessage('¡ERROR al actualizar la base de datos!');
      end;
  end;

en el OnValidate del TField PLACAS

Código Delphi [-]
procedure TfrmDatos.MDOEntradaPLACASValidate(Sender: TField);
var
  Query: TMDOSQL;
begin
  if Trim(MDOEntrada.FieldByName('PLACAS').AsString) <> '' then
  begin
    Query := TMDOSQL.Create(nil);
      try
        Query.Database := frmCnx.MDODatabase1 ;
        Query.Transaction := frmCnx.MDOTransaction3 ;
        Query.SQL.Text := 'SELECT Placas FROM ENTRADA WHERE Placas = :Valor';
        Query.ParamByName('Valor').Value :=
                                  MDOEntrada.FieldByName('PLACAS').AsString;
        query.ExecQuery ;
        try
          if Trim(Query.Fields[0].AsString) <> '' then
            begin
              showmessage('¡Estas Placas estan duplicadas!');
              Abort;
            end;
        finally
          query.Close ;
        end;
      finally
        query.Free;
      end;
  end
  else
  begin
    ShowMessage('El campo placas es necesario');
    Abort;
  end;
end;

los dos mensaje de advertencia me aparecen si el campo placas esta duplicado o vacio, sin embargo al llenar el edit que contiene ese valor y volver a ejecutar el procedimiento PesarClick la BD me regresa un error
de que el campo placas es null. No entiendo que esta pasando. Se agradece toda la ayuda.

EDITO: uso D7, MDO, FB2.0
Responder Con Cita