Professional Documents
Culture Documents
EVAL
Revisão: 16/07/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
EVAL() retorna o valor da última expressao dentro do bloco. Um bloco de
(Qualquer)
código pode retornar um valor de qualquer tipo.
Descrição
Abrangência
Versão 8.11
Sintaxe
Retorno
Tipo Descrição
Numérico nRmtType corresponde ào número correspondente à interface utilizada.
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
Se .T. o servidor está sendo executado em ambiente Unix(r) ou Linux(r)
Lógico
Se .F. o servidor está sendo executado em ambiente Windows(r)
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versão 8.11
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Um número inteiro , com até 10 (dez) dígitos , correspondente ao CRC da
Numérico
string informada como parâmetro.
Descrição
Calcula um CRC de uma string. A função MSCRC32() calcula um CRC de uma string
informada e retorna um número com esse cálculo.
Note que strings iguais retornam CRC iguais, porém, nem sempre strings diferentes
retornam CRC diferentes.
MSCRC32STR
Revisão: 02/07/2003
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versão 8.11
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caracter Uma string com o CRC da string informada.
Descrição
MSCRC32STR() calcula um CRC de uma string informada , retornando uma string com
esse cálculo.
Note que strings iguais retornam CRC iguais, porém nem sempre strings diferentes
retornam CRC diferentes.
RANDOMIZE
Revisão: 11/12/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Numero randômico , compreendido no intervalo entre (nMinimo) e
Numérico (nMaximo-1) : O numero gerado pode ser maior ou igual à nMinimo e
menor ou igual a nMaximo-1 .
Descrição
Observação :
O limite inferior recebido através do parâmetro nMinimo é "maior ou igual a ", podendo
ser sorteado e fazer parte do retorno; porém o limite superior é "menor que", de modo a
nunca será atingido ou devolvido no resultado. Por exemplo , a chamada da função
randomize(1,2) sempre retornará 1 .
SENDTOFORE
Revisão: 14/07/2003
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versão 8.11
Sintaxe
Retorno
Tipo Descrição
(NULO) Esta função não retorna valor
Descrição
Esta função torna a aplicação do Remote foreground na estação em que está sendo
executado.
Faz com que a janela ativa do Remote fique acima de todas as janelas de outras
aplicações executadas na estação.
Abrangência
Sintaxe
Retorno
Tipo Descrição
Retorna o status da ultima operação de Criação de Objeto XML realizado
Caracter
pelo comando CREATE oXml ...
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
ALIAS() retorna o alias da área de trabalho especificada na forma de uma
cadeia de caracteres, em letra maiúscula. Caso <nAreaTrabalho> nao seja
Caracter especificada, é retornado o alias da área de trabalho corrente. Se nao
houver nenhum arquivo de banco de dados em USo na área de trabalho
especificada, ALIAS() retorna uma cadeia de caracteres nula ("").
Descrição
ALIAS() é uma funçao de banco de dados utilizada para determinar o alias da área de
trabalho especificada. Alias é o nome atribuido a uma área de trabalho quando um
arquivo de banco de dados está em uso. O nome real atribuido é o nome do arquivo de
banco de dados, ou um nome que foi explicitamente atribuido através da cláusula
ALIAS do comando USE.
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna falso se não foi possível abrir a tabela a ser testada. Principais
motivos: Não existe o arquivo da tabela ou
(NULO) do índice fisicamente; ou as definições da tabela ou índice em questão não
foram encontradas.
Retorna verdadeiro se a tabela testada pode ser aberta.
Descrição
BTVCONOPEN() é uma função que verifica se a tabela definida pelo parâmetro cNome
pode ser aberta e, se existir, o parâmetro cIndice verifica, também, se o índice pode ser
aberto. Para tanto, é testado se os arquivos envolvidos existem fisicamente, caso
afirmativo, é verificado se as definições envolvidas são encontradas nos arquivos do
DDF's.
Exemplo
// Este exemplo demonstra o uso típico de BTVCanOpen().
Se não falhar, a tabela e o índice testados serão abertos. Se falhar,
uma mensagem é apresentada.
IF !BTVCanOpen("\dadosadv\aa1990.dat","\dadosadv\ind1.ind")
Messagebox("Não é possível abrir a tabela testada","Erro", 0)
ELSE
Use "\dadosadv\aa1990.dat" SHARED NEW
OrdListAdd("\dadosadv\ind1.ind")
ENDIF
BTVCREATEDDFS
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna falso se não conseguiu gerar os novos arquivos de definição.
Principais erros: RDD não é Btrieve; diretório não está dentro do Protheus;
não pode carregar as informações de definição
(NULO)
ou não pode gravar os novos arquivos de definição.
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
Retorna Falso se não conseguiu apagar os índices. Principais erros: RDD
não é Btrieve, não achou as definições no DDF, o arquivo não está
Lógico
exclusivo;
Retorna Verdadeiro se a deleção de índices ocorrida com sucesso;
Descrição
Exemplo:
// Este exemplo demonstra o uso típico de BTVDropIdxs(). Se não falhar, os índices são
apagados e o processo continua. Se falhar, uma mensagem é apresentada.
Abrangência
Sintaxe
Retorno
Tipo Descrição
Retorna NIL se não conseguiu montar o array. Principais erros: RDD não é
Btrieve ou não conseguiu recuperar as informações corretamente do
Array
arquivo FILE.BTV do DDFs.
Retorna um Array com a lista com os nomes das tabelas extraídas do DDF.
Descrição
BTVTABLES retorna array composto por nomes das tabelas definidas no DDF do
Protheus. Para tanto verifica todos os nomes das tabelas armazenados no arquivo
FILE.BTV do DDF e retorna um array com todos eles. Toda tabela criada possui o
nome acrescentado neste arquivo de definições.
Exemplo:
// Este exemplo demonstra o uso típico de BTVTables(). Se não falhar, é montado um
array com os nomes das tabelas e esses nomes são mostrados no servidor. Se falhar,
uma mensagem é apresentada.
a:= BTVTables()
IF a=Nil
Messagebox("Não foi possível montar o array com os nomes das tabelas","Erro", 0)
ELSE
FOR i:= 1 to LEN(a)
ConOut(a[i])
NEXT
ENDIF
CTREEDELIDXS
Revisão: 26/08/2003
Abrangência
Sintaxe
Retorno
Tipo Descrição
Retorna Falso se não conseguiu deletar os índices. Principais
erros: RDD não é Ctree, não fechou a tabela, não apagou o arquivo de
Lógico índice ou não atualizou as informações da tabela; não abriu a tabela
novamente.
Retorna Verdadeiro se a deleção de índices ocorrida com sucesso.
Descrição
Importante: Após a remoção dos índices a tabela será posicionada no primeiro registro.
Exemplo:
// Este exemplo demonstra o uso típico de CtreeDelIdxs(). Se não falhar,
os índices são apagados e o processo continua. Se falhar, uma mensagem
é apresentada.
USE Clientes SHARED NEW
IF !CtreeDelIdxs()
Messagebox('Não foi possível deletar os índices da tabela corrente','Erro',0)
ENDIF
CTREEDELINT
Revisão: 22/07/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna Falso se não conseguiu deletar o índice interno. Principais
erros: tabela não está dentro do diretório do Protheus, não abriu a tabela ou
Lógico
não deletou o arquivo de índice interno.
Retorna Verdadeiro se a deleção do índice interno ocorrida com sucesso.
Descrição
A tabela deve ser apagada após a chamada desta função, pois a tabela CTree não pode
ser aberta sem índice interno.
Exemplo:
// Este exemplo demonstra o uso típico de CtreeDelInt(). Sendo que a tabela
'\dadosadv\sa1990.dtc' deve estar fechada. Se não falhar, o índice interno é apagado e o
processo continua. Se falhar, uma mensagem é apresentada.
IF !CtreeDelInt('\dadosadv\sa1990.dtc')
Messagebox('Não foi possível deletar o índice da tabela','Erro', 0)
ENDIF
fErase('\dadosadv\sa1990.dtc')
DBAPPEND
Revisão: 07/05/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
(NULO) Retorno nulo.
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Exemplo
// Este exemplo demonstra como se pode utilizar o DBCLOSEALL para fechar a área
de trabalho atual.
USE Clientes NEW
DBSETINDEX("Nome") // Abre o arquivo de índice "Nome"
USE Fornecedores NEW
DBSETINDEX("Idade") // Abre o arquivo de índice "Idade"
...
DBCLOSEALL() //Fecha todas as áreas de trabalho, todos os indices e ordens
DBCLOSEAREA
Revisão: 07/05/2003
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBCOMMIT para salvar todas as
alterações realizadas na área de trabalho atual.
USE Clientes NEW
DBGOTO(100)
Nome := "Jose"
USE Fornecedores NEW
DBGOTO(168)
Nome := "Joao"
DBCOMMIT() // Salva em disco apenas as alterações realizadas na tabela Fornecedores
DBCOMMITALL
Revisão: 30/08/2002
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBCOMMITALL para salvar todas
as alterações realizadas nas áreas de trabalho abertas no momento.
USE Clientes NEW
DBGOTO(100)
Nome := "Jose"
USE Fornecedores NEW
DBGOTO(168)
Nome := "Joao"
DBCOMMITALL()
// Salva em disco as alterações realizadas nas tabelas Clientes e Fornecedores
DBCREATE
Revisão: 30/08/2002
Abrangência
Sintaxe
DBCREATE ( < cNOME > , < aESTRUTURA > , [ @cDRIVER ] ) --> uRet
Parâmetros
Retorno
Tipo Descrição
Caracter Nenhum
Descrição
Exemplo:
// Este exemplo mostra como se pode criar novo arquivo de tabela através da função
DBCREATE:
LOCAL aEstrutura :={{Cod,N,3,0},{Nome,C,10,0},{Idade,N,3,0},{Nasc,D,8,0}
,{Pagto,N,7,2}}
DBCREATE("\teste\amigos.xxx",aEstrutura)
// Cria a tabela com o RDD corrente
USE "\teste\amigos.xxx" VIA "DBFCDX" NEW
DBCREATEINDEX
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
Caracter Nenhum
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar a função DBDELETE() para marcar
alguns registros como deletados e o PACK para deletá-los fisicamente.
USE Clientes NEW
DBGOTO(100)
DBDELETE()
DBGOTO(105)
DBDELETE()
DBGOTO(110)
DBDELETE()
PACK
DBEVAL
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Argumento TipoDescrição
Expressão na forma executável a ser resolvida para cada
bBLOCO Code-Block
registro processado.
Expressão na forma executável a ser resolvida para
bFORCOND Code-Block verificar se o registro em questão está dentro do escopo
definido.
Expressão na forma executável a ser resolvida para
bWHILECOND Code-Block verificar até qual registro será processado (até o bloco
retornar .F.).
Número de registros a ser processado a partir do registro
nPROXREGS Numérico
corrente.
Identificação de determinado registro a ser resolvida a
nRECNO Numérico
expressão (recno).
lRESTANTE Lógico Processa o restante dos registro.
Retorno
Tipo Descrição
Caracter Retorno nulo.
Descrição
Exemplo:
// Este exemplo mostra como se pode usar o DBEVAL para contar quantos registros
estão dentro do escopo especificado em toda a tabela, pois como o parâmetro lRestante
foi omitido a tabela irá para o topo antes de iniciar a processar os registros. Supondo
que a tabela está sobre um índice no campo idade, serão processados registros com o
Nome cuja ordem alfabética é maior que "FFFFF" e até encontrar algum registro de
idade igual a 40:
USE Cliente VIA "DBFCDX" NEW
LOCAL nCount := 0;
DBGOTO(100)
DBEVAL( {|| nCount++}, {|| Nome > "FFFFF"}, {|| Idade < 40})
// Este exemplo mostra como se pode usar o DBEVAL para contar quantos registros
estão dentro do escopo especificado (como o exemplo anterior) a partir do registro atual
(100):
USE Cliente VIA "DBFCDX" NEW
LOCAL nCount := 0;
DBGOTO(100)
DBEVAL( {|| nCount++}, {|| Nome > "FFFFF"}, {|| Idade < 40},,,.T.)
// Este exemplo mostra como se pode usar o DBEVAL para colocar numa variável um
nome inicial que está definido em um registro de recno definido (100):
USE Cliente VIA "DBFCDX" NEW
LOCAL cNomeIni := ""
DBEVAL( {|| cNomeIni := Nome},,,,100)
// Este exemplo mostra como se pode usar o DBEVAL para verificar qual é o recno do
décimo registro a partir do corrente dentro do escopo definido:
USE Cliente VIA "DBFCDX" NEW
LOCAL nRecno := 0;
DBGOTO(100)
DBEVAL( {|| nRecno := RECNO()}, {|| Nome > "FFFFF"}, {|| Idade < 40},10,,.T.)
DBF
Revisão: 30/08/2002
Abrangência
Sintaxe
Retorno
Tipo Descrição
Retorna o Alias corrente. Caso não exista Alias corrente retorna "" (String
Caracter
vazia).
Descrição
Exemplo:
// Este exemplo mostra como o DBF corrente pode ser mostrado para o usuário.
dbUseArea( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. )
MessageBox("O Alias corrente é: "+DBF(),"Alias", 0) //Resultado: "O Alias corrente é:
SSS"
DBFIELDINFO
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna NIL se não há tabela corrente ou a posição do campo
especificado está inválida.
(Qualquer) Informação do campo Informação requisitada pelo usuário (pode ser de
tipo numérico se for tamanho ou casas decimais, tipo caracter se for nome
ou tipo).
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
Retorna a expressão do filtro ativo na área de trabalho atual. Caso não
Caracter
exista filtro ativo retorna "" (String vazia).
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBFILTER para verificar a
expressão do filtro corrente.
USE Cliente INDEX Ind1 NEW
SET FILTER TO Nome > "Jose"
DBFILTER() // retorna: Nome > "Jose"
SET FILTER TO Num < 1000
DBFILTER() // retorna: Num < 1000
DBGOBOTTOM
Revisão: 30/08/2002
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBGOBOTTOM para posicionar no
último registro físico.
USE Cliente
DBGOBOTTOM() // Posiciona no último registro físico, pois não há ordem ativa
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBGOBOTOP para posicionar no
primeiro registro físico.
USE Cliente
DBGOTOP() // Posiciona no primeiro registro físico, pois não há ordem ativa
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Retorno nulo.
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBGOTO para posicionar a tabela
corrente em determinado registro.
USE Cliente INDEX Ind1 NEW
DBGOTO(100) // Posiciona no registro de recno 100
DBINFO
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Informação da Tabela Informação requisitada pelo usuário (o tipo depende
(Qualquer)
da informação requisitada). Se não houver tabela corrente retorna NIL.
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBINFO para obter as informações
da tabela corrente (Clientes).
USE Clientes NEW
DBINFO(DBI_FULLPATH) // Retorno: C:\Teste\Clientes.dbf
DBINFO(DBI_FCOUNT) // Retorno: 12
DBGOTOP()
DBINFO(DBI_BOF) // Retorno: .F.
DBSKIP(-1)
DBINFO(DBI_BOF) // Retorno: .T.
DBORDERINFO
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna a informação da Ordem requisitada pelo usuário (pode ser de tipo
numérico se for número de ordens no índice, tipo caracter se for nome do
Caracter
arquivo de índice). Caso não exista ordem corrente ou a posição da ordem
especificada está inválida retorna NIL.
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBORDERINFO para obter
informações sobre o nome do arquivo de índice da ordem corrente.
DBORDERINFO(DBOI_BAGNAME) // retorna: Ind
DBORDERINFO(DBOI_FULLPATH) // retorna: C:\AP6\Teste\Ind.cdx
DBORDERNICKNAME
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna Falso se não conseguiu tornar a ordem ativa. Principais erros: Não
Lógico existe tabela ativa ou não foi encontrada a ordem com o apelido.
Retorna Verdadeiro se a ordem foi setada com sucesso.
Descrição
Exemplo:
//Este exemplo demonstra como se pode utilizar o DBORDERNICKNAME para setar
nova ordem.
USE Cliente NEW
SET INDEX TO Nome, Idade
IF !DBORDERNICKNAME("IndNome")
Messagebox("Registro não encontrado","Erro", 0)
ENDIF
DBRECALL
Revisão: 30/08/2002
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBRECALL para retornar o estado
do registro atual para normal.
USE Cliente
DBGOTO(100)
DBDELETE()
DELETED() // Retorna: .T.
DBRECALL()
DELETED() // Retorna: .F.
// Este exemplo demonstra como se pode utilizar o DBRECALL para desfazer todas as
deleções da tabela corrente.
USE Cliente
DBGOTOP()
WHILE !EOF()
DBRECALL()
DBSKIP()
ENDDO
DBRECORDINFO
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Não há tabela corrente ou registro inválido.
(Qualquer) Informação do Registro. Informação requisitada
pelo usuário (o tipo depende da informação requisitada).
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBRECORDINFO para se obter as
informações sobre registros da tabela corrente.
USE Clientes NEW
DBGOTO(100)
DBRECORDINFO(DBRI_DELETED) // Retorno: .F.
DBDELETE()
DBRECORDINFO(DBRI_DELETED) // Retorno: .F.
DBRECALL()
DBRECORDINFO(DBRI_RECSIZE) // Retorno: 230
NOME := "JOAO"
DBGOTO(200)
DBRECORDINFO(DBRI_UPDATED) // Retorno: .F.
DBRECORDINFO(DBRI_UPDATED,100) // Retorno: .T.
DBREINDEX
Revisão: 30/08/2002
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Nenhum
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBREINDEX para reconstruir os
índices depois que um novo índice foi gerado.
USE Clientes NEW
DBSETINDEX("IndNome")
DBREINDEX()
DBRLOCK
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna Falso se não conseguiu bloquear o registro. Principal motivo: o
Lógico registro já foi bloqueado por outro usuário.
Retorna Verdadeiro se o registro foi bloqueado com sucesso
Descrição
Exemplo
// Este exemplo mostra duas variações do uso de DBRLOCK.
DBUSEAREA( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. )
DBGOTO(100)
DBRLOCK() // Bloqueia o registro atual (100)
DBRLOCK(110) // Bloqueia o registro de número 110
DBRLOCKLIST
Revisão: 30/08/2002
Abrangência
Sintaxe
Retorno
Tipo Descrição
Retorna NIL se não existe tabela corrente ou não existe nenhum
Array registro locado.
Retorna a lista com os recnos dos registros locados na tabela corrente.
Descrição
Exemplo:
// Este exemplo mostra como é utilizada a função DBRLOCKLIST para verificar quais
registros estão bloqueados na tabela corrente:
DBUSEAREA( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. )
DBGOTOP()
DBRLOCK() // Bloqueia o primeiro registro
DBRLOCK(110) // Bloqueia o registro de número 110
DBRLOCK(100) // Bloqueia o registro de número 100
DBRLOCKLIST() // Retorna: {1,100,110}
DBRUNLOCK
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
(NULO) Sem retorno.
Descrição
Exemplo:
// Este exemplo mostra duas variações do uso de DBRUNLOCK.
DBUSEAREA( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. )
DBGOTO(100)
DBRUNLOCK() //Desbloqueia o registro atual (100)
DBRUNLOCK(110) // Desbloqueia o registro de número 110
DBSEEK
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna Falso se não foi encontrado nenhum registro com o valor
Lógico especificado.
Retorna Verdadeiro se foi encontrado um registro com o valor especificado
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBSEEK para busca de valores
numéricos.
USE Clientes NEW
ORDLISTADD ("/teste/ind1.cdx") // Expressão é Num (campo numérico)
DBSEEK(100) // Retorna: .F.
EOF() // Retorna: .T.
DBSEEK(100,.T.) // Retorna: .F.
EOF() // Retorna: .F. (pois o softseek posicionou no próximo registro)
// Este exemplo demonstra como se pode utilizar o DBSEEK para percorrer todos os
registros de Clientes com o nome joao e vencimentos a partir de janeiro de 2001.
USE Clientes NEW
ORDLISTADD ("/teste/ind2.cdx") // Expressão é Nome+Venc (campo caracter + data)
DBSEEK("joao200101",.T.) // Procura a primeira ocorrência de Nome "joao" e
vencimento maior que Janeiro de 2001
WHILE !EOF() .AND. Nome == "joao"
DBSKIP()
ENDDO
DBSETDRIVER
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caracter Nome do RDD padrão corrente
Descrição
DBSETDRIVER() pode ser utilizada apenas para verificar qual o RDD que está
definido como padrão quando for omitido seu parâmetro.
Ela também pode ser utilizada para especificar outro RDD como padrão,
especificando-o através do parâmetro.
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBSETDRIVER para alterar o valor
do RDD padrão.
DBSETDRIVER("CTREECDX") // Retorna: DBFCDX
DBSETDRIVER() // Retorna: CTREECDX
DBSETFILTER
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
(NULO) Sem retorno.
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBSETFILTER para filtrar todos os
clientes com menos de 40 anos.
USE Cliente NEW
DBSETFILTER( {||Idade < 40}, "Idade < 40" )
DBGOTOP()
DBSETINDEX
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
(NULO) Sem retorno.
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBSETINDEX para acrescentar
novos índices à lista de ordens.
USE Cliente NEW
DBSETINDEX("Ind1")
DBSETINDEX("\teste\Ind2.cdx")
DBSETNICKNAME
Revisão: 30/08/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna "" (String vazia) se não conseguiu encontrar a ordem especificada,
Caracter não conseguiu setar o apelido ou não havia apelido.
Retorna o apelido corrente.
Descrição
Exemplo:
// Este exemplo demonstra como se pode utilizar o DBSETNICKNAME para setar um
novo apelido e verificar qual o apelido atual.
USE Cliente NEW
DBSETNICKNAME("IndNome") // retorna: ""
DBSETNICKNAME("IndNome","NOME") // retorna: ""
DBSETNICKNAME("IndNome") // retorna: "NOME"
DBSETORDER
Revisão: 09/04/2003
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
(NULO) Esta função sempre retorna NIL.
Descrição
Esta função é utilizada para selecionar a ordem ativa da área de trabalho. Esta ordem é a
responsável seqüência lógica dos registros da tabela corrente.
Exemplo:
Caso seja setada a ordem 0 , a tabela corrente na area de trabalho será colocada na
ordem natural , isto é, a ordem na qual os registros foram acrescentados, porém os
indexadores são mantidos abertos. Vale salientar que , quando alteramos a ordem atual
de uma determinada tabela , o registro atual não é desposicionado.
DBSKIP
Revisão: 07/05/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caracter Sem retorno.
Descrição
Desloca para outro registro na tabela corrente. Esta função é utilizada para deslocar para
outro registro a partir do registro atual. O deslocamento é lógico, ou seja, leva em
consideração ordem no índice e também filtro (se existir).
Caso passe do início da tabela, posiciona no primeiro registro e seta BOF. Caso passe
do final da tabela, posiciona no registro "LastRec()+1" e seta EOF. Neste último caso,
se a RDD for TopConnect, o Recno() retornado será por convenção "LastRec() + 5000".
DBSTRUCT
Revisão: 08/05/2003
Abrangência
Sintaxe
Retorno
Tipo Descrição
Array com a estrutura dos campos. Cada elemento é um subarray contendo
Array
Nome, Tipo, Tamanho e Decimais.
Descrição
Retorna a estrutura da tabela corrente. Esta função é utilizada para verificar a estrutura
da tabela corrente da mesma forma que é utilizada para criar a tabela com a função
DBCREATE. Para isto ela cria um array para gravar as informações e as retorna.
Veja Também
AFields( )
DBUNLOCK
Revisão: 08/05/2003
Abrangência
Sintaxe
Retorno
Tipo Descrição
Caracter Sem retorno.
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
Caracter Sem retorno.
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
Se for .T. o registro tem a marca de excluído, se for .F., o registro não tem
Lógico
a marca (ou não há área em uso).
Descrição
Exemplo
// Este exemplo verifica se determinado registro está deletado, caso positivo, mostra
uma mensagem:
USE "\DADOSADV\AA1990.DBF" SHARED NEW
DBGOTO(100)
IF DELETED()
Messagebox("O registro atual foi deletado","Erro", 0)
ENDIF
FIELDBLOCK
Revisão: 12/06/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Code-Block Bloco de código para o campo especificado na tabela corrente.
Descrição
Exemplo
// Este exemplo mostra como se pode usar o FIELDBLOCK para criar o bloco de
código para o campo 'Nome' da tabela corrente na variável bBloco:
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Retorno
Tipo Descrição
HEADER() retorna a quantidade de bytes no cabeçalho do arquivo de
Caracter
banco de dados corrente na forma de um valor numérico inteiro.
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Retorno
Tipo Descrição
Retorna um valor do tipo Data , indicando a data da ultima modificação e
Data fechamento da Tabela. Caso não haja tabela selecionada na área de
trabalho atual , a função retornará uma data vazia (ctod ("")) .
Descrição
Verifica a data da última modificação da tabela corrente. Esta função verifica qual a
data da última modificação e fechamento da tabela corrente, caso não exista tabela
corrente é retornada uma data em branco.
Exemplo :
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
SELECT() retorna a área de trabalho do alias especificado na forma de um
Numérico
valor numérico inteiro.
Descrição
Exemplos
* O exemplo a seguir ilustra como utilizar SELECT() para determinar qual área de
trabalho o comando USE...NEW selecionou:
USE Sales NEW
SELECT 1
conout(SELECT("Sales")) // Resulta: 4
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caracter Sempre retorna uma string vazia.
Descrição
Define a execução de uma Query. Esta função determina que a próxima chamada à
DBUseArea será a abertura
de uma Query e não de tabela.
Exemplo
cQuery := ChangeQuery(cQuery)
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versão 8.11
Versões Anteriores
Sintaxe
Retorno
Tipo Descrição
USED() retorna verdadeiro (.T.) caso haja um arquivo de banco de dados
Lógico
em uso; caso contrário, retorna falso (.F.).
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Retorno nulo.
Descrição
Remove todos os registros com marca de excluído da tabela. Esta função apaga
(fisicamente) todos os registros "excluídos" da tabela corrente.
Exemplo
// Este exemplo demonstra como se pode utilizar a função DBDELETE() para marcar
alguns registros como deletados e o comando PACK para deletá-los fisicamente.
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Tipo Descrição
ADIR() retorna a quantidade de arquivos que correspondem ao esqueleto
Numérico
de diretório especificado.
Descrição
ADIR() é uma funçao de tratamento de vetor que executa duas operaçoes básicas.
Primeiro, ele retorna a quantidade de arquivos que correspondem à especificaçao de
arquivo. Segundo, preenche uma série de vetores com nomes de arquivos, tamanhos,
datas, horas e atributos.
OBSERVAÇÃO
Abrangência
Sintaxe
CPYS2T ( < cOrigem > , < cDestino > , [ lCompacta ] ) --> lSucess
Parâmetros
Retorno
Tipo Descrição
lSucess retorna .T. caso o arquivo seja copiado com sucesso , ou .F. em
Lógico
caso de falha na cópia.
Descrição
Exemplo :
Abrangência
Sintaxe
CPYT2S ( < cOrigem > , < cDestino > , [ lCompacta ] ) --> lSucess
Parâmetros
Retorno
Tipo Descrição
lSucess indica , caso verdadeiro , que a cópia foi realizada com sucesso.
Lógico
Caso retorne .F. , houve erro na copia do arquivo.
Descrição
Exemplo
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caracter Diretório corrente, sem a primeira barra.
Descrição
Caso seja passado o parâmetro cNovoPath , este path é assumido como sendo o Path
atual. Caso o path recebido como parÂmetro não exista , seja inválido , ou seja um path
absoluto ( iniciado com uma letra de drive ou caimnho de rede ) , a função não irá setar
o novo path , mantendo o atual .
DIRECTORY
Revisão: 17/07/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
DIRECTORY() retorna um vetor de sub-vetores, sendo que cada sub-vetor
Array contém informaçoes sobre cada arquivo que atenda a <cDirSpec>.Veja
maiores detalhes na Tabela B, abaixo discriminada.
Descrição
Arquivos normais sao sempre incluidos na pesquisa, a nao ser que V seja especificado.
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
lSucesso será .T. caso o diretório tenha sido eliminado , ou .F. caso não
seja possível excluir o diretório. Quando a função DirRemove retornar .F. ,
Lógico
é possível obter mais detalhes da ocorrência recuperando o código do Erro
através da função FError().
Descrição
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Numérico Número de bytes disponíveis no disco informado como parâmetro.
Descrição
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
FCLOSE() retorna falso (.F.) se ocorre um erro enquanto os buffers estao
Lógico
sendo escritos; do contrário, retorna verdadeiro (.T.).
Descrição
FCLOSE() é uma funçao de tratamento de arquivos de baixo nível utilizada para fechar
arquivos binários e forçar que os respectivos buffers do DOS sejam escritos no disco.
Caso a operaçao falhe, FCLOSE() retorna falso (.F.). FERROR() pode entao ser usado
para determinar a razao exata da falha. Por exemplo, ao tentar-se usar FCLOSE() com
um handle (tratamento dado ao arquivo pelo sistema operacional) inválido retorna falso
(.F.) e FERROR() retorna erro 6 do DOS, invalid handle. Consulte FERROR() para
obter uma lista completa dos códigos de erro.
Aviso
Esta funçao permite acesso de baixo nível aos arquivos e dispositivos do DOS. Ela deve
ser utilizada com extremo cuidado e exige que se conheça a fundo o sistema operacional
utilizado.
Exemplos
O exemplo a seguir utiliza FCLOSE() para fechar um arquivo binário recém criado e
exibe uma mensagem de erro caso o fechamento falhe:
#include "Fileio.ch"
If !FCLOSE(nHandle)
conout( "Erro ao fechar arquivo, erro numero: ", FERROR() )
EndIf
FCREATE
Revisão: 01/05/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
A função retornará o Handle do arquivo para ser usado nas demais funções
de manutenção de arquivo. O Handle será maior ou igual a zero. Caso não
Numérico
seja possível criar o arquivo , a função retornará o handle -1 , e será
possível obter maiores detalhes da ocorrencia através da função FERror()
Descrição
Caso desejemos especificar mais de um atributo , basta somá-los . Por exemplo , para
criar um arquivo protegiro contra gravação e escondido , passamos como atributo
FC_READONLY + FC_HIDDEN .
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
A função retornará 0 caso o arquivop seja apagado com sucesso , e -1 caso
Numérico não seja possível apagar o arquivo. Caso a função retorne -1 , é possível
obter mauires detalhes da ocorrência através da função fError()
Descrição
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
O retorno será .T. caso o arquivo especificado exista. Caso o mesmo não
Lógico
exista no path especificado , a função retorna .F.
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
FOPEN() retorna o handle de arquivo aberto na faixa de zero a 65.535.
Numérico
Caso ocorra um erro, FOPEN() retorna -1.
Descrição
FOPEN() é uma funçao de tratamento de arquivo de baixo nível que abre um arquivo
binário existente para que este possa ser lido e escrito, dependendo do argumento
<nModo>. Toda vez que houver um erro na abertura do arquivo, FERROR() pode ser
usado para retornar o código de erro do Sistema Operacional. Por exemplo, caso o
arquivo nao exista, FOPEN() retorna -1 e FERROR() retorna 2 para indicar que o
arquivo nao foi encontrado. Veja FERROR() para uma lista completa dos códigos de
erro.
Aviso
Esta funçao permite acesso de baixo nível a arquivos e dispositivos. Ela deve ser
utilizada com extremo cuidado e exige que se conheça a fundo o sistema operacional
utilizado.
Notas
Constante
Modo Operação
(fileio.ch)
0 FO_COMPAT Modo de Compatibilidade (Default)
16 FO_EXCLUSIVE Acesso total exclusivo
Acesso bloqueando a gravação de outros processos ao
32 FO_DENYWRITE
arquivo.
48 FO_DENYREAD Acesso bloqueando a leitura de outros processos ao arquivo.
Acesso compartilhado. Permite a leitura e gravação por
64 FO_DENYNONE
outros processos ao arquivo..
64 FO_SHARED Igual à FO_DENYNONE
FREAD
Revisão: 19/10/2002
Abrangência
Sintaxe
FREAD ( < nHanvle > , < cBuffer > , < nQtdBytes > ) --> nBytesLidos
Parâmetros
Retorno
Tipo Descrição
Quantidades de bytes lidos. Caso a quantidade seja menor que a solicitada,
Numérico isto indica erro de leitura ou final de arquivo, Verifique a função
FERROR() para maiores detalhes.
Descrição
FREAD() lerá até o número de bytes informado em nQtdBytes; caso aconteça algum
erro ou o arquivo chegue ao final, FREAD() retornará um número menor que o
especificado em nQtdBytes. FREAD() lê normalmente caracteres de controle (ASC
128, ASC 0, etc.).
A variável String a ser utiilzada como buffer de leitura deve ser sempre pré-alocado e
passado como referência. Caso contrário, os dados não poderão ser retornados.
FREAD() lê a partir da posição atual do ponteiro atual do arquivo , que pode ser
ajustado ou modificado pelas funções FSEEK() , FWRITE() ou FREADSTR().
FREADSTR
Revisão: 02/06/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna uma string contendo os caracteres
Caracter
lidos.
Descrição
FREADSTR() lê a partir da posição atual do ponteiro, que pode ser ajustado pelo
FSEEK(), FWRITE( ) ou FREAD().
FRENAME
Revisão: 11/06/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Se o status retornado for -1 , ocorreu algum erro na mudança de nome :
Verifique se os dois caminhos estão no mesmo ambiente, verifique a
Numérico existência do arquivo de origem, se ele não está em uso no momento por
outro processo , e verifique se o nome do arquivo de destino já não existe
no path de destino especificado.
Descrição
Através da função FRENAME() é possível renomear um arquivo para outro nome, tanto
no servidor como na estação. Ao renomear um arquivo não esqueça que esta arquivo
deverá
estar fechado ( isto é , não pode estar em uso por nenhum outro processo ou estação).
Caso o arquivo esteja aberto por outro processo , a operação de renomear o arquivo não
é possível. A função fRename() não aceita wildcards ( * e/ou ? ).
Vale lembrar que não é possível renomear um arquivo especificando nos parâmetros
simultaneamente um caminho de servidor e um de estação remota, bem como
especificar dois arquivos remotos e executar a função fername() através de um JOB.
Caso isto ocorra, a função retornará -1 , e fError() retornará também -1.
Importante : Quando especificamos um path diferente nos arquivos de origem e
destino , a função fRename() realiza a funcionalidade de MOVER o arquivo para o
Path especificado.
FSEEK
Revisão: 05/05/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
FSEEK() retorna a nova posiçao do ponteiro de arquivo com relaçao ao
início do arquivo (posiçao 0) na forma de um valor numérico inteiro. Este
Numérico
valor nao leva em conta a posiçao original do ponteiro de arquivos antes da
execução da função FSEEK().
Descrição
Abrangência
Sintaxe
FWRITE ( < nHandle > , < cBuffer > , [ nQtdBytes ] ) --> nBytesEscritos
Parâmetros
Retorno
Tipo Descrição
FWRITE() retorna a quantidade de bytes escritos na forma de um valor
numérico inteiro. Caso o valor retornado seja igual a <nQtdBytes>, a
Numérico operaçao foi bem sucedida. Caso o valor de retorno seja menor que
<nBytes> ou zero, ou o disco está cheio ou ocorreu outro erro. Neste caso ,
utilize a função FERROR() para obter maiores detalhes da ocorrência.
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
Caracter Retona o path onde está instalado o Protheus Remote.
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
Caracter Path e nome do arquivo de configuração
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caracter Conteudo da chave especificada
Descrição
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorno zero ( 0 ),o diretório foi criado com sucesso. Caso contrário,
Numérico
houve erro na criação do diretório.
Descrição
Caso o diretório comece com um drive ( Ex: C:, X: ) o diretório será criado na estação,
caso contrário será criado no servidor.
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caso a compactação seja executada com sucesso , a função retornará uma
sring contendo o nome do arquivo gerado . Caso não seja possível a
Caracter compactação , por falta de espaço em disco ou erro de acesso a algum dos
arquivos a ser(em) compactado(s), a função retornará uma string em
branco ("").
Descrição
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caso a descompactação foi executada com sucesso, a função retornará .T. ,
Em caso de erro durante a descompactação, a função retrornará .F.
Lógico Verifique o espaço disponível na unidade de disco para descompactar o(s)
arquivo(s) e/ou se existe amgum arquivo a ser descompactado no pacote
que já exista na unidade de disco , atribuído como "REad-Only".
Descrição
Caso o arquivo seja protegido por senha, apenas com a senha poderemos descompactá-
lo.
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caracter Esta função sempre retorna NIL.
Descrição
Observação : Vale lembrar que a função SplitPath não valida a sintaxe do caminho
e/ou arquivo digitados , nem a existência do mesmo . Esta função é utilizada para
determinar em uma string os elementos que compõe um caminho para a
localização de um arquivo.
WRITEPPROSTRING
Revisão: 05/05/2003
Abrangência
Sintaxe
WRITEPPROSTRING ( < cSecao > , < cChave > , < cConteudo > , < cArqIni > ) -->
lSucess
Parâmetros
Retorno
Tipo Descrição
Caso a chave seja incluida e/ou alterada com sucesso , a função
retornatá .T. (true) , e caso ocorra alguma falha ou impossibilidade de
Lógico acesso ao arquivo .ini , a função retornará .F. (false). Dentre as causas mais
comuns de falha , podemos citar erro de sintaxe no nome do arquivo e/ou
path inexistente ou inacessível.
Descrição
Através da funcao WritePProString() , é possível criar e/ou alterar uma seção / chave de
configuração em um arquivo .ini . Caso o arquivo não exista , o mesmo será criado . No
nome do arquivo , podemos opcionalmente definir um path absoluto , com unidade de
disco , de modo que o arquivo .ini será atualizado na estação remota ( onde está sendo
executado o Protheus Remote ) . Caso não seja especificado nenhum path ou caminho
do arquivo .ini , o caminho de disco considerado será o path no Servidor onde está
instalado o Protheus Server .
Funções de tratamento de caracteres
ALLTRIM
Revisão: 26/02/2003
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
ALLTRIM() retorna uma cadeia de caracteres cujos espaços em branco à
Caracter
direita e à esquerda foram removidos.
Descrição
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
DESCEND() retorna a string especificada como parâmetro de uma forma
Caracter
complementada. Um DESCEND() de CHR(0) sempre retorna CHR(0).
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
LTRIM() retorna uma cópia de <cString>, sendo que os espaços em branco
à esquerda foram removidos. Caso <cString> seja uma cadeia de caracteres
Caracter
nula ("") ou toda composta de espaços em branco, LTRIM() retorna uma
cadeia de caracteres nula ("").
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
PADL / PADR / PADC ( < exp > , < nTamanho > , [ cCaracPreench ] ) -->
cStringPreench
Parâmetros
Retorno
Tipo Descrição
PADC(), PADL(), e PADR() retornam o resultado de <exp> na forma de
Caracter uma cadeia de caracteres preenchida com <cCaracPreench>, para totalizar
o tamanho especificado por <nTamanho>.
Descrição
PADC(), PADL(), e PADR() sao utilizadas para exibir cadeias de caracteres de tamanho
variável em uma área de tamanho fixo. Elas podem ser usadas, por exemplo, para
assegurar o alinhamento com comandos ?? consecutivos. Outra utilizaçao é exibir textos
em uma tela de tamanho fixo, para certificar-se de que o texto anterior foi
completamente sobreescrito.
PADC(), PADL(), e PADR() sao o contrário das funçoes ALLTRIM(), LTRIM(), e
LTRIM(), as quais eliminam espaçoes em branco à esquerda e à direita de cadeias de
caracteres.
RTRIM
Revisão: 26/02/2003
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
RTRIM() retorna uma cópia de <cString>, sendo que os espaços em
branco à direita foram removidos. Caso <cString> seja uma cadeia de
Caracter
caracteres nula ("") ou totalmente composta por espaços, RTRIM() retorna
uma cadeia de caracteres nula ("").
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
CDOW() retorna o nome do dia da semana na forma de uma cadeia de
caracteres. A primeira letra será maiúscula e o resto dos caracteres virá em
Caracter
minúsculas. Para um valor de data nulo ou inválido, CDOW() retorna uma
cadeia de caracteres vazia ("").
Descrição
CDOW() é uma função utilizada para obter, a partir de uma data, a cadeia de caracteres
contendo o dia da semana correspondente.
CMONTH
Revisão: 04/08/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
CMONTH() retorna o nome do mês a partir de uma data como sendo uma
cadeia de caracteres com a primeira letra maiúscula e o restante da string
Caracter
em letras minúsculas. Para uma data nula, CMONTH() retornará uma
string nula ("").
Descrição
CMONTH() é uma função de conversão de datas que , a partir de uma data , retorna
uma cadeia de caracteres correspondendo ao nome do mês correspondente.
DATE
Revisão: 04/08/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Retorno
Tipo Descrição
DATE() retorna a data do sistema como sendo um valor do tipo data.
Data
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
DAY() retorna um número na faixa de 0 até 31, sendo este um valor
numérico inteiro. Caso o mês seja Fevereiro, os anos bissextos sao
Numérico considerados. Se o argumento de data é 29 de Fevereiro e o ano nao é
bissexto, DAY() retornará zero. Se o argumento de data é vazio, DAY()
também retornará zero.
Descrição
Retorna o dia do mês como valor numérico. DAY() é uma funçao de conversao de datas
utilizada para converter um valor do tipo data para o dia do mês correspondente. Esta
função é usada em conjunto com CMONTH() e YEAR() para formatar datas. Além
disso, é geralmente usada em cálculos que envolvam datas.
DOW
Revisão: 13/10/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
DOW() retorna o dia da semana na forma de um número entre zero e sete.
Numérico O primeiro dia da semana é um (Domingo) e o último é sete (Sábado). Se
<dData> estiver vazio, DOW() retorna zero.
Descrição
DOW() é uma funçao de conversao de datas que converte um valor data para um
número que identifica o dia da semana. Ela é útil quando você deseja cálculos de data
em uma base semanal. DOW() é semelhante a CDOW(), a qual retorna o dia da semana
na forma de uma cadeia de caracteres ao invés de um número.
DTOC
Revisão: 13/10/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
DTOC() retorna uma cadeia de caracteres que representa uma data. O valor
de retorno é formatado de acordo com o formato de datas corrente. O
Caracter
formato padrao é mm/dd/aa. Uma data nula retorna uma cadeia de
caracteres em branco igual em tamanho ao formato de data corrente.
Descrição
Se você estiver INDEXando uma data juntamente com uma cadeia de caracteres, use
DTOS() ao invés de DTOC() para converter o valor data para uma cadeia de caracteres.
ELAPTIME
Revisão: 08/09/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
A diferença de tempo no formato hh:mm:ss, onde hh é a hora ( 1 a 24 ),
Caracter
mm os minutos e ss os segundos
Descrição
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
MONTH() retorna um valor numérico inteiro na faixa de 0 (zero) a 12.
Numérico
Uma data nula (CTOD("")) retorna zero.
Descrição
MONTH() é uma funçao de conversao de datas que é útil quando você precisa de um
valor de mês numérico durante cálculos para, por exemplo, relatórios periódicos.
MONTH() faz parte de um grupo de funçoes que retornam componentes de um valor
data na forma de valores numéricos. O grupo inclui DAY() e YEAR(), que retornam os
valores de dia e ano na Forma de númericos. CMONTH() é uma funçao relacionada,
que permite a você retornar o nome do mês a partir de um valor data.
SECONDS
Revisão: 09/10/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Retorno
Tipo Descrição
SECONDS() retorna a hora do sistema como um valor numérico na forma
segundos.centésimos. O valor numérico retornado é a quantidade de
Numérico
segundos decorridos desde a meia-noite, e tem base em um relógio de
vinte e quatro horas em uma faixa de zero a 86399.
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Retorno
Tipo Descrição
TIME() retorna a hora do sistema como uma cadeia de caracteres na forma
hh:mm:ss. hh indica a hora no formato de 24 horas, mm indica os minutos,
Caracter
e ss indica os segundos. Horas, minutos e segundos sao separadas por dois
pontos.
Descrição
TIME() é uma funçao de tratamento de tempo, utilizada para exibir ou imprimir a hora
do sistema em um relatório ou na tela. TIME() está relacionada a SECONDS(), que
retorna a quantidade de segundos decorridos desde a meia-noite. SECONDS()
geralmente é utilizada em lugar de TIME() para cálculos sobre o tempo.
YEAR
Revisão: 13/10/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
YEAR() retorna o ano do valor data especificado, inclusive dígitos
indicativos de século, na forma de um valor numérico de quatro dígitos. O
Numérico
valor retornado nao é influenciado pelo formato de DATE ou CENTURY
corrente. A especificaçao de uma data nula (CTOD("")) retorna zero.
Descrição
YEAR() é uma funçao de conversao de datas utilizada para converter um valor data para
um valor numérico indicativo do ano. Pode ser utilizada em cálculos de, por exemplo,
relatórios periódicos, ou para Formataçao de exibiçoes de data.
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Avalia expValor e retorna seu Valor. Se expValor não for especificado,
(Qualquer)
AADD() retorna NIL.
Descrição
AADD() é semelhante à função ASIZE(), mas adiciona apenas um elemento por vez;
ASIZE() pode aumentar ou diminuir um vetor a um tamanho especificado. AADD(),
porém, possui a vantagem de poder atribuir um valor ao novo elemento, enquanto que
ASIZE() nao pode. AADD() pode também parecer ser igual a AINS(), mas isso nao é
verdade: AINS() move elementos dentro de um vetor, mas nao modifica o tamanho do
vetor.
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Array Array idêntico ao aFonte , porem sem nenhuma referência ao mesmo.
Descrição
ACLONE() é uma funçao de vetor que cria uma duplicata completa do vetor de
<aFonte>. Caso <aFonte> contenha sub-vetores, ACLONE() cria sub-vetores
correspondentes e os preenche com cópias dos valores contidos nos sub-vetores de
<aFonte>.
Abrangência
Sintaxe
ACOPY ( < aFonte > , < aDestino > , [ nInicio ] , [ nCont ] , [ nPosDestino ] ) -->
aDestino
Parâmetros
Retorno
Tipo Descrição
Array ACOPY() retorna uma referência ao vetor destino, <aDestino>.
Descrição
ACOPY() é uma funçao de tratamento de vetor que copia elementos do vetor <aFonte>
para o vetor <aDestino>. O vetor <aDestino> já deve existir e ser grande o suficiente
para conter os elementos copiados. Caso o vetor <aFonte> tenha mais elementos, alguns
elementos nao serao copiados.
ACOPY() copia valores de todos os tipos de dados, inclusive NIL e blocos de código.
Se um elemento do vetor <aFonte> for um sub-vetor, o elemento correspondente no
vetor <aDestino> conterá uma referência ao sub-vetor. Consequentemente, ACOPY()
nao cria duplicatas completas de vetores multi-dimensionais. Para fazer isto, use a
funçao ACLONE().
ADEL
Revisão: 16/07/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
ADEL() retorna uma referência ao vetor destino, <aFonte>.
Array
Descrição
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
AEVAL ( < aVetor > , < bBloco > , [ nInicio ] , [ nCont ] ) --> aVetor
Parâmetros
Retorno
Tipo Descrição
Array AEVAL() retorna uma referência a <aVetor>.
Descrição
AEVAL() é uma funçao de tratamento de vetor que avalia um bloco de código uma vez
para cada elemento de um vetor, passando o valor do elemento como um parâmetro de
bloco. O valor de retorno do bloco é ignorado. Todos os elementos no <aVetor> sao
processados a nao ser que o argumento <nInicio> ou <nCont> seja especificado.
AEVAL() nao faz suposiçoes sobre o conteúdo dos elementos de vetor que ele está
passando para o bloco. É assumido que o bloco sabe qual o tipo de dados haverá em
cada elemento.
AEVAL() é semelhante a DBEVAL(), que aplica um bloco para cada registro de um
arquivo de banco de dados. Da mesma forma que DBEVAL(), AEVAL() pode ser
utilizado como base para a construçao de comandos de interaçao tanto para estruturas de
vetor complexas como simples.
Consulte a seçao Blocos de Código no na seção A Linguagem Advpl para maiores
informações sobre Code-Blocks.
AFILL
Revisão: 16/07/2002
Abrangência
Sintaxe
AFILL ( < aDestino > , < ValorExp > , [ nInicio ] , [ nCont ] ) --> aDestino
Parâmetros
Retorno
Tipo Descrição
Array AFILL() retorna uma referência ao <aDestino>.
Descrição
AFILL() é uma funçao de vetor que preenche um vetor especificado com um único
valor de qualquer tipo de dados (inclusive vetores, blocos de código ou NIL) atribuindo
<ValorExp> a cada elemento de vetor na faixa especificada.
ATENÇÃO : AFILL() nao pode ser utilizado para preencher vetores multi-
dimensionais. Este tipo de vetores em Clipper sao implementados aninhando-se vetores
dentro de outros vetores. A utilizaçao de AFILL() com vetores multi-dimensionais
sobre-escreverá vetores para as outras dimensoes do vetor.
AINS
Revisão: 16/07/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Retorna uma referência ao vetor aDestino
Array
Descrição
AINS() é uma função de vetor que insere um novo elemento em um vetor especificado.
O elemento recém inserido é NIL até que um novo valor seja atribuido a ele. Após a
inserção, o último elemento no vetor é descartado, e todos os elementos depois do novo
elemento descem uma posição.
¤ AVISO : AINS() deve ser utilizado com cuidado quando se tratar de vetores multi-
dimensionais. Vetores multi-dimensionais em Advpl sao implementados através do
aninhamento de vetores dentro de outros vetores. Utilizar AINS() com um vetor multi-
dimensional descarta o último sub-vetor no vetor destino especificado, o que causa a
perda de uma ou mais dimensoes. Para inserir uma nova dimensao em um vetor,
primeiramente adicione um novo elemento ao final do vetor utilizando AADD() ou
ASIZE() antes de usar AINS().
ARRAY
Revisão: 26/07/2002
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versões Anteriores
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Array ARRAY() retorna um vetor de dimensoes especificadas.
Descrição
ARRAY() é uma funçao de tratamento de vetor que retorna um vetor nao inicializado
com a quantidade especificada de elementos e dimensoes. Se for especificado mais de
um argumento <nElementos>, é criado um vetor multi-dimensional ou aninhado, sendo
que a quantidade de dimensoes é igual à quantidade de argumentos <nElementos>
especificada.
Abrangência
Sintaxe
ASCAN ( < aDestino > , < ProcuraExp > , [ nInicio ] , [ nCont ] ) --> nParouEm
Parâmetros
Retorno
Tipo Descrição
ASCAN() retorna um valor numérico que representa a posiçao ocupada no
vetor pelo último elemento varrido. Se <ProcuraExp> for um valor
simples, ASCAN() retorna a posiçao do primeiro elemento que
Numérico
corresponder ao valor procurado, ou zero caso nao haja correspondência.
Se <ProcuraExp> for um bloco de código, ASCAN() retorna a posiçao do
elemento onde o bloco retornou verdadeiro (.T.).
Descrição
ASCAN() é uma funçao de tratamento de vetor que varre um vetor procurando um valor
especificado e opera da mesma forma que o comando SEEK quando pesquisa um valor
simples. O valor <ProcuraExp> é comparado ao elemento de vetor destino que começa
com o caractere mais à esquerda no elemento destino e prossegue até que nao haja mais
nenhum caractere em <ProcuraExp>. Caso nao haja correspondência, ASCAN() vai
para o próximo elemento no vetor.
Como ASCAN() utiliza o operador (=) para comparaçoes, ele é sensível ao status de
EXACT. Caso EXACT esteja ON, o elemento de vetor destino deve ser exatamente
igual ao resultado de <ProcuraExp> para que haja correspondência.
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Array Retorna uma referência ao array aDestino.
Descrição
ASIZE() é uma função de tratamento de vetor que muda o valor real do vetor
<aDestino>. O vetor é diminuido ou aumentado para corresponder ao tamanho
especificado. Caso o vetor seja diminuido, os elementos no final do vetor sao perdidos.
Se o vetor for aumentado, novos elementos sao adicionados ao final do vetor e a eles
atribuido NIL.
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Array ASORT() retorna uma referência ao vetor <aDestino>.
Descrição
ASORT() é uma funçao de vetor que coloca em ordem todo ou parte de um vetor que
contém elementos de um único tipo de dados. Os tipos de dados que podem ser
ordenados incluem caractere, data, lógico e numérico.
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Array com nome das impressoras disponíveis. Vale lembrar que esta
Array
função não verifica o status atual da(s) impressora(s) encontrada(s).
Descrição
Caso não seja encontrada nenhuma impressora , é retornado um array com 1 elemento ,
contendo a String "Nenhuma Impressora Disponivel".
Abrangência
Versão 5.07 Versão 5.08 Versão 6.09 Versão 7.10 Versão 8.11
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Array Array com as portas de impressão disponíveis.
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
cJobName corresponde ào nome do job que configura a working Thread
atual em uso. Caso a chamada da função seja realizada a partir de uma
Caracter thread que não seja uma Working Thread ( como por exemplo , uma thread
iniciada a partir de um ApxRemote ) , a função GetWebJob() retornará
uma string vazia ("").
Descrição
Observação : Esta função está disponível a partir dos Build's Ap6 gerados a partir
de 05/09/2002.
HTTPCACHE
Revisão: 16/09/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Esta função retorna a definição atualmente utilizada para a etiqueta Cache-
Caracter
Control do Header HTTP.
Descrição
Abrangência
Sintaxe
Retorno
Tipo Descrição
nCount corresponde ao número de usuários que possuem variáveis de
Numérico
session em uso no Server PRotheus.
Descrição
Esta função retorna o número de Sessions de usuários que estão atualmente em uso na
memória.
** ATENÇÃO : Devemos atentar ao fato que esta função apenas terá o efeito
desejado caso o ambiente atual em uso pelo Projeto WEB seja WEBEX ( Web
Extended ) **
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) Esta função sempre retorna NIL
Descrição
** ATENÇÃO : Devemos atentar ao fato que esta função apenas terá o efeito
desejado caso o ambiente atual em uso pelo Projeto WEB seja WEBEX ( Web
Extended ) **
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caracter String Html correspondendo ao documento solicitado.
Descrição
Observações :
--- Na passagem de parâmtros GET , devemos atentar ao formato da string a ser passada
como parâmetros , pois a mesma segue o formato URI (Uniform Resource Identifiers) :
Query Component.
--- Caso nao seja retornado o documento antes do término do Time-out especificado na
chamada da função; ou caso não seja possível localizar o servidor ; seja por falha de
resolução de DNS , ou por erro de sintaxe ao especificar a URL , a função retornará
Nulo (NIL).
--- Caso nao seja possível o acesso ao documento , como por exemplo o documento não
exista , será retornado uma string html com a mensagem de erro html enviada pelo
servidor correspondente.
OBSERVACAO : Esta funcão está disponivel apenas em Builds Ap6 gerados a partir de
10/07/2002
HTTPLEAVESESSION
Revisão: 25/08/2002
Abrangência
Sintaxe
Retorno
Tipo Descrição
(NULO) A função HttpLeaveSession() sempre retorna NIL
Descrição
** ATENÇÃO : Devemos atentar ao fato que esta função apenas terá o efeito
desejado caso o ambiente atual em uso pelo Projeto WEB seja WEBEX ( Web
Extended ) **
Abrangência
Sintaxe
Retorno
Tipo Descrição
String contendo o login do usuário, no formato DOMINIO\login. Caso a
função não seja executada em uma thread iniciada em uma interface http ,
Caracter
ou o acesso anônimo ào site no IIS esteja habilitado , a função retornará
uma string em branco ("").
Descrição
Abrangência
Versão 7.10
Sintaxe
Retorno
Tipo Descrição
cContent é a string correspondendo ao conteúdo do corpo do pacote
Caracter
HTML postado no Server.
Descrição
Caso a requisição não tenha sido realizada por um client HTTP através do método de
postagem , ou a postagem já possua tratamento nativo no Server Protheus , ou a função
seja chamada em um ambiente que não esteja atendendo à uma requisição Http ( como
um JOB , por exemplo) , a função retornará uma string em branco ("").
HTTPPOST
Revisão: 07/08/2003
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Através de cHtml será retornada a String Html correspondendo ao
Caracter
documento solicitado.
Descrição
ATENÇÃO
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
A função HttpPragma retornará a definição anterior de PRAGMA
Caracter
utilizada.
Descrição
Abrangência
Versão 7.10
Sintaxe
Retorno
Tipo Descrição
cCtDisp corresponde ào conteudo do identificador Content-disposition ,
Caracter recebido quando um Web Browser realiza uma requisição via HTTP ao
servidor.
Descrição
Caso a requisição tenha sido realizada por um client HTTP que não enviou este
identificador no Header HTTP , ou a função seja chamada em um ambiente que não
esteja atendendo à uma requisição Http ( como um JOB , por exemplo) , a função
retornará uma String em branco ("").
HTTPRCTLEN
Revisão: 10/09/2002
Abrangência
Versão 7.10
Sintaxe
Retorno
Tipo Descrição
nCtLen corresponde ào conteudo do identificador Content-length ,
Numérico recebido quando um Web Browser realiza uma requisição via HTTP ao
servidor.
Descrição
Caso a requisição tenha sido realizada por um client HTTP que não enviou este
identificador no Header HTTP , ou a função seja chamada em um ambiente que não
esteja atendendo à uma requisição Http ( como um JOB , por exemplo) , a função
retornará 0 ( Zero ) .
HTTPRCTTYPE
Revisão: 10/09/2002
Abrangência
Versão 7.10
Sintaxe
Retorno
Tipo Descrição
cCtType corresponde ào conteudo do identificador Content-type , recebido
Caracter
quando um Web Browser realiza uma requisição via HTTP ao servidor.
Descrição
Caso a requisição tenha sido realizada por um client HTTP que não enviou este
identificador no Header HTTP , ou a função seja chamada em um ambiente que não
esteja atendendo à uma requisição Http ( como um JOB , por exemplo) , a função
retornará uma String em branco ("").
HTTPSEND
Revisão: 10/09/2002
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
Caso a função obtenha sucesso em enviar a String cHtmlStr para o Browse
solicitante , o retorno será uma string vazia ("").
Caracter Caso não seja possível o envio da string , devido ào recurso de envio
simultâneo estar desabilitado ; ou ocorra uma falha de comunicação, ou a
função HttpSend() seja executada a partir de uam thread que não uma
Working Thread , a função irá retornar a string passada como parâmetro.
Descrição
Através desta função, é possivel retornar uma string Html à um browser durante o
processamento de uma requisição realizada através de um link .APW , utilizando
Working Threads , durante o processamento da mesma.
Abrangência
Sintaxe
Parâmetros
Retorno
Tipo Descrição
(NULO) Esta função sempre retorna NIL
Descrição
Abrangência
Versão 7.10
Sintaxe
Retorno
Tipo Descrição
cSoapAction corresponde ào conteudo do identificador soapaction ,
Caracter recebido quando um Web Browser realiza uma requisição via HTTP ao
servidor.
Descrição
Caso a requisição tenha sido realizada por um client HTTP que não enviou este
identificador no Header HTTP , ou a função seja chamada em um ambiente que não
esteja atendendo à uma requisição Http ( como um JOB , por exemplo) , a função
retornará uma string em branco ("").