PDA

View Full Version : Variável String



Renato.Antonacci
18-Jul-2022, 01:14 PM
Boa tarde.

Fiquei bastante confuso agora. Nunca tive problemas com declaração de Variáveis no Dataflex, e se não me engano já a algumas versões que o Dataflex aloca dinamicamente o tamanho de variáveis strings locais até o máximo de 64 kb (que pode ser ultrapassado pelo Argument_Size).

Porem no Dataflex 19.1.58, estou enfrentando um problema como demonstrado no exemplo abaixo. Variável String Local, esta com limite máximo de 255 caracteres.

Onde posso estar errando em alguma coisa? Efetuei o teste dentro do Projeto "Order" para certificar que não era algum problema em meu ambiente, e o resultado é sempre o mesmo.

Alguém sabe se isso mudou?

EDIT1: Descobri. Tinha me esquecido do limite do editor do Studio. Então é o editor que esta truncando, e não a variável string.
EDIT2: Não deveria dar erro de compilação?? :confused:





Use Windows.pkg


Deferred_View Activate_oViewTeste for ;
Object oViewTeste is a dbView
Set Border_Style to Border_Thick
Set Size to 299 469
Set Location to 0 0
Set Maximize_Icon to True
Set Label to "View Teste"


Object oButton1 is a Button
Set Location to 10 10
Set Label to 'Teste'

// fires when the button is clicked
Procedure OnClick

//Set_Argument_Size 4096


{Total de 260 Caracteres
123456789A123456789B123456789C123456789D123456789E 123456789F123456789G123456789H123456789I123456789J 123456789K123456789L123456789M123456789N123456789O 123456789P123456789Q123456789R123456789S123456789T 123456789U123456789V123456789X123456789Y123456789Z 123456789
}

String sTesteRCA
Move ("123456789A123456789B123456789C123456789D123456789E 123456789F123456789G123456789H123456789I123456789J 123456789K123456789L123456789M123456789N123456789O 123456789P123456789Q123456789R123456789S123456789T 123456789U123456789V123456789X123456789Y123456789Z 123456789") to sTesteRCA
Send Info_Box (sTesteRCA*"\n\nTamanho:"-String(Length(sTesteRCA))) ""
End_Procedure

End_Object


Cd_End_Object




15532

Samuel Pizarro
18-Jul-2022, 06:55 PM
Nao achei referencia sobre essa limitacao.

sobre o erro, tb concordo q deveria ter erro.
mas encontrei isso, so que pra strings globais

https://docs.dataaccess.com/dataflexhelp/#t=mergedProjects%2FLanguageReference%2FString_Com mand.htm&rhsearch=String%20token&rhhlterm=String%20token&rhsyns=%20

vai saber se o mesmo nao se aplica pra strings locais?!

Renato.Antonacci
19-Jul-2022, 05:35 AM
Bom dia Samuel.

Essa parte sobre as variáveis locais, também tinha lido sobre ela, inclusive coloquei até um nome de variável diferente para poder testar se não estava declarado como global em alguma parte do sistema.

Com relação a limitação do Studio, ela é bastante antiga, só que me confundi nesse sentido. Esta documentado nas especificações (https://docs.dataaccess.com/dataflexhelp/mergedProjects/DevelopmentGuide/dataflex_specifications.htm) conforme trecho destacado em anexo. O detalhe, é que realmente não iria acusar erro na compilação, pois aceita até 4096 caracteres na linha, mas tem que ser divido em blocos de 255 por virgulas.

Mas deu certo, obrigado pela atenção de sempre.

15533

Samuel Pizarro
19-Jul-2022, 07:15 AM
Eh. Apesar de ter documentado q so supprta 255 por linha e 4096 por comando, ele nao fala nada sobre erro ou se o comando sera truncado.

na minha opiniao eu tb concordo q deveria ter erro de compilação

Salvadori
20-Jul-2022, 07:34 AM
já tropeçei nisso também, tive problema com o 'Append" que truncava minha linha muito antes que a versão 19 fazia, não tenho muito a agregar de informação ao tópico, hoje por padrão e para evitar problemas acabo quebrando em várias linhas e fim.

se evoluir no entendimento, volta aqui e conta para nós por favor..
abraços.

Edgard
22-Jul-2022, 08:26 AM
+1 Concordo !