Ver Mensaje Individual
  #8  
Antiguo 05-07-2007
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Reputación: 20
Ivanzinho Va por buen camino
Si lo quieres hacer todo dentro de un procedimiento prueba lo siguiente :
Código SQL [-]
begin
  /* Procedure Text */
  //Obtenemos el campo sección como un entero
  FOR SELECT Cast(max(seccion) as integer) FROM SECCIONES
     WHERE RECTORIA = :c_rectoria and DIVISION = :c_division and DEPARTAMENTO = :c_depto
     INTO :c_seccionint DO
  begin
    //Si es nulo lo inicializamos a 0
    if (c_seccionint is null) then
      c_seccion = 0;
    
    //Aumentamos el contador
    c_seccionint = c_seccionint + 1;

    //Pasamos el campo a VarChar(3)
    c_seccion = Cast(c_seccionint as VarChar(3))

    //Comprobamos que el campo tenga siempre tres caracteres,
    //esto lo pongo porque creo que quieres que el campo tenga
    //el formato 001 y no 1. Si te vale la forma 1 olvidate del while.
    while length(c_seccion) < 3 do
       c_seccion = '0' || c_seccion;

    //Para finalizar con el campo c_seccion ejecutas la acción que
    //desees, un insert, update, ...
   
  end
end

Espero que te sirva

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)

Última edición por Ivanzinho fecha: 05-07-2007 a las 09:17:38.
Responder Con Cita