TopConn - Error - field value size is not 8 - on SetField - Field: <f> Table: <t> Value: <x>
Esta ocorrência é reproduzida quando da tentativa de atualização de um campo do tipo "D" (data) com um conteúdo do tipo C (Caractere), através da função FieldPut(), quando a string especificada com a data não está no formato ANSI (AAAAMMDD), em uma tabela aberta com a RDD TOPCONN.
A função FieldPut() permite a atualização de um determinado campo de uma tabela a partir da posição do campo na estrutura. Por compatibilidade, é possível especificar um conteúdo do tipo "C" (caractere) para um campo do tipo "D" (data) usando a função FieldPut(). Porém, neste caso, a string obrigatoriamente deve conter uma data no formato AAAAMMDD, com 8 bytes. Para especificar uma data vazia, é possível especificar uma string com 8 espaços em branco.
Caso a string informada não contenha 8 bytes, a aplicação AdvPL é interrompida com a ocorrência de erro acima, informando o campo a ser atualizado, a tabela e o conteúdo inválido que seria utilizado para a atualização. Vide exemplo do registro desta ocorrência abaixo:
Importante |
---|
Este comportamento de tratamento automático foi mantido por compatibilidade e está sujeito a descontinuidade em versões futuras. A função FieldPut() deve passar um argumento do mesmo tipo de campo a ser atualizado na base de dados. |
/*------------------------------------------------------- ERRO THREAD ([-167453792], WBESCONSTRUCAO0182, THIS) 23/02/2011 13:09:53Stack :TopConn - Error - field value size is not 8 - on SetField - Field: E2_DATASUS Table: SE2010 Value: in file ./lib/top.cpp at line 743 on AXINCLUIAUTO(MATXFUNB.PRX) 03/01/2011 17:45:59 line : 4609
Normalmente, uma ocorrência desta natureza é reproduzida quando o programa erroneamente está atribuindo o valor de uma variável de memória a outro campo da base de dados. O código-fonte AdvPL deve ser verificado para certificar-se que o conteúdo da variável em uso e/ou argumento da função FieldPut() seja do mesmo tipo do dado suportado pelo campo criado na tabela.