AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Administrar bases de datos / HFSQL / Funciones HFSQL
  • Gestión de los identificadores de automatic
  • Reutilización de los registros borrados o liberados
  • Versión del archivo de datos después de una adición
  • Añadiendo un Record en una consulta
  • Adición de registros en una vista
  • Navegación y adición de registros
  • Lentitud al añadir o eliminar una Record por primera vez en un archivo de datos HFSQL
  • Adición a una base de datos en formato Hyper File 5.5
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Agrega:
  • el registro que se encuentra en la memoria al archivo de datos (consulta o vista)
  • WINDEVWEBDEV - Código ServidorAndroidWidget Android el registro que se encuentra en una variable de tipo Record al archivo de datos (consulta o vista).
Los índices que corresponden a las claves utilizadas en la archivo de datos se actualizan automáticamente. Los posibles memos se agregan si la gestión de memos está habilitada (función HSetMemo).
Tras la llamada a HAdd:
  • Se propone una gestión automática de errores para varios tipos de errores: Error de duplicados, error de integridad, error de contraseña, error de conflicto de modificación, error de estado durante el conflicto de modificación y error de bloqueo, ... Para obtener más información, consulte Gestión asistida de errores HFSQL.
  • Si la gestión de duplicados está activada y el archivo de datos contiene una clave única, la función HErrorDuplicates devuelve True si el valor de la clave agregada no es único. El registro no se agrega.
  • El registro agregado se convierte en el registro actual. El identificador automático se completa automáticamente. Por Default, la iteración actual no se ve afectada.
Observación: Todo el registro en memoria se escribe en el archivo de datos con los valores que se le asignaron (o con el contenido del registro leído previamente). Para borrar los valores del registro en memoria, se debe utilizar la función HReset.
Ejemplo
// Add a record in a data file
// (record described through programming)
Customer.LastName = "Clark"
Customer.FirstName = "Vince"
Customer.Address = "Palm Lane"
Customer.City = "Philadelphia"
Customer.Zip = "19101"
Customer.Country = "USA"
HAdd(Customer)
WINDEVUniversal Windows 10 AppAndroidWidget Android iPhone/iPadIOS WidgetJavaHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosHyper File 5.5OLE DBConectores Nativos
// Add a record entered in a window
// in the Customer data file
ScreenToFile()
HAdd(Customer)
Sintaxis

Agregar el registro de la memoria a un archivo de datos, vista o consulta Ocultar los detalles

<Result> = HAdd([<Data file> [, <Options>]])
<Result>: booleano
  • True si se agregó el registro,
  • False si se produce un problema (error de integridad, duplicados, etc). La función HError permite identificar el error.
<Data file>: Cadena de caracteres opcional
Nombre del archivo de datos, vista o consulta utilizada.
Si no se especifica este nombre, la función HAdd utilizará el último archivo de datos utilizado por la última función HFSQL (que empieza por "H").
<Options>: Constante opcional
Permite configurar:
  • el efecto al agregar un registro en la navegación en curso.
  • el modo de cálculo del identificador automático. Para obtener más información, consulte Gestión del identificador automático al agregar un registro.
  • el modo de bloqueo del registro agregado.
    • PHP La gestión de las cerraduras no está disponible en PHP.
    • AndroidWidget Android La gestión de las cerraduras no está disponible en las bases de datos SQLite.
    • Java Acceso con JDBC: La gestión de las cerraduras no está disponible para las bases de datos a las que accede el JDBC.
  • la gestión de duplicados.
  • la gestión de la integridad.
Hyper File 5.5 Este parámetro no se tiene en cuenta.
hAffectBrowseEfecto al agregar registros en la navegación: Al agregar registros, se altera la navegación.
Por ejemplo, HReadNext utilizado después de HAdd posiciones en el Record encontrado después de la Record añadido.
La constante hAffectBrowse tiene prioridad sobre la constante hWriteDefault.
hCheckDuplicatesModo de gestión de duplicados: Verifica los duplicados en esta operación, incluso si la verificación de duplicados está desactivada (función HSetDuplicates).
Si se utilizan las constantes hIgnoreDuplicates y hCheckDuplicates al mismo tiempo, se produce un error WLanguage.
AndroidWidget Android PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hCheckIntegrityModo de gestión de la integridad: Verifica la integridad de la operación, incluso si la verificación automática de la integridad está desactivada (función HSetIntegrity).
Si se utilizan las constantes hIgnoreIntegrity y hCheckIntegrity al mismo tiempo, se produce un error WLanguage.
AndroidWidget Android PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hForceIdAutoModo de cálculo del identificador automático: El identificador automático no se calcula al agregar registros. El identificador corresponde a:
  • el valor asignado al elemento mediante programación (por ejemplo, CUSTOMERID = 7)
  • el valor predeterminado del identificador que se especificó en el editor de análisis (si el archivo de datos acaba de abrirse, sin que se haya leído ningún registro)
  • el valor del identificador en la memoria (valor del identificador del último registro leído en el archivo de datos).
Después de agregar el registro, se calculará el siguiente identificador automático calculado por el motor HFSQL, sin tener en cuenta el valor agregado con hForceIdAuto.
Si se utilizan las constantes hSetIdAuto y hForceIdAuto al mismo tiempo, se produce un error WLanguage.
hIgnoreDuplicatesModo de gestión de duplicados: No comprueba la existencia de duplicados para esta operación, incluso si la verificación automática de duplicados está activada (función HSetDuplicates).
Si se utilizan las constantes hIgnoreDuplicates y hCheckDuplicates al mismo tiempo, se produce un error WLanguage.
AndroidWidget Android PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hIgnoreIntegrityModo de gestión de la integridad: Ignora la verificación de la integridad en esta operación, incluso si la verificación automática de la integridad está activada (función HSetIntegrity).
Si se utilizan las constantes hIgnoreIntegrity y hCheckIntegrity al mismo tiempo, se produce un error WLanguage.
AndroidWidget Android PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hLockNo
(valor predeterminado)
Modo de bloqueo del registro agregado: Sin bloqeuo: el registro agregado no se bloqueará.
AndroidWidget Android PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hLockReadWriteModo de bloqueo del registro agregado: Bloqueo de lectura/escritura: se aplicará un bloqueo de lectura y escritura en el registro agregado . Este registro no puede ser leído ni modificado por otras aplicaciones. Solo la aplicación actual puede modificarlo, leerlo o desbloquearlo.

Esta constante solo está disponible para HFSQL Client/Server y Conectores Nativos.
AndroidWidget Android PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hLockWriteModo de bloqueo del registro agregado: Bloqueo de escritura: el registro agregado se bloqueará contra escritura. Otras aplicaciones pueden leer el registro pero no modificarlo. Solo la aplicación en curso podrá modificarlo o desbloquearlo.

Esta constante solo está disponible para HFSQL Client/Server y Conectores Nativos.
AndroidWidget Android PHP Esta constante no está disponible.
Java Acceso con JDBC: Esta constante no está disponible.
hSetIdAutoModo de cálculo del identificador automático: El identificador automático no se calcula al agregar registros: el valor del identificador será el que se almacena al agregar un registro.
El siguiente valor del identificador calculado por el motor HFSQL corresponderá al mayor valor del identificador en el archivo +1.
Si se utilizan las constantes hSetIdAuto y hForceIdAuto al mismo tiempo, se produce un error WLanguage.
hWriteDefault
(valor predeterminado)
Efecto al agregar registros en la navegación: Al agregar registros, no se altera la navegación.
Por ejemplo, HReadNext utilizado después de HAdd posiciones en el Record encontrado después de la actual Record antes de la adición.
La constante hAffectBrowse tiene prioridad sobre la constante hWriteDefault.
WINDEVWEBDEV - Código ServidorAndroidWidget Android

Agregar el contenido de una variable de tipo Record a un archivo de datos, vista o consulta Ocultar los detalles

<Result> = HAdd(<Data file> , <Record> [, <Options>])
<Result>: booleano
  • True si se agregó el registro,
  • False si se produce un problema (error de integridad, duplicados, etc). La función HError permite identificar el error.
<Data file>: Cadena de caracteres
Nombre del archivo de datos, vista o consulta utilizada.
<Record>: Variable de tipo Record
Nombre de la variable de tipo Record que contiene los valores de los elementos.
<Options>: Constante opcional
Permite configurar:
  • el efecto al agregar un registro en la navegación en curso.
  • el modo de cálculo del identificador automático. Para obtener más información, consulte Gestión del identificador automático al agregar un registro.
  • el modo de bloqueo del registro agregado.
  • la gestión de duplicados.
  • la gestión de la integridad.
Hyper File 5.5 Este parámetro no se tiene en cuenta.
hAffectBrowseEfecto al agregar registros en la navegación: Al agregar registros, se altera la navegación.
Por ejemplo, HReadNext utilizado después de HAdd posiciones en el Record encontrado después de la Record añadido.
La constante hAffectBrowse tiene prioridad sobre la constante hWriteDefault.
hCheckDuplicatesModo de gestión de duplicados: Verifica los duplicados en esta operación, incluso si la verificación de duplicados está desactivada (función HSetDuplicates).
Si las constantes hIgnoreDuplicates y hCheckDuplicates se utilizan al mismo tiempo, se produce un error WLanguage.
AndroidWidget Android Esta constante no está disponible.
hCheckIntegrityModo de gestión de la integridad: Verifica la integridad de la operación, incluso si la verificación automática de la integridad está desactivada (función HSetIntegrity).
Si las constantes hIgnoreIntegrity y hCheckIntegrity se utilizan al mismo tiempo, se produce un error WLanguage.
AndroidWidget Android Esta constante no está disponible.
hFalsifyTimestampGestión de los elementos de la marca de tiempo: Por defecto, un elemento Timestamp contiene la fecha y la hora de creación/modificación de la Record. Esta fecha/hora se calcula automáticamente.
Esta constante impide que se actualice el elemento Timestamp: se mantendrá el último valor de la Record.
hForceIdAutoModo de cálculo del identificador automático: El identificador automático no se calcula al agregar registros. El identificador corresponde a:
  • el valor asignado al elemento mediante programación (por ejemplo, CUSTOMERID = 7)
  • el valor predeterminado del identificador que se especificó en el editor de análisis (si el archivo de datos acaba de abrirse, sin que se haya leído ningún registro)
  • el valor del identificador en la memoria (valor del identificador del último registro leído en el archivo de datos).
Después de agregar el registro, se calculará el siguiente identificador automático calculado por el motor HFSQL, sin tener en cuenta el valor agregado con hForceIdAuto.
Si se utilizan las constantes hSetIdAuto y hForceIdAuto al mismo tiempo, se produce un error WLanguage.
hIgnoreDuplicatesModo de gestión de duplicados: No comprueba la existencia de duplicados para esta operación, incluso si la verificación automática de duplicados está activada (función HSetDuplicates).
Si las constantes hIgnoreDuplicates y hCheckDuplicates se utilizan al mismo tiempo, se produce un error WLanguage.
AndroidWidget Android Esta constante no está disponible.
hIgnoreIntegrityModo de gestión de la integridad: Ignora la verificación de la integridad en esta operación, incluso si la verificación automática de la integridad está activada (función HSetIntegrity).
Si las constantes hIgnoreIntegrity y hCheckIntegrity se utilizan al mismo tiempo, se produce un error WLanguage.
AndroidWidget Android Esta constante no está disponible.
hLockNo
(valor predeterminado)
Modo de bloqueo del registro agregado: Sin bloqeuo: el registro agregado no se bloqueará.
AndroidWidget Android Esta constante no está disponible.
hLockReadWriteModo de bloqueo del registro agregado: Bloqueo de lectura/escritura: se aplicará un bloqueo de lectura y escritura en el registro agregado . Este registro no puede ser leído ni modificado por otras aplicaciones. Solo la aplicación actual puede modificarlo, leerlo o desbloquearlo.

Esta constante solo está disponible para HFSQL Client/Server y Conectores Nativos.
AndroidWidget Android Esta constante no está disponible.
hLockWriteModo de bloqueo del registro agregado: Bloqueo de escritura: el registro agregado se bloqueará contra escritura. Otras aplicaciones pueden leer el registro pero no modificarlo. Solo la aplicación en curso podrá modificarlo o desbloquearlo.

Esta constante solo está disponible para HFSQL Client/Server y Conectores Nativos.
AndroidWidget Android Esta constante no está disponible.
hSetIdAutoModo de cálculo del identificador automático: El identificador automático no se calcula al agregar registros: el valor del identificador será el que se almacena al agregar un registro.
El siguiente valor del identificador calculado por el motor HFSQL corresponderá al mayor valor del identificador en el archivo +1.
Si se utilizan las constantes hSetIdAuto y hForceIdAuto al mismo tiempo, se produce un error WLanguage.
hWriteDefault
(valor predeterminado)
Efecto al agregar registros en la navegación: Al agregar registros, no se altera la navegación.
Por ejemplo, HReadNext utilizado después de HAdd posiciones en el Record encontrado después de la actual Record antes de la adición.
La constante hAffectBrowse tiene prioridad sobre la constante hWriteDefault.
Observaciones

Gestión de los identificadores de automatic

Por defecto, el elemento "identificador automático" se actualiza automáticamente cuando se añade un Record en un archivo de datos. No hay necesidad de leer el Record de nuevo para averiguar el valor del identificador automatic. Simplemente use la siguiente sintaxis: <Nombre del archivo>.<Nombre del elemento identificador de automatic>.
Las constantes hForceIdAuto y hSetIdAuto permiten modificar el comportamiento predeterminado del identificador automático.
Para más detalles sobre los identificadores de automatic para los nuevos registros, véase Gestión del identificador automático al agregar un registro.
AndroidWidget Android JavaPHPOLE DBConectores Nativos Caso especial
  • Si la base de datos genera un identificador automatic, el motor HFSQL mantiene este valor. Si se especifica la constante hForceIDAuto o hSetIDAuto, el motor HFSQL sustituye el valor generado por el valor deseado.
    Observación: la constante hForceIdAuto equivale a hSetIdAuto: el identificador automatic calculado por el motor HFSQL durante la próxima adición será único en el archivo de datos.
  • Si la base de datos no genera ningún identificador de automatic, el motor HFSQL genera el valor y lo asigna al identificador automatic.
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPadIOS WidgetJavaLenguaje ExternoPHPAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosHyper File 5.5

Reutilización de los registros borrados o liberados

Cuando se añade un nuevo Record, el motor HFSQL optimiza el relleno del archivo de datos. El espacio correspondiente a las Record s borradas o liberadas se utiliza primero cuando se añade una nueva Record.
Los registros cruzados no se reutilizan.
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPadIOS WidgetJavaLenguaje ExternoPHPAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenadosHyper File 5.5

Versión del archivo de datos después de una adición

Si el Record fue agregado a el archivo de datos (sin error de duplicación y sin error de integridad), el número de versión del archivo de datos es modificado. Para get el número de versión, utilice HVersion.

Añadiendo un Record en una consulta

Se puede añadir una Record a una consulta:
  • en el resultado de la consulta.
  • en los archivos de datos tratados por la consulta (hModifyFile constante utilizada en HExecuteQuery o HExecuteSQLQuery). En este caso, la constante hWithFilter se selecciona automáticamente.
Independientemente del modo de ejecución de la consulta (con o sin la constante hWithFilter), solo es posible agregar registros a una consulta de archivo único. Las posiciones calculadas especificadas durante la suma se ignoran. Se calculan automáticamente.
Atención:
  • No se permite ninguna adición en una consulta que utilice grupos o agregados.
  • La gestión de la integridad y de los duplicados no se realiza durante las operaciones en las consultas multiarchivo.: se recomienda utilizar las transacciones para evitar cualquier problema.
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppiPhone/iPadIOS WidgetLenguaje ExternoAjaxHFSQL ClassicHFSQL Client/ServerProcedimientos almacenados

Adición de registros en una vista

Tiene la posibilidad de añadir registros en una vista creada sobre archivos de datos en formato HFSQL Classic. Estos registros se añaden sólo en la memoria. Para añadirlos en el archivo de datos relacionado a la vista (vista simple, por ejemplo), debe utilizar HViewToFile.

Navegación y adición de registros

Es posible configurar el efecto de agregar registros al navegar por un archivo de datos (constantes hWriteDefault y hAffectBrowse). El comportamiento de las versiones anteriores se puede mantener con la constante hAffectBrowse.
JavaPHPOLE DBConectores Nativos Casos especiales
Si se añade el Record durante una búsqueda, será Visible sólo en la búsqueda actual.. Si se han definido otras operaciones de navegación en esta base de datos, el nuevo Record sólo será Visible una vez que estas operaciones de navegación se hayan reiniciado.

Lentitud al añadir o eliminar una Record por primera vez en un archivo de datos HFSQL

Acceder por primera vez a un Record en un archivo de datos HFSQL puede llevar mucho tiempo. Para solucionar este problema:
  • Desactive el antivirus para los archivos.FIC,.NDX,.MMO y.REP.
  • Desactive la opción "Restaurar el sistema" en Windows XP.
WINDEVWEBDEV - Código ServidorLenguaje ExternoAjaxProcedimientos almacenadosHyper File 5.5

Adición a una base de datos en formato Hyper File 5.5

Si utiliza HAdd con una base de datos Hyper File 5.5:
  • Las opciones de adición (<Opciones>) se ignoran.
  • Los elementos TEXT se rellenan automáticamente con caracteres de espacio.
  • HAdd no puede utilizarse en una vista creada a partir de archivos de datos de Hyper File 5.5.
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd300hf.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Exemplo de Transação Atômica
Exemplo básico:

Erro is Int = 0

Id is 8-byte Int = 0

TransactionStart(“tabela”, “tabelaitens”)

Tabela.campo = valor

If hadd(Tabela) = true
Id = tabela.Pai_ID
Info(“gravou pai ”)

TabelaItens.Pai_ID = ID
TabelaItens.Produto = valor

If hadd(tabelaItens) = true
Info(“gravou um item”)
Else
Erro++
End

Else

Erro++

End

If erro = 0
TransactionEnd()
Else
TransactionCancel()
End
Boller
23 02 2023
Exemplo com Exception
HtransactionStart(Tablax,, tablay)
When Excepton in
Tablax.Campo = 1
If hadd()
End
HtransactionEnd()
DO
HtransactionCancel()
END
Boller
23 02 2023
Exemplo
// Add a record in a data file
Customer.LastName = "Clark"
Customer.FirstName = "Vince"
Customer.Address = "Palm Lane"
Customer.City = "Philadelphia"
Customer.Zip = "19101"
Customer.Country = "USA"
IF HAdd(Customer) = true
info("Gravou")
else
info(Errorinfo(),Herrorinfo())
end

AGORA SE QUER ECONOMIZAR LINHAS DE CODIGO FAÇA ASSIM:

// in the Customer data file
ScreenToFile()
IF HAdd(Customer) = true
info("Gravou")
else
info(Errorinfo(),Herrorinfo())
end
Boller
18 01 2023

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local