In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Gravar campo NULL em tabela MySQL...

Foro público de Xailer en español
Responder
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Gravar campo NULL em tabela MySQL...

Mensaje por Sommus »

Senhores,
Creio que há um pequeno bug no xailer em relação método UPDATE() do componente TSQLQuery, quando usado com o MySQL... Ou não estou usando corretamente...
Em alguns campos de algumas tabelas, preciso que grave NULO (NULL), mas, o método update() do componente TSQLQuery SEMPRE grava VAZIO (EM BRANCO)...
Para resolver o problema, antes de chamar o método update(), atribuo NIL ao campo. Ex: ::oSQLQuery:campo:=NIL
Porém, não acho que deveria ser assim, pois se não informei valor nenhum para gravar no campo, tem que gravar NULL...
Obrigado pela atenção,
Reginaldo
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Gravar campo NULL em tabela MySQL...

Mensaje por jfgimenez »

Reginaldo,
> Creio que há um pequeno bug no xailer em relação método
> UPDATE() do componente TSQLQuery, quando usado com o
> MySQL... Ou não estou usando corretamente...
>
> Em alguns campos de algumas tabelas, preciso que grave NULO
> (NULL), mas, o método update() do componente TSQLQuery
> SEMPRE grava VAZIO (EM BRANCO)...
>
> Para resolver o problema, antes de chamar o método
> update(), atribuo NIL ao campo. Ex: ::oSQLQuery:campo:=NIL
>
> Porém, não acho que deveria ser assim, pois se não
> informei valor nenhum para gravar no campo, tem que gravar
> NULL...
No, no es exactamente así­. Cuando no se especifica un valor para el
campo, Xailer no debe grabar nada, porque puede tener algún valor por
defecto (DEFAULT) indicado en la BD, y hay que respetarlo.
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Gravar campo NULL em tabela MySQL...

Mensaje por Sommus »

Caro José Gimenez,
é EXATAMENTE isso que NíƒO está acontecendo... esses campos tem valores DEFAULT definidos no banco de dados, mas, o xailer está gravando em branco ao invés do valor default...
Att.
Reginaldo
Sommus
Mensajes: 310
Registrado: Vie Jul 24, 2009 9:39 pm

Gravar campo NULL em tabela MySQL...

Mensaje por Sommus »

Caro José F. Gimenez,
Alguma solução para esse problema?
Obrigado pela atenção,
Reginaldo
"Jose F. Gimenez" <jfgimenezAM]"@wanadoo.es> escreveu na notí­cia da
mensagem:50ee8e9d$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Reginaldo,
>
>> Creio que há um pequeno bug no xailer em relação método
>> UPDATE() do componente TSQLQuery, quando usado com o
>> MySQL... Ou não estou usando corretamente...
>>
>> Em alguns campos de algumas tabelas, preciso que grave NULO
>> (NULL), mas, o método update() do componente TSQLQuery
>> SEMPRE grava VAZIO (EM BRANCO)...
>>
>> Para resolver o problema, antes de chamar o método
>> update(), atribuo NIL ao campo. Ex: ::oSQLQuery:campo:=NIL
>>
>> Porém, não acho que deveria ser assim, pois se não
>> informei valor nenhum para gravar no campo, tem que gravar
>> NULL...
>
> No, no es exactamente así­. Cuando no se especifica un valor para el campo,
> Xailer no debe grabar nada, porque puede tener algún valor por defecto
> (DEFAULT) indicado en la BD, y hay que respetarlo.
>
>
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
Sommus - Reginaldo
Mensajes: 44
Registrado: Jue Nov 28, 2013 1:54 pm

Gravar campo NULL em tabela MySQL...

Mensaje por Sommus - Reginaldo »

Alguma solução?
"Sommus - Reginaldo" escreveu na notí­cia da
mensagem:50ec688d$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Senhores,
Creio que há um pequeno bug no xailer em relação método
UPDATE() do componente TSQLQuery, quando usado com o
MySQL... Ou não estou usando corretamente...
Em alguns campos de algumas tabelas, preciso que grave NULO
(NULL), mas, o método update() do componente TSQLQuery
SEMPRE grava VAZIO (EM BRANCO)...
Para resolver o problema, antes de chamar o método
update(), atribuo NIL ao campo. Ex: ::oSQLQuery:campo:=NIL
Porém, não acho que deveria ser assim, pois se não
informei valor nenhum para gravar no campo, tem que gravar
NULL...
Obrigado pela atenção,
Reginaldo
Sommus - Reginaldo
Mensajes: 44
Registrado: Jue Nov 28, 2013 1:54 pm

Gravar campo NULL em tabela MySQL...

Mensaje por Sommus - Reginaldo »

Prezados desenvolvedores de Xailer,
Exemplo do problema:
TABELA:
CREATE TABLE IF NOT EXISTS clientes(
id integer AUTO_INCREMENT,
nome varchar(50) NOT NULL,
endereco varchar(100) NOT NULL,
telefone varchar(50),
numero_filhos integer,
valor_credito double NOT NULL DEFAULT 100,
ativo char NOT NULL DEFAULT '1',
CONSTRAINT cp_clientes PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
QUERY:
::oSQLQuery:cSelect:='SELECT * FROM clientes'
::oSQLQuery:lOpen:=.T.
NOVO REGISTRO: (Informando apenas os campos NOT NULL que não tem valor
DEFAULT)
::oSQLQuery:AddNew()
::oSQLQuery:nome:='REGINALDO'
::oSQLQuery:endereco:='AVENIDA BRASIL, 1500'
::oSQLQuery:Update()
Após o Update() o que foi gravado no banco:
id : 1 (AUTO INCREMENTO)
nome : 'REGINALDO'
endereco : 'AVENIDA BRASIL, 1500'
telefone : '' (Deveria ser NULL)
numero_filhos : 0 (Deveria ser NULL)
valor_credito : 0 (Deveria ser o valor DEFAULT 100)
ativo : '' (Deveria ser o valor DEFAULT '1')
Creio que isso é realmente um BUG, ou não?
Obrigado pela atenção,
Reginaldo
"Sommus - Reginaldo" escreveu na notí­cia da
mensagem:[email=5330878e@svctag-j7w3v3j....]5330878e@svctag-j7w3v3j....[/email]
Alguma solução?
"Sommus - Reginaldo" escreveu na notí­cia da
mensagem:50ec688d$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Senhores,
Creio que há um pequeno bug no xailer em relação método
UPDATE() do componente TSQLQuery, quando usado com o
MySQL... Ou não estou usando corretamente...
Em alguns campos de algumas tabelas, preciso que grave NULO
(NULL), mas, o método update() do componente TSQLQuery
SEMPRE grava VAZIO (EM BRANCO)...
Para resolver o problema, antes de chamar o método
update(), atribuo NIL ao campo. Ex: ::oSQLQuery:campo:=NIL
Porém, não acho que deveria ser assim, pois se não
informei valor nenhum para gravar no campo, tem que gravar
NULL...
Obrigado pela atenção,
Reginaldo
Responder