4D v16.3Execute on server |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Execute on server
Execute on server
O comando Execute on server inicia um novo processo na máquina servidor (quando se chama em Cliente/Servidor) ou na mesma máquina (se é chamado em monousuário) e devolve o número deste processo. Utilize Execute on server para iniciar um procedimento armazenado. Para maior informação sobre procedimentos armazenados, consulte a seção Stored Procedures no manual de referência de 4D Server. Se chamado Execute on server em uma máquina cliente, o comando devolve um número de processo negativo. Se chamada Execute on server na máquina servidor, Execute on server devolve um número de processo positivo. Note que chamar New process na máquina servidor faz o mesmo que chamar Execute on server. Se o processo não foi possível criar (por exemplo, se não há suficiente memória), Execute on server devolve (0) e é gerado um erro. Pode interceptar este erro utilizando um método de gestão de erros instalado pelo comando ON ERR CALL. Em proced, passe o nome do método de processo para o novo processo. Uma vez 4D seja definido o contexto para o novo processo, começa a execução deste método, o qual é convertido no método de processo. O parâmetro pilha permite indicar a quantidade de memória atribuída para a pilha do processo. É o espaço em memória utilizada para "empilhar" chamadas de método, as variáveis locais, parâmetros nas sub-rotinas e registros empilhados.
Nota: A pilha não é o total de memória para o processo. Processos compartilham memória para registros, variáveis entre processos, e assim por diante. Um processo também usa memória extra para armazenar suas variáveis de processo. A pilha contém vários itens de informações internas 4D; a quantidade de informação guardada na pilha depende do número de método aninhada chama o processo empregará, o número de formularios que irão abrir antes de fechar os e o número e tamanho das variáveis locais utilizadas em cada chamada de método aninhada. O nome do novo processo é passado em nome. Em monousuário, este nome aparece na lista de processos ambiente de Design, e será devolvido pelo comandoPROCESS PROPERTIES quando aplicada a este novo processo. Em Cliente / Servidor, esse nome aparece em azul na lista de procedimentos armazenados da janela principal de 4D Server. Você pode omitir este parâmetro; se isso acontecer, o nome do processo é uma string vazia. Pode passar parâmetros ao método de processo. Pode passar parâmetros da mesma forma como os passaria a uma sub rotina. No entanto, há uma restrição, não pode passar expressões de tipo ponteiro. Igualmente, lembre que os arrays não podem ser passados como parâmetros a um método. Uma vez comece a execução no contexto do novo processo, o método de processo recebe os valores dos parâmetros em $1, $2, etc. Nota: Se passar parâmetros ao método de processo, deve passar o parâmetro nome; neste caso não se pode omitir. Se passar um objeto 4D (C_OBJECT) como param o valor de retorno, a forma JSON se utiliza em UTF-8 para o servidor. Se o objeto [#cmd id="1216"/] contém ponteiros, se enviam seus valores não referenciados, e não os ponteiros mesmos. Se passado este último parâmetro lhe pede a 4D verificar primeiro se está executando um processo com o mesmo nome que passou em nome. Se é assim, 4D não inicia um novo processo e devolve o número do processo com este nome. O exemplo abaixo mostra como a importação de dados pode ser acelerada de maneira dramática em Cliente/Servidor. O método Importacion Clasica listado abaixo permite medir quanto tempo leva uma importação de registros utilizando o comando IMPORT TEXT no lado Cliente
`Método de proyecto Importacion Clasica Ao importar dados de maneira clássica, 4D Client analisa o arquivo ASCII, em seguida, para cada registro, cria um novo registro, preenche os campos com os dados importados e envia o registro para o servidor para que ele possa ser adicionado à unidade básica. Portanto, há muitas solicitações circulando pela rede. Uma forma de otimizar a operação é usar um procedimento armazenado para fazer o trabalho localmente na máquina do servidor. A máquina cliente carrega o documento em um BLOB, inicia um procedimento armazenado passando o BLOB como parâmetro. O procedimento armazenado coloca o BLOB em um documento no disco da máquina do servidor, depois importa o documento localmente. Portanto, a importação de dados ocorre localmente, a uma velocidade comparável à de uma versão independente de 4D, porque a maioria dos pedidos que circulam na rede foram eliminados. Este é o método de projeto CLIENTE IMPORTAR. Executado no computador cliente, inicia a execução do procedimento armazenado SERVIDOR IMPORTAR, listados abaixo: ` Método de projeto CLIENTE IMPORTAR Abaixo o método de projeto SERVIDOR IMPORTAR executado como procedimento armazenado: ` Método de projeto SERVIDOR IMPORTAR <code class="rte4d_cod">A operação terminou spErrCode:=0 ` Espere a que a maquina cliente receba os resultados Repeat DELAY PROCESS(Current process;1) Until (spErrCode>0) Quando estes dois métodos de projeto tenham sido implementados em seu banco de dados, pode realizar uma impotação baseada em um procedimento armazenado, escrevendo por exemplo CLIENTE IMPORTAR (->[Tabla1];"Import")
Com algumas provas comparativas, pode comprovar que com este tipo de método, a importação dos registros pode ser 60 vezes mais rápida que uma importação clássica.
Ver também
|
PROPRIEDADES
Produto: 4D
HISTÓRIA
Modificado: 4D 2004.3 ARTICLE USAGE
Manual de linguagem 4D ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||