PDA

Ver la Versión Completa : Variable que inserta null


juggern
16-09-2020, 20:26:04
Buenas tardes,

Tengo el siguiente problema, a ver si me pueden orientar.

Tengo una select con campos que luego recorro usando un Fetch. En el Fetch inserto los datos que me devuelve en 2 variables que luego uso. El problema que tengo es que en una de las variables (varchar) no me inserta el dato, se queda a null.

No se porque puede ser, la consulta la he comprobado y me devuelve en ese campo una cadena. La cadena es corta , 7 caracteres y el varchar es de 50. Este procedimiento lo tengo funcionando en muchos sitios y funciona bien por lo que creo que puede ser más por alguna configuración de la tabla. No es problema de collation, lo he comprobado.

A alguien le ha pasado esto?

Muchas gracias

Al González
17-09-2020, 05:12:12
¿Puedes dar un poco más de información sobre los componentes y base de datos que estás usando, la consulta SQL correspondiente y el código Delphi que se ejecuta para esta operación? Gracias.

juggern
17-09-2020, 09:41:10
Buenos días,

Gracias por responder.

No uso ningún componente, es un procedimiento almacenado dentro de la base de datos de MySql.


Básicamente hago esto:


DECLARE Alias VARCHAR (50);

DECLARE datos CURSOR FOR SELECT Nombre,Apellido,Apodo FROM datospersonales;

Open datos;

FETCH datos INTO Name, FirstName, Alias;


Es la parte resumida de un procedimiento. Esto está así desde hace mucho y funciona perfectamente pero en este caso en concreto, la variable Alias, después de la asignación, sigue teniendo null.
Las otras dos variables si que inserta el valor, pero en esta no. He comprobado la consulta y si que devuelve datos en todos los campos, por ejemplo, 'GATO'. He mirado por si tenía algún caracter raro, espacios, no se... pero nada.

Gracias

juggern
17-09-2020, 12:03:13
Buenos días,

Sigo con las investigaciones y me estoy encontrando lo siguiente.

He modificado el procedimiento y puesto justo después del declare del cursor, el select que rellena el cursor él solo para ver los datos.

Hago la select del cursor fuera del procedimiento y veo que todos los datos son correctos, ejecuto el procedimiento y me muestra el resultado del select y ahí me sale el campo a null.

Es decir, si ejecuto la select fuera del procedimiento me muestra bien los datos, pero dentro del procedimiento me muestra ese campo a null.

No entiendo nada.

Un saludo