Jump to content
Fivewin Brasil

TDolphin campo NULL - Resolvido


aferra

Recommended Posts

Boa noite, estou com o seguinte problema.

inclui um novo registro, e existe um campo que é preenchido posteriormente, ai quando chamo para alterar o registro o campo em questão está como NULL e não consigo edita-lo no get pois uso obejto:campo da própria classe, o que devo fazer para salvar corretamente? ou como em modo de alteração ele ter o espaço correto.

type == VARCHAR(20)
NULLABLE == YES
charset == utf8
agradeço desde já
Link to comment
Share on other sites

Valeu Luiz, estou estudando ainda uma forma, mas me veio uma dúvida, o campo estando NULL é menor que com o espaço, correto? isso influencia em desempenho? se sim prefiro então fazer uma função para alteração do que salvar com o espaço "vazio".

agradeço desde já

Link to comment
Share on other sites

Alessandro acho que a unica coisa gravando espaços seria mesmo o tamanho do banco de dados, qdo ao desempenho acho que não deve influenciar

na hora de criar o banco vc pode utilizar assim

::csql+="sseucampo varchar(20) NOT NULL DEFAULT VARCHAR(20) "

ou

::csql+=",arq_morto varchar(1) NOT NULL DEFAULT 'N' "

tomar cuidado ao gravar um campo utilizando alltrim por exemplo, imagina que este campo tem o tamanho de 40, com o altrrim seu tamanho caiu para 25, ao editar este registro ele vai vir com o tamanho de 25, o usuario não ira conseguir usar as 40 posição.

Link to comment
Share on other sites

entendi, vlw Luiz, embora para estudar usei o dbf2sql do Kleyber, irei fazer a minha própria função para conversão e usarei sua lógica, obrigado por enquanto.

para os testes fiz desse jeito e funcionou muito bem e resolveu o problema.

//Ajustar os campos para edição no GET
FUNCTION DolphinField( oTab )
LOCAL aField
 
FOR EACH aField IN oTab:aStructure
 
IF VALTYPE( oTab:FieldGet( aField[ MYSQL_FS_NAME ] ) ) == "C"
IF EMPTY( oTab:FieldGet( aField[ MYSQL_FS_NAME ] ) )
HSet( oTab:hRow, "_" + LOWER( aField[ MYSQL_FS_NAME ] ), SPACE( oTab:FieldLen( aField[ MYSQL_FS_NAME ] ) ) )
ENDIF
ENDIF
 
NEXT
 
RETURN NIL
 
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...