Compartir a través de


CREATE CURSOR – SQL (Comando)

Crea una tabla temporal.

CREATE CURSOR alias_name (fname1type [(precision [, scale])]
   [NULL | NOT NULL] [CHECK lExpression [ERROR cMessageText]]
   [DEFAULT eExpression] [UNIQUE] [NOCPTRANS] 
   [, fname2 ...]) | FROM ARRAY ArrayName

Parámetros

  • alias_name
    Especifica el nombre de la tabla temporal que se va a crear. Un argumento alias_name puede ser una expresión de nombre.

  • fname
    Especifica el nombre de un campo de la tabla temporal. Cada fname puede ser una expresión de nombre.

  • type
    Especifica una sola letra que indica el tipo de datos del campo.

  • precision
    Especifica el ancho del campo especificado con fname. Algunos tipos de datos requieren que especifique una precisión.

  • scale
    Especifica el número de lugares decimales para el tipo de datos especificado. Algunos tipos de datos exigen que especifique un valor para este parámetro.

    La tabla siguiente muestra los valores que puede elegir para los parámetros type, precision y scale:

    FieldType nFieldWidth nPrecision Descripción
    C n Campo Character de ancho n
    D Fecha
    T Datetime
    N n d Campo numérico de ancho n con d posiciones decimales
    F n d Campo numérico flotante de ancho n con d posiciones decimales
    I Integer
    B d Double
    Y Currency
    L Lógicas
    M Memo
    G General
    P Imagen

    nFieldWidth y nPrecision se pasan por alto para los tipos D, T, Y, L, M, G y P. Si no se incluye el parámetro nPrecision en los tipos N, F o B, de forma predeterminada nPrecision será cero (sin posiciones decimales).

  • NULL
    Admite valores nulos en el campo.

  • NOT NULL
    Impide escribir valores nulos en el campo.

    Si omite NULL y NOT NULL, la configuración actual de SET NULL determinará si se admiten valores nulos en el campo. No obstante, si omite NULL y NOT NULL, e incluye la cláusula PRIMARY KEY o UNIQUE, se pasará por alto la configuración actual de SET NULL y el campo tomará el valor predeterminado NOT NULL.

  • CHECK lExpression
    Especifica una regla de validación para el campo. lExpression puede ser una función definida por el usuario.

  • ERROR cMessageText
    Especifica el mensaje de error que Visual FoxPro muestra cuando la regla de validación de campo genera un error. El mensaje solamente se muestra cuando se modifican los datos en una ventana Examinar o en una ventana Editar.

  • DEFAULT eExpression
    Especifica un valor predeterminado para el campo. El tipo de datos de eExpression debe ser igual que el tipo de datos del campo.

  • UNIQUE
    Crea un índice candidato para el campo. La etiqueta de índice candidato tiene el mismo nombre que el campo.

    Si desea obtener más información acerca de los índices candidatos, vea Visualización de información de índices y Establecer un índice principal o candidato.

    Nota   Los índices candidatos (que se crean al incluir la opción UNIQUE) no son iguales que los índices creados con la opción UNIQUE del comando INDEX. Un índice creado con la opción UNIQUE del comando INDEX admite claves de índice duplicadas, mientras que los índices candidatos no las admiten.

    Los valores nulos y los registros duplicados no se admiten en campos empleados para un índice candidato. No obstante, Microsoft Visual FoxPro no generará ningún error si crea un índice candidato para un campo que admite valores nulos. Visual FoxPro generará un error si intenta escribir un valor nulo o duplicado en un campo empleado para un índice candidato.

  • NOCPTRANS
    Impide la conversión a otra página de códigos distinta para los campos de tipo carácter y memo. Si el cursor se convierte a otra página de códigos, los campos para los que se haya especificado NOCPTRANS no se convertirán. NOCPTRANS solamente se puede especificar para campos memo y de caracteres.

    El ejemplo siguiente crea un CURSOR denominado MYCURSOR que contiene dos campos de caracteres y dos campos memo. El segundo campo de caracteres CHAR2 y el segundo campo memo MEMO2 incluyen NOCPTRANS para evitar la conversión.

    CREATE CURSOR mycursor (char1 C(10), char2 C(10) NOCPTRANS,;
       memo1 M, memo2 M NOCPTRANS)
    
  • FROM ARRAY ArrayName
    Especifica el nombre de una matriz existente cuyo contenido es el nombre, el tipo, la precisión y la escala de cada uno de los campos de la tabla temporal. Vea AFIELDS( ) para saber el formato correcto para el contenido de la matriz.

Observaciones

CREATE CURSOR crea una tabla temporal que existe únicamente hasta que se cierra. Una tabla temporal creada mediante CREATE CURSOR puede manipularse como cualquier otra tabla: se puede examinar e indizar, y se pueden anexar y modificar registros.

La tabla temporal se abre en la menor de las áreas de trabajo disponibles y puede tenerse acceso a ella mediante su alias. Cada campo de la tabla temporal está definido con un nombre, tipo, precisión y escala. Estas definiciones pueden obtenerse del propio comando o de una matriz. La tabla temporal se abre en modo exclusivo independientemente de la configuración de SET EXCLUSIVE.

Ejemplo

El ejemplo siguiente crea un cursor con el alias employee. Se anexará un registro en blanco, después se llenará y se mostrará con el comando BROWSE.

CLOSE DATABASES
CLEAR
CREATE CURSOR employee ;
 (EmpID N(5), Name C(20), Address C(30), City C(30), ;
  PostalCode C(10), OfficeNo C(8) NULL, Specialty M)
DISPLAY STRUCTURE
WAIT WINDOW "Press a key to add a record."

INSERT INTO employee (EmpId, Name, Address, City, PostalCode, ;
        OfficeNo, Specialty);
 VALUES (1002, "Dr. Bonnie Doren", "University of Oregon", "Eugene", ;
     "98403", "", "Secondary Special Education")
BROWSE

* At this point you could copy this record to a permanent table
CLOSE ALL   && Once the cursor is closed, all data is flushed
      && from memory
CLEAR

Vea también

AFIELDS( ) | CREATE | CREATE QUERY | CREATE TABLE - SQL | INSERT - SQL | MODIFY QUERY | SELECT - SQL