<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.3132" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hola</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Tengo un problema con la funcion
IFNULL.</FONT></DIV>
<DIV><FONT face=Arial size=2>La situación es la siguiente, necesito que al ir a
grabar un registro me incremente en uno un campo (no quiero usar un autoincrento
por el tema de los borrados, pruebas, etc).</FONT></DIV>
<DIV><FONT face=Arial size=2>Es decir, la funcion es esta y funciona
bien:</FONT></DIV>
<DIV> </DIV>
<DIV> <FONT face=Arial size=2>PROCEDURE usp_insertaproveedor (<BR>IN
inIdProveedor DECIMAL,<BR>IN inNombreProveedor varchar(50),<BR>IN
inNombreProveedor2 varchar(50),<BR>IN inNif varchar(14),<BR>IN inDireccion
varchar(50),<BR>IN inCiudad varchar(30),<BR>IN inProvincia varchar(30),<BR>IN
inCPostal mediumint(5),<BR>IN inCodFPago tinyint(2),<BR>IN inCtaBanco
decimal(20,0),<BR>IN inTipoProv tinyint(2),<BR>IN inDtoRec
decimal(5,2)<BR>)<BR>BEGIN DECLARE contador INT;<BR>SET contador=(SELECT
max(ident) from proveedores) + 1;<BR> INSERT INTO proveedores
(IdProveedor, NombreProveedor,
NombreProveedor2,NIF,Direccion,Ciudad,Provincia,CPostal,CodFPago,CtaBanco,TipoProv,DtoRec,ident)<BR>
VALUES(inIdProveedor,
inNombreProveedor,inNombreProveedor2,inNif,inDireccion,inCiudad,inProvincia,inCPostal,inCodFPago,
inCtaBanco,inTipoProv,inDtoRec,contador); <BR>END</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Pero cuando la tabla no contiene registros devuelve
un NULL, con el consiguiente error. Al ir a hechar mano de la Funcion IFNULL, no
consigo que funcione, quiero que si el valor es NULL devuelva un 1.</FONT></DIV>
<DIV><FONT face=Arial size=2> </FONT></DIV>
<DIV><FONT face=Arial size=2>PROCEDURE usp_insertaproveedor (<BR>IN
inIdProveedor DECIMAL,<BR>IN inNombreProveedor varchar(50),<BR>IN
inNombreProveedor2 varchar(50),<BR>IN inNif varchar(14),<BR>IN inDireccion
varchar(50),<BR>IN inCiudad varchar(30),<BR>IN inProvincia varchar(30),<BR>IN
inCPostal mediumint(5),<BR>IN inCodFPago tinyint(2),<BR>IN inCtaBanco
decimal(20,0),<BR>IN inTipoProv tinyint(2),<BR>IN inDtoRec
decimal(5,2)<BR>)<BR>BEGIN DECLARE contador INT;<BR>SET contador=IFNULL((SELECT
max(ident) from proveedores) + 1),1);<BR> INSERT INTO proveedores
(IdProveedor, NombreProveedor,
NombreProveedor2,NIF,Direccion,Ciudad,Provincia,CPostal,CodFPago,CtaBanco,TipoProv,DtoRec,ident)<BR>
VALUES(inIdProveedor,
inNombreProveedor,inNombreProveedor2,inNif,inDireccion,inCiudad,inProvincia,inCPostal,inCodFPago,
inCtaBanco,inTipoProv,inDtoRec,contador); <BR>END</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Estoy usando la version 5.0.27</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>A ver si alguien me puede echar una
mano.</FONT></DIV>
<DIV><FONT face=Arial size=2>Saludos y Gracias</FONT></DIV>
<DIV><FONT face=Arial size=2>Javier Rivas</FONT></DIV></BODY></HTML>