4D v14.3Variáveis |
||
|
4D v14.3
Variáveis
Variáveis
Dados em 4D são armazenados de duas maneiras fundamentalmente diferentes. Campos armazenam dados permanentemente no disco; variáveis armazenam dados temporariamente na memória. Quando você cria seu banco de dados 4D, você pode especificar os nomes e tipos de campos que você deseja usar. As variáveis são a mesma coisa, você também lhes atribui nomes e tipos diferentes. Os tipos de variáveis a seguir correspondem a cada um dos tipos de dados:
(*) Em modo Unicode, String e as variáveis tipo de texto são idênticos. No modo não-Unicode (modo de compatibilidade), uma String é uma seqüência fixa alfanumérica de até 255 caracteres. Você pode exibir variáveis (exceto Ponteiros e BLOB) na tela, inserir dados neles, e imprimi-los em relatórios. Nestes aspectos, variáveis agem exatamente como os campos e os mesmos controles internos estão disponíveis quando você criá-los:
As variáveis também podem servir para:
Você pode criar variáveis de simplesmente usá-las, você não precisa necessariamente defini-las como você faz com os campos. Por exemplo, se você quer uma variável que irá armazenar a data atual mais 30 dias, você escreve: MinhaData:=Current date+30 4D cria MinhaData e mantém a data que você precisa. A linha de código lê "MyDate obtém a data atual mais 30 dias." Você pode agora usar MinhaData sempre que você precisar em seu banco de dados. Por exemplo, você pode precisar armazenar a variável data em um campo do mesmo tipo: [MinhaTabela]MeuCampo:=MinhaData No entanto, é recomendado uma variável ser definida explicitamente como um certo tipo. Para obter mais informações sobre como digitar as variáveis de um banco de dados, consulte a seção Comandos do Compilador. Os dados podem ser colocados e copiados de variáveis. Colocar os dados em uma variável é o mesmo que atribuir os dados à variável, e é feito com o operador de atribuição (:=). O operador de atribuição também é usado para atribuir dados aos campos.
[Produtos]Tamanho:=MeuNumero Neste caso, [Produtos]Tamanho seria igual a 3. Este exemplo é bastante simples, mas ilustra o caminho fundamental no qual os dados são transferidos de um lugar para outro usando a linguagem. Importante: Tenha cuidado para não confundir o operador de atribuição (: =) com o operador de comparação igual (=). Atribuição e comparação são operações muito diferentes. Para mais informações sobre os operadores de comparação, consulte a seção Operadores. Você pode criar três tipos de variáveis: variáveis locais, variáveis processo, e variáveis interprocesso. A diferença entre os três tipos de variáveis é o seu alcance, ou os objetos aos quais eles estão disponíveis. Uma variável local é, como seu nome implica, local de um método acessível apenas dentro do método no qual ela foi criado e não acessível fora desse método. Sendo local de um método é formalmente referido como uma variável "de escopo local". Variáveis locais são usadas para restringir uma variável a fim de que ela funciona apenas dentro do método. Você pode querer usar uma variável local para:
O nome de uma variável local sempre começa com um cifrão ($) e pode conter até 31 caracteres. Se você digitar um nome mais longo, 4D o trunca para o tamanho adequado. Quando você está trabalhando em um banco de dados com muitos métodos e variáveis, muitas vezes você pode achar que precisa usar uma única variável dentro do método no qual você está trabalhando. Você pode criar e usar uma variável local do método, sem se preocupar se você tiver usado o mesmo nome de variável em outro lugar. Freqüentemente, em um banco de dados, pequenos pedaços de informação do usuário são necessários. O comando Request pode obter essa informação. Ele exibe uma caixa de diálogo com uma mensagem pedindo ao usuário uma resposta. Quando o usuário digita a resposta, o comando retorna as informações que o usuário inseriu. Você normalmente não precisa manter esta informação em seus métodos por muito tempo. Esta é uma forma típica para usar uma variável local. Aqui está um exemplo: $vsID:=Request("Digite o seu ID:") Uma variável de processo só está disponível dentro de um processo. Ela é acessível ao método de processo e qualquer outro método chamado de dentro do processo. A variável de processo não tem um prefixo antes do seu nome. Um nome de variável de processo pode conter até 31 caracteres. No modo interpretado, as variáveis são mantidas dinamicamente, elas são criados e apagadas da memória "on the fly". No modo Compilado, todos os processos que você criar (usuário processos) compartilham a mesma definição de variáveis de processo, mas cada processo tem uma instância diferente para cada variável. Por exemplo, a variável MinhaVariavel é uma variável no processo P_1 e outra no processo P_2. Um processo pode "peek e poke" variáveis de processo de outro processo usando os comandos GET PROCESS VARIABLE e SET PROCESS VARIABLE. É boa prática de programação para restringir o uso destes comandos para a situação para a qual foram adicionados a 4D:
Para obter mais informações, consulte a seção Processos e a descrição desses comandos. Variáveis Interprocesso estão disponíveis em todo o banco de dados e são compartilhadas por todos os processos. Elas são utilizados principalmente para compartilhar informações entre processos. O nome de uma variável interprocess sempre começa com os símbolos (<>) - um sinal de "menor" seguido por um sinal de "maior" seguido por 31 caracteres. Nota: Esta sintaxe pode ser usado tanto em Windows e Macintosh. Além disso, somente no Macintosh, você pode usar o diamante (Option-Shift-V no teclado americano). Em máquinas Cliente/Servidor, cada máquina (Máquinas Cliente e Máquinas Servidor) compartilham a mesma definição de variáveis interprocesso, mas cada máquina tem uma instância diferente para cada variável. No editor de formulário, nomear um objeto ativo - botão, botão de rádio, caixa de seleção, área de rolagem, barra de medição, e assim por diante - automaticamente cria uma variável com o mesmo nome. Por exemplo, se você criar um botão denominado MeuBotao, uma variável chamada MeuBotao também é criada. Note que este nome de variável não é a etiqueta para o botão, é o nome do botão. As variáveis de objeto de formulário lhe permitem controlar e monitorar os objetos. Por exemplo, quando um botão é clicado, a variável é definida como 1, em todas as outras vezes, ela é 0. A variável associada a um dial permite ser lida e permite alterar a configuração atual. Por exemplo, se você arrastar um dial a um novo cenário, o valor da variável muda para refletir a nova configuração. Da mesma forma, se um método altera o valor da variável, o contador é redesenhado para mostrar o novo valor. Para obter mais informações sobre variáveis e formulários, consulte o Manual de Referência 4D, bem como a seção Eventos de formulário. Você pode deixar que 4D crie variáveis associadas aos objetos de formulário (botões, variáveis editáveis, caixas de seleção, etc) de forma dinâmica e de acordo com suas necessidades. Para isso, basta deixar o campo "nome da variável" em branco na lista de propriedades para o objeto:
Nota: É definida uma variável dinâmica, selecione o valor Nenhum no menu "Tipo de variável" e não utilize código de inicialização, um erro de digitação será devolvido pelo compilador. No código 4D, variáveis dinâmicas podem ser acessadas usando um ponteiro obtido com o comando OBJECT Get pointer. Por exemplo: // atribui a hora 12:00:00 à variável para o objeto "hinicio" Há duas vantagens com esse mecanismo:
4D mantém uma série de variáveis chamadas de variáveis de sistema. Estas variáveis permitem-lhe controlar várias operações. Variáveis do sistema são as variáveis de processo, acessíveis apenas a partir de um processo. A variável de sistema mais importante é a variável de sistema OK. Como o próprio nome indica, lhe diz se está tudo OK em um processo em particular. O registro foi salvo? A operação de importação foi concluída? Será que o usuário clicou no botão OK? A variável de sistema OK é definida como 1 quando uma tarefa é concluída com êxito, e 0 quando não é. Para mais informações sobre variáveis de sistema, consulte a seção Variáveis de Sistema. |
PROPRIEDADES
Produto: 4D VER TAMBÉM
Arrays ARTICLE USAGE
Manual de linguagem 4D ( 4D v12.4) Inherited from :
Variáveis ( 4D v11 SQL Release 6) |