GARANTIR DESCONTO

Fórum Valor nulo em campo data (Delphi) #488265

08/08/2014

0

Olé pessoal!

Estou precisando de uma ajuda.

Eu quero atribuir valor nulo ao campo do tipo data pelo Delphi.

Estou usando Firebird como banco de dados e o componente IBDataSet e já tentei o comando Database.TableDATA.clear; e não deu certo.

Agradeço quem puder me ajudar!
Marcos Roberto

Marcos Roberto

Responder

Post mais votado

13/08/2014

A data zero é 30/12/1899.
Tenta na trigger:

create trigger zerar_data for soc_socios
before insert or update
as
begin
  if (new.DATA_FILIACAO = '30.12.1899') then
  new.DATA_FILIACAO = null;
end

Renato Rubinho

Renato Rubinho
Responder

Gostei + 2

Mais Posts

12/08/2014

Marcos Roberto

Então eu testei os dois comandos mas tbm não da nada nem retorna erro.

E como Debugo??


Abraço.
Responder

Gostei + 0

13/08/2014

Renato Rubinho

Ponha um ponto de parada (F5) na linha:

Database.TableSoc_SociosDATA_FILIACAO.Clear;

Quando estiver em execução, ao parar nessa linha, pressione F7 para ver se entra nas funções da classe.

Última chance, rsrs:

Database.TableSoc_SociosDATA_FILIACAO.SetData(nil);

Se não funcionar, seta como zero quando for nulo e, nos comandos enviados ao banco, grava como nulo quando o valor for zero.

Abraççç
Responder

Gostei + 0

13/08/2014

Marcos Saffran

Tentei do seu jeito Gabriel mas retorna o seguinte erro: [DCC Error] UCadSocios.pas(594): E2129 Cannot assign to a read-only property.

O componente é o IBDATASET.


Bom dia Marcos,

verifique a propriedade "Read Only" da tabela e do campo, que deve estar como false.
Responder

Gostei + 0

13/08/2014

Marcos Roberto

To osso aqui viu Renato! rsrsrs

você sugeriu em fazer uma trigger né??
Então eu atribuo zero para o campo data, o que faz com que ele fique com a data de 30/12/1899, até ai blza... mas quando vou salvar ele me retorna esse erro:

conversion error from string "0" At trigger 'ZERAR_DATA' line:6, col:3


Criei minha trigger assim. (Será que fiz káka:??)

create trigger zerar_data for soc_socios
before insert or update
as
begin
if (new.DATA_FILIACAO = 0) then
new.DATA_FILIACAO = null;
end


Abraço!
Responder

Gostei + 0

13/08/2014

Marcos Roberto

Marcos Alfredo,
não existe a propriedade "Read Only" do componente IBDataSet , essa propriedade só aparece quando clico no campo, ai sim esta lá, e ela esta como False.



Teria que ter a propriedade "Read Only" no componente IBDataSet???

Abraço.
Responder

Gostei + 0

14/08/2014

Marcos Roberto

E ae Renato!

cara deu certo com a trigger... ueepaaa :)

Te agradeço de verdade, você tentou me ajudar mesmo... muito agradecido.


Cara se você me permitir tenho algumas duvidas que surgiram recorrente a este problema do tópico, e como você foi um cara prestativo e a pessoa que mais me deu alternativas , então sua opinião para mim é muito importante!! (se vc puder responder eu agradeço.)

Só vou terminar esse projeto que estou fazendo e pretendo mudar para outra versão do Delphi, você me sugeriria qual?

Você usa qual versão?

Fiz alguns testes com algumas versões e depois de instalar o Delphi mudou o posicionamento dos menus das janelas do Windows para a esquerda, tipo assim:

[img]http://arquivo.devmedia.com.br/forum/imagem/362394-20140814-160248.jpg[/img]

Isso ocorreu com você?


Renato te agradeço mais uma vez!
um grande Abraço.
Responder

Gostei + 0

15/08/2014

Renato Rubinho

Faz pouquíssimo tempo que passei a participar do fórum. Já aprendi muito caçando soluções na net e acho justo compartilhar também.

Sua instalação deve ter mudado algum registro do windows. Olha esse link que achei: DevMedia

Tenta gerar um projetinho com isso e veja se consegue inverter.

Pesquise por MFT_RIGHTJUSTIFY e MFT_LEFTJUSTIFY na net e ve se descobre como corrigir no windows.

Eu uso atualmente o Delphi 7. Já usei muito o 5 e tenho um projetinho no XE.

Sinceramente não sei quais os recursos e evolução das novas versões. Veja se já não existe algum tópico sobre isso que alguém que conheça as novas versões poderá te sugerir algo melhor que eu.

Abraççç,
Renato
Responder

Gostei + 0

18/08/2014

Marcos Roberto

Olá Renato!

Cara desculpa pela demora em responder pois estava viajando.

Deu certo sua dica para arrumar a direção do menu...

Simplesmente muito obrigado!

um grande abraço.
Responder

Gostei + 0

25/07/2020

Rogerio Bras

A data zero é 30/12/1899.
Tenta na trigger:

create trigger zerar_data for soc_socios
before insert or update
as
begin
  if (new.DATA_FILIACAO = '30.12.1899') then
  new.DATA_FILIACAO = null;
end


Nota 10. Funcionou 100% aqui comigo.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar