viernes, 31 de enero de 2014

Saber si un cursor temporal o tabla .dbf está vacio.

Hola. Reciban cordiales saludos todos. Un pequeño tip, pero muy útil, es saber la forma para determinar si un cursor temporal o una tabla física (.dbf) está vacia totalmente. Muchas veces, para tal fin, contamos el numero de registros de las tablas con RECCOUNT() o usando la función COUNT(). Éstas son buenas opciones pero a veces, las funciones tienen ciertas condiciones o excepciones que dificultan obtener una certeza amplia sobre el numero de registros de dicha tabla.


Una forma práctica y rápida para saber si no hay ningun registro en la tabla o cursor es usar la Variable '_Tally'. Con un código como éste, podremos comprobarlo:


**--
SELECT tabla/cursor

IF _TALLY = 0

          **--Aqui el proceso si está vacio
          Messagebox("El cursor está vacio")


ENDIF
**--//


Bien... cualquier duda, sugerencia o comentario es siempre bienvenido.

Saludos!

Desde Managua, Nicaragua!
Ravenn :D :D :D

5 comentarios:

  1. Funciona solo inmediatamente despues de un Select SQL, no cuando hacemos Select

    ResponderEliminar
    Respuestas
    1. Hola. Gracias por comentar. Si, si ,si claro... la variable _TALLY devuelve el numero de registros procesados por ciertos comandos inmediatamente despues que éstos se ejecutan... si no, al procesar ningun registro... el valor de _TALLY seguiria siendo 0 y no podrias determinar la cantidad de registros. Los comandos deben ejecutarse primero para que la informacion contenida (numero de registros procesados) sea almacenada en la variable y asi puedas saber la cantidad de registros.

      Aca tenes una lista de comandos... y el funcionamiento de _TALLY

      http://msdn.microsoft.com/es-es/library/cc484924%28v=vs.71%29.aspx

      Un saludo!
      Desde Managua, Nicaragua!

      Eliminar
  2. y como se si el cursor esta vacio si me conecto con ODBC

    x1 = "select max(registro) num from siaf_certif_fase where ano= ?xano"
    = SQLEXEC(lnHandle, x1, 'sql6')
    quiero saber si sql6 me trae registtros o no,

    ResponderEliminar
    Respuestas
    1. usa este codigo
      x1 = "select max(registro) num from siaf_certif_fase where ano= ?xano"
      = SQLEXEC(lnHandle, x1, 'sql6')
      if reccound('sql6')>0 &&verifica si la tabla o cursor tiene registros
      direcctivas.....
      else && no tiene registros
      directivas
      endif

      Eliminar
  3. JT Gaming in Sydney opens 'new restaurant in JT
    JT Gaming, 경상북도 출장샵 the 여수 출장안마 global 제주 출장마사지 integrated entertainment company, has 동해 출장샵 announced the launch of a brand-new restaurant, JT Gaming Sydney, 원주 출장마사지 in

    ResponderEliminar