Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-01-2011
Avatar de vmorillos
vmorillos vmorillos is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 17
Poder: 0
vmorillos Va por buen camino
Los codigos de los productos los jalo directamente de la tabla producto, por eso no hay problema. Y respecto de saber si se esta duplicando la llave compuesta (factura, producto) lo que trato es de no sobrecargar a la base de datos (mysql) tal como lo dice Delphius en este hilo : http://www.clubdelphi.com/foros/showthread.php?t=46215

Ademas este es un ejemplo, el código de mi programa es otro. Solo he tomado la parte que no me ejecuta correctamente, que es el ingreso al EXCEPT.

Gracias BlueSteel.
__________________
dibe
Responder Con Cita
  #2  
Antiguo 20-01-2011
Avatar de vmorillos
vmorillos vmorillos is offline
Miembro
NULL
 
Registrado: nov 2010
Posts: 17
Poder: 0
vmorillos Va por buen camino
Smile Halle lo que buscaba

Probando y probando he encontrado lo que buscaba

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
      iCodigoProducto,iCodigoFactura,iCantidad  : integer;
      fPrecio                                   : Double;
begin
      iCodigoProducto:=StrToInt(edProducto.Text);
      iCodigoFactura:=StrToInt(edFactura.Text);
      iCantidad:=StrToInt(edCantidad.Text);
      fPrecio:=StrToFloat(edPrecio.Text);


      ZConnection1.StartTransaction;

      try
            zDetalle.Insert;

            zDetalleProdCodigo.Value:=iCodigoProducto;
            zDetalleFactCodigo.Value:=iCodigoFactura;
            zDetalleCantidad.Value:=iCantidad;
            zDetallePrecio.Value:=fPrecio;

            zDetalle.Post;
            ZConnection1.Commit;
      except
            //on E: EZSQLException do   //<--- Ya no uso esta excepcion
            on E:EZDatabaseError do     //<--- Esta esta mejor
            begin
                case E.ErrorCode of
                  1062:                 // Este era el codigo que buscaba
                        begin
                              ShowMessage('Duplicado');     // El mensaje que yo quiera
                        end
                  else
                        ShowMessage('Error codigo: '+IntToStr(E.ErrorCode)+' - '+E.Message);
                end;
                ZConnection1.Rollback;
                zDetalle.Cancel;

            end;

      end;

end;

Gracias a todos por su interés.
Saludos
__________________
dibe
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Procedimiento almacenado no captura error Carlos Hurtado Firebird e Interbase 0 27-01-2007 15:07:39
controlar error en transacción kikodelphi MS SQL Server 2 12-05-2006 02:53:09
Captura de error en Procedimiento almacenado lucasarts_18 Firebird e Interbase 11 28-12-2005 15:02:42
Devolver código de error de una transacción kikodelphi MS SQL Server 7 18-10-2005 14:41:49
captura de Error de Interbase digital Firebird e Interbase 2 25-06-2003 10:22:14


La franja horaria es GMT +2. Ahora son las 09:17:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi