Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Obtener una copia tipo del registro. (https://www.clubdelphi.com/foros/showthread.php?t=18558)

jplj 16-02-2005 11:01:58

Obtener una copia tipo del registro.
 
Hola:

En clipper (¿alguien se acuerda qué es?) se podía obtener un registro en blanco con los valores por defecto para cada uno de sus campo posicionandonos más allá del final de la tabla.
Quería saber la forma de hacer algo similiar utilizando una instrucción SQL: obtener mediante una consulta que abarca campos de diferentes tablas, un "prototipo" con lo valores por defecto que la Base de Datos tiene asigando a cada campo.
Debería ser independiente del motor de BD que se emplee y que no requiera una insercción previa.

Un saludo.

marcoszorrilla 16-02-2005 15:33:00

En Clipper, Dbase, e incluso Access lo que se obtiene es el llamado "Registro Fantasma", es decir una fila en blanco apta para introducir datos según los criterios que tenga cada columna o campo.

Si la consulta que ejecutas es actualizable y la estas visualizando en una rejilla bastará con ir una fila más del final para obtener lo mismo.

@ 20,10 Say "Hasta Luego"

Un Saludo.

roman 16-02-2005 17:30:23

Cita:

Empezado por marcoszorrilla
@ 20,10 Say "Hasta Luego"

[modo=nostalgico]
Hace taaaaaaaanto tiempo que no veía algo así
[/modo]

// Saludos

marcoszorrilla 16-02-2005 17:33:42

Pues yo lo veo todos los días, pues aún me toca mantener varios programas que fueron realizados en Clipper.

Un Saludo.

jplj 16-02-2005 20:28:09

Lo que pretendía hacer era algo similiar a:

Código Delphi [-]
(no hay etiquea de clipper...)

FUNCTION DB_LeeRegistro(cArea, lModif)

    LOCAL aFich:={},;           // Array que contiene los campos.
          cAreaAc:=SELECT(),;   // Area de trabajo anterior.
          nPuntero:= 0,     ;   // Puntero
          nRegis,           ;   // N£mero de campos del registro.
          nI                    // Contador de campos.

    SELECT(cArea)
    nRegis := FCOUNT()
    nPuntero:= RECNO()

    IF !lModif   // Inserci¢n.
      GO BOTTOM
      SKIP
    ENDIF

    FOR nI=1 to nRegis
      AADD( aFich, FIELDGET(nI) )
    NEXT

    DBGOTO( nPuntero )
    SELECT( cAreaAc )

RETURN (aFich)


Al final obtengo un array con los valores por defecto de la consulta, que me servira como base para realizar una insercción.

Pero la consulta no es actualizable, y quería que el método fuera "universal".

No obstante, muchas gracias.


Cita:

Empezado por roman
[modo=nostalgico]
Hace taaaaaaaanto tiempo que no veía algo así
[/modo]

¿Nostalgia?
Ponte a modificar, depurar, ... un programita de clipper ahora que estás acostumbrado a lo bueno.


La franja horaria es GMT +2. Ahora son las 20:07:50.

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