Desde a versão4Dv14R3,você pode atribuir ovalor do campoespecial "id_added_by_converter"que é adicionadoautomaticamentepor 4Dpara converterum banco de dadosde uma versão anteriorav11.Anteriormente,esse valorsó podeser atribuído por4D, forçandoos desenvolvedores a usarcomandosobsoletos, como_o_CREATE SUBRECORDparaadicionar novos registrosconvertidos emsubtabelas.
Com esta novaopção,você pode converter seubanco de dados antigousandosubtabelasde uma forma maisprogressiva:você pode manter ovínculo especial"relaçãosubtabela" eadicionar ou modificarregistros relacionadoscomo se fossempadrão.Quandotodos os métodostiverem sido atualizados, você pode substituira relação especial comuma normal, sem qualquer alteraçãoem seu código.Por exemplo, agora pode escrever:
CREATE RECORD([Empregados]) [Empregados]Last Name:="Jones" CREATE RECORD([Empregados_Filhos]) [Empregados_Filhos]Nome:="Natasha" [Empregados_Filhos]Birthday:=!12/24/2013! [Empregados_Filhos]id_added_by_converter:=4 //Não coincidem os tipos em versões anteriores SAVE RECORD([Empregados_Filhos]) SAVE RECORD([Empregados]
Este código funcionará tanto com as relações especiais quando com as regulares.
Em4D,os campos como atributoÚnico devem ser indexados.A partir de4Dv14R4,você não pode mais definircampos noeditor de estruturacomum atributo único,se eles não tiveremum índice.Emversõesanteriores, ainda era possível obteruma configuraçãodestetipo por razões demanutenção.
A partir de4Dv14R3,um novoícone é exibido paraas imagensque são salvasem um formato quenão pode ser representadona máquina.Aextensão do formatonecessário éescrita na parte inferiordoícone:
Este ícone é utilizadoautomaticamente, sempre queestas imagenssão exibidas.
Este ícone indica quea imagem nãopodeser exibida ouprocessada localmente, maspodem ser armazenadapara visualizaçãoem outra máquina.Este é o caso,por exemplo, paraimagens PDFem uma plataformaWindows ou em imagens baseadas em PICT em um 4D Serverde 64 bits em Mac OSX.
Nos Bancos de dados criadosem 4Dv15, os métodossão automaticamente salvosemUnicode.Emumbanco de dados convertido, você deve selecionaros métodosSalvaremUnicodeno diálogode"compatibilidade" das Propriedades dobanco de dados.
Em 4D v15, editor de métodos de 4D utiliza a linguagem "Inglês-US" como padrão internacional, independentemente da versão 4D ou das configurações locais de sistema
separadores decimais para números reais devem ser pontos (".") em todas as versões (e não vírgulas (",")),
constantes de data devem ser usadas com o formato ISO (!YYYY-MM-DD!)
nomes de comando e constantes devem ser em inglês (esta mudança apenas diz respeito ás versões francesas, pois esse já era o caso em outras linguagens).
Em aplicativos convertidos de versões anteriores, tenha cuidado quando usar fórmulas como EXECUTE FORMULA.
Esta configuração pode ser desativada usando a opção Use regional system settings da página Methods/Options da caixa de diálogos de Preferências de 4D:
Implementação: já que a preferência Use regional system settings é local ao computador, ela não é incluída em aplicativos fusionados.
Quando implementando aplicativos fusionados, há duas soluções quando usar configurações regionais.
Solução 1: apaga o diretório en.lproj que fica no primeiro nível da pasta Resources do aplicativo 4D Volume Desktop antes de construir o aplicativo fusionado final.
Solução 2: Edita o conteúdo do arquivo de preferênci8as de 4D v15 de cada máquina local e estabeleça a chave "use_localized_language" para "true". Código Exemplo é oferecido no apêndice. Após executar o código, lembre que você precisará reiniciar o aplicativo 4D para que a modificação seja efetiva.
Desde4Dv14,em Windows, a quando a tecla "separador decimal" doteclado numérico mostra um ponto [.], usando esta tecla produz um resultado diferente para um campo numérico e para um campo texto:
Desde 4Dv13:independentemente de se umcampo for numéricoouuma string,usandoa tecla [.] doteclado numéricoinseridoo separador decimaldefinidono nível do sistema(mas esta definiçãodeve ter sido feita ANTES de lançar4D;
Em4Dv14e 4Dv15:paracampos de tipoReal,usar a tecla "."doteclado numéricoinsere o separadordecimaldefinidono nível do sistema.Paraoutros tipos de campo, apertaresta teclairá simplesmente adicionar um ponto
A diferença é apenas perceptível em casos onde o separador decimal do sistema não for um ponto (como na maioria dos sistemas europeusEste é o caso por exemplo para sistemas Franceses onde o separador decimal (vírgula) não for um dos atribuídos ao teclado numérico (ponto).
Nota: Para saber mais sobre formato numérico em bancos de dados convertidos, veja também a opção de compatibilidade "Utilizar ponto e vírgula como marcadores de posição em formatos numéricos" na seção Página Compatibilidade.
O número de dígitos significativos usados para representar os decimais de números reais foi reduzido em 4D:
em versões anteriores, este número era de 15 dígitos
4D v14 em R3 e posteriores versões, agora é 13 dígitos.
Esta modificação trata apenas da conversão de números reais a texto, não do jeito que eles são representados internamente (armazenamento), ou operações aritméticas entre os números reais. A precisão dos números reais não é afetada. O objectivo é de limitar o número de casos em que as operações de números reais produzem resultados incorrectos. Por exemplo, isso permite obter resultados válidos nos seguintes casos:
Operação
Resulto em 4D antes de v14R3
Resulto em 4D a partir de 4D v14R3
String(3216.36 - 3214.89)
"1.47000000000025"
"1.47"
String(0.321636-0.321489)
"0.000146999999999953"
"0.000147"
A precisão dos números reais é limitada em sua natureza assim se sua aplicação 4D utiliza os primeiros 15 dígitos ou mais dos números reais, você pode precisar usar outros formatos de dados, como texto ou números inteiros longos (por números de série ou medições astronômicas). Note-se que em 4D, o grau de precisão por padrão dessas comparações podem ser modificados usando o comando SET REAL COMPARISON LEVEL.
Foi necessário modificar asrepresentações de ponteirono códigode 4D, devido àmudança demétodosparaUnicode.Ponteirosforam otimizadosesão compatíveis com recursosadicionais, tais comoelementos de arrays2D; pois éimportantepara manter a compatibilidadecom os componentescompilados anteriormenteeplug-ins,um novoponteiro de tipo de dados,gerido de forma transparentepor 4D, foiadicionado à linguagem. Dois comandosforam afetados:
RESOLVE POINTERagora retorna-1em vez de 0no quarto parâmetroparaponteiros paravariáveisou arraysunidimensionais