Um campo não insere no banco de dados (e o Scriptcase não dá nenhuma mens erro)

Um campo não insere no banco de dados (e o Scriptcase não dá nenhuma mens erro)

(mais abaixo tem o codigo de meu evento e o resultado dos Debug’s)

Tenho 2 tabelas
Tenho um campo SERVICO_REQUISITADO em 2 tabelas - banco de dados é Firebird , e o campo é Texto - BLOB SUB_TYPE 0 SEGMENT SIZE 80

Em um formulario , consigo incluir o campo SERVICO_REQUISITADO

Em outro formulario, não insere o conteudo do campo SERVICO_REQUISITADO - olho no banco de dados, ele insere o registro com os outros campos, mas sem o conteudo do campo OBS
E o SC não mostra nenhum mensagem de erro avisando que campo não foi inserido, o que é grave

Revisei e comparei as 2 aplicações e não achei o o motivo de em uma não estarei inserindo o campo

Ao depurar, percebi que ele faz um INSERT INTO (inclusive com o campo SERVICO_REQUISITADO), e depois ele faz um UPDATE setando o campo SERVICO_REQUISITADO - não entendi por que.

PELO QUE PERCEBI, COMPARANDO A APLICACAO QUE FUNCIONA E A QUE NAO FUNCIONA , ACHO QUE O PROBLEMA È NO UPDATE , POIS NA APLICACAO QUE FUNCIONA O UPDATE ESTÁ ASSIM:
(firebird): UPDATE PENDENCIA SET SERVICO_REQUISITADO=(?) WHERE CODPENDENCIA = 74364 [ (0=>‘0x0000000700000000’) ]

E NA QUE NAO FUNCIONA ESTÁ ASSIM ( E NÃO SEI ONDE ALTERO NA APLICACAO PARA ARRUMAR):
(firebird): UPDATE MELHORIA SET SERVICO_REQUISITADO=(?) WHERE CODMELHORIA = 36 and CODCLIENTE = 72560 and SOLICITANTE = ‘’ and TECNICO_RESPONSAVEL = 7 and SERVICO_REQUISITADO = 'teste 6 ’ and SERVICO = ‘Ativar SPF no servidor de emails e provedor’ [ (0=>‘0x0000000700000000’) ]


Resultado do Debug na tela que está com problema:

ONBEFOREINSERT

(firebird): select count(*) from MELHORIA where CODMELHORIA = 0 and CODCLIENTE = 72560 and SOLICITANTE = ‘’ and TECNICO_RESPONSAVEL = 7 and SERVICO_REQUISITADO = 'teste 6 ’ and SERVICO = ‘Ativar SPF no servidor de emails e provedor’

(firebird): INSERT INTO MELHORIA (CODMELHORIA, CODCLIENTE, DATA_HORA_PEDIDO, TECNICOSOLICITANTE, SOLICITANTE, TECNICO_RESPONSAVEL, SERVICO_REQUISITADO, MEIODECHAMADO, IMPACTO, PRIORIDADE, CODSTATUS, DATA_AGENDADO, HORA_AGENDADO, HORA_AGENDADO_FIM, CODOS, PRIVADO, VALORREAIS, DATA_HORA_LIMITE, DATA_HORA_OK_CLIENTE, DATA_HORA_CONCLUSAO, EMLABORATORIO, OUTROTECNICOAUTORIZADO, RECLAMACAOOUREINCIDENCIA, HORASPREVISTAS, NROBANCADA, HISTORICOSTATUS, PRIORIDADECALCULADA, TEMPOEXEC, EMAILSENVIAR, CODEQUIP, PROJETO, PERCENTCONCLUSO, SETOR, TIPO, AVISADOABERTURA, AVISADOCONCLUSA, NOTAQUALIDADESERVICO, NOTAQUALIDADETECNICO, NOTATEMPOEXECUCAOSERVICO, NOTACUMPRIMENTOPRAZOS, MELHORIASSUGERIDASPESQSATISF, TEMPOHORASLANCADO, AVISADOENTRADA, LOCAL, NOVOSTATUS, DEVEENVIAREMAIL, CODPROPOSTA, ANTIGONAOMOSTRAR, CLAS_TIPO, CLAS_ABRANG, CLAS_NIVEL, CLAS_LOCAL, SERVICO, LIGOUDENOVO, DIGITO_OS, NRODETRANSFERENCIAS, CONCLUSAFALTAHORAS, SOLICITACAO_ORIGINAL, PRIORIDADENOVA, DADOSPROJETO ) VALUES (gen_id(GEN_MELHORIAS, 1), 72560, ‘2018-06-17 23:54:37’, 69, ‘’, 7, ‘’, ‘’, 0, 0, 321, null, null, null, 0, ‘S’, 0, null, null, null, ‘’, ‘’, ‘’, 0, 0, ‘’, 0, ‘’, ‘’, 0, ‘’, 0, ‘’, ‘’, ‘’, ‘’, 0, 0, 0, 0, ‘’, 0, ‘’, ‘’, ‘’, ‘’, 0, ‘’, ‘’, ‘’, ‘’, ‘’, ‘Ativar SPF no servidor de emails e provedor’, ‘’, ‘’, 0, ‘’, ‘’, ‘’, ‘’ )

(firebird): select gen_id(GEN_MELHORIAS, 0) from MELHORIA

(firebird): UPDATE MELHORIA SET SERVICO_REQUISITADO=(?) WHERE CODMELHORIA = 36 and CODCLIENTE = 72560 and SOLICITANTE = ‘’ and TECNICO_RESPONSAVEL = 7 and SERVICO_REQUISITADO = 'teste 6 ’ and SERVICO = ‘Ativar SPF no servidor de emails e provedor’ [ (0=>‘0x0000000700000000’) ]

(firebird): INSERT INTO SC_LOG (inserted_date, username, application, creator, ip_user, action, description) VALUES (‘2018-06-17 23:54:37’, ‘admin’, ‘form_Melhorias’, ‘Scriptcase’, ‘127.0.0.1’, ‘insert’, ‘–> keys <-- codmelhoria_ : 36||codcliente_ : 72560||solicitante_ : ||tecnico_responsavel_ : 7||servico_requisitado_ : teste 6 ||servico_ : Ativar SPF no servidor de emails e provedor’)

(firebird): SELECT count(*) from MELHORIA

Nossa que bagunça.
Fala em formulário mas aqui tem macros de consulta. Uma explicação extensa (confesso não ter lido tudo)
Essa eu passo.

Desculpe, não tinha visto - realmente misturei 2 assuntos.

Arrumei o post acima

O post acima só está grande pois tem o resultado do Debug

Aguardo solução.

Provavelmente tem algo no seu código, pois o Formulário trata apenas uma tabela e nela ele faz o insert ao clicar em incluir e faz update ao clicar em alterar, nos campos que estão disponíveis no formulário.
O SC necessita de chave primária única, sempre sugeri campo inteiro, auto increment de nome ID para todas as tabelas.
O SC não mostrou erro porque não houve erro.

Haroldo,

Eu já uso campo chave primária única, autoincremento.

Nenhum dos eventos do formulário tem código escrito por mim.

Não sei como corrigir o problema de não estar gravando um dos campos.

Em que ponto que o SC gera o comando que mostra abaixo no Debug ?
(firebird): UPDATE MELHORIA SET SERVICO_REQUISITADO=(?) WHERE CODMELHORIA = 36 and CODCLIENTE = 72560 and SOLICITANTE = ‘’ and TECNICO_RESPONSAVEL = 7 and SERVICO_REQUISITADO = 'teste 6 ’ and SERVICO = ‘Ativar SPF no servidor de emails e provedor’ [ (0=>‘0x0000000700000000’) ]

Não sei como resolver.

O código UPDATE acima é gerado pelo SC

É algum parâmetro na aplicação, preciso ajuda para descobrir o que é. Se estou pedindo ajuda é porque não sei a resposta. Olhei nos manuais mas não descobri. Código do update é gerado pelo scriptcase.

Preciso ajuda para detectar onde está o problema.

Grato

Ola

Isso ja aconteceu comigo.

Teste executando o update fora do scriptcase e talvez detecta o problema.
[size=2][font=verdana]E NA QUE NAO FUNCIONA ESTÁ ASSIM ( E NÃO SEI ONDE ALTERO NA APLICACAO PARA ARRUMAR):[/font][/size]
[size=2]font=verdana: UPDATE MELHORIA SET SERVICO_REQUISITADO=(?) WHERE CODMELHORIA = 36 and CODCLIENTE = 72560 and SOLICITANTE = ‘’ and TECNICO_RESPONSAVEL = 7 and SERVICO_REQUISITADO = 'teste 6 ’ and SERVICO = ‘Ativar SPF no servidor de emails e provedor’ [ (0=>‘0x0000000700000000’) ][/font][/size]

No meu caso uso sqlserver e testo pelo SSMS.

Vc pode tambem tentar alterar diretamente no formulario para detectar o erro.