Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Firedac Parametro para funcion sql y Actualizacion (https://www.clubdelphi.com/foros/showthread.php?t=94225)

juniorSoft 09-10-2019 13:44:43

Firedac Parametro para funcion sql y Actualizacion
 
Hola de nuevo amigos,

Estoy intentando actualizar un dataset Firedac con la version de Delphi 10.3 y sql server 2014, la consulta se realiza exitosamente pero al momento de aplicar los cambios con applyUpdate sale un error. La consulta es parecida a lo siguiente:

Código SQL [-]
select idUsuario, otroscampos...., convert(varchar(500), DECRYPTBYPASSPHRASE(:PV, usuario))as usuario from dbo.usuarios
where idUsuario =:idUsuario

los parametros están definidos correctamente con su tipo y el tipo de dato que es, en el caso de :PV es de tipo ftString, y el campo usuario en su propiedad ProviderFlags tiene en falso todos sus miembros, no esta como requerido y no veo nada que pueda que hacer que el parametro :PV al momento de actualizar lo vea como un campo

el error que esta lanzando es el siguiente:

FDQuery: Field 'PV' no found.

Saludos Cordiales,

Casimiro Notevi 09-10-2019 14:42:31

Cita:

Empezado por juniorSoft (Mensaje 533891)
los parametros están definidos correctamente con su tipo y el tipo de dato que es

Estarán, pero si no lo vemos...

movorack 09-10-2019 19:15:10

Hola, parece muy básico pero te recomiendo que verifiques la consulta. Que los campos que ahí solicitas existan en la tabla o alias

juniorSoft 10-10-2019 14:16:48

Hola amigos,

Disculpas por no haber detallado bien el error.

Cita:

Hola, parece muy básico pero te recomiendo que verifiques la consulta. Que los campos que ahí solicitas existan en la tabla o alias
La consulta funciona correctamente tanto desde el editor como al darle activar el dataset. Al dataset se le puede dar append pero al hacer applyUpdate
al FDShemaAdapter ocurre el error y solo ocurre cuando se le incluye dicho parámetro para ver el usuario.

En este caso :PV es un parámetro tipo cadena que utilizara la función para mostrar el usuario, si le paso la cadena directamente todo funciona correctamente pero al querer colocar el parámetro es que ocurre el error.

El usuario lo utilizo en los documentos principales del sistema, compras, ventas etc. y todo ello funciona bien a excepcion de querer incluir que la consulta devuelva el usuario desencriptado utilizando el parámetro :PV La configuración para actualizar esta utilizando FDschemaAdapter y un FDUpdateSQL, el applyupdate se realiza al FDShemaAdapter y quien se encarga de actualizar es el FDUpdateSql que actualiza una sola tabla de la base de datos ya que los demas campos solo son informativos por lo cual están marcados en su propiedad ProviderFlags (PfInUpdate = False, PfInWhere = False, Pfinkey = False PfHidden = False) su propiedad Required = False

juniorSoft 10-10-2019 15:15:27

Ok, ya di con el error,

El parámetro lo tenia definido como ftString, lo cambie a ftWideString y ya todo funciona Correctamente :)

Por si alguno le sucede este error, solo debe cambiar el parámetro a ftWideString

Gracias amigos por mantener este foro activo.

Casimiro Notevi 10-10-2019 15:45:10

Por eso insistimos en que hay que mostrar el código, es totalmente imposible ayudarte si no lo haces.

juniorSoft 10-10-2019 16:46:12

1 Archivos Adjunto(s)
Hola Casimiro Notevi lo que sucede a veces es que al tener tantas cosas envueltas en el sistema solo me enfoque el error especifico que lanzaba detallando solo la configuración puntual y aveces más que código son configuraciones de propiedades y tipos de datos lo que puede ocasionar cualquier error.

De todas formas adjunto en un archivo comprimido las imágenes de la consulta y la configuración del campo usuario.


La franja horaria es GMT +2. Ahora son las 22:30:43.

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