En realidad RETURN en un Stored Procedure devuelve un valor entero para indicar el resultado de la ejecución (mas o menos como los .BAT del D.O.S.), si no se coloca devuelve 0.
Si lo que deseas es devolver el nombre de la empresa en una variable deberias usar algo asi:
Código SQL
[-]ALTER PROCEDURE [dbo][SP_EXISTE_EMPRESA]
@SP_NOMBRE NVARCHAR(50) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @SP_NOMBRE = NOMBRE
FROM EMPRESAS
WHERE NOMBRE = @SP_NOMBRE
IF @SP_NOMBRE IS NULL -- Si no existe la variable tendra Valor NULL
SET @SP_NOMBRE='' -- Entonces le asignamos un string vacio
END
Ahora bien en delphi tu llamada seria asi
Código Delphi
[-]spExisteEmpresa.parameters.parambyname('@SP_NOMBRE').value := 'Mi_Empresa';
spExisteEmpresa.ExecProc;
if spExisteEmpresa.parameters.parambyname('@SP_NOMBRE').value = '' then
ShowMessage('No existe');
else
ShowMessage('Existe');
Lo anterior usando el TADOStoredProc
Espero que te ayude. Saludos