Advpl - Funcoes

download Advpl - Funcoes

of 151

Transcript of Advpl - Funcoes

Funes Genricas EVALReviso: 16/07/2002 Abrangncia Verso 5.07 Sintaxe EVAL ( < bBloco > , [ ] ) --> UltValorBloco Parmetros Argumento bBloco Tipo Descrio Code-Block o bloco de cdigo a ser avaliado. uma lista de argumentos a ser (Qualquer) enviada ao bloco de cdigo antes que ele seja avaliado. Retorno Tipo (Qualquer) Descrio EVAL() uma funao de tratamento de blocos de cdigo. Ela o dispositivo mais bsico no sistema Advpl para avaliar blocos de cdigo. Um bloco de cdigo um valor de dados especiais que se refere a uma parte do cdigo de programa compilado. Para maiores informaoes sobre blocos de cdigo, consulte o captulo Conceitos Bsicos neste livro. Para executar ou avaliar um bloco de cdigo, voc pode chamar EVAL() com o valor de bloco e quaisquer parmetros. Os parmetros sao Fornecidos ao bloco quando ele executado. Blocos de cdigo podem ser uma srie de expressoes separadas por vrgulas. Quando um bloco de cdigo avaliado, o valor retornado o valor da ltima expressao no bloco. Um bloco de cdigo geralmente compilado em tempo de compilaao pelo compilador do Advpl. Existem, porm, ocasioes em tempo de execuao quando pode ser necessrio que voc compile um bloco de cdigo a partir de uma cadeia de caracteres. Isto pode ser feito utilizando-se o operador macro (&). EVAL() frequentemente utilizado para criar funoes iterator. Estas funoes aplicam um bloco para cada membro de uma estrutura de dados. AEVAL(), ASORT(), ASCAN(), e DBEVAL() sao funoes iterator. AEVAL(), por exemplo, aplica um bloco para cada elemento dentro de um vetor. Descrio EVAL() retorna o valor da ltima expressao dentro do bloco. Um bloco de cdigo pode retornar um valor de qualquer tipo. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

GETREMOTETYPEReviso: 19/11/2004 Abrangncia Verso 8.11 Sintaxe GETREMOTETYPE ( ) --> nRmtType Retorno Tipo Numrico Descrio Atravs da funo GetRemoteType(), possvel identificar sob qual interface o programa atual est em execuo. Esta funo est disponvel a partir do Protheus 8, Build 7.00.040308a Pode-se utilizar as constantes abaixo, para avaliar o retorno da funo. NO_REMOTE REMOTE_QT_WIN32 REMOTE_QT_LINUX -1 // Job, Web ou Working Thread ( Sem remote ) 1 // Remote em ambiente Windows 2 // Remote em ambiente Unix/Linux Descrio nRmtType corresponde o nmero correspondente interface utilizada.

ISSRVUNIXReviso: 12/06/2003 Abrangncia Verso 6.09 Sintaxe ISSRVUNIX ( ) --> lisUnix Retorno Tipo Lgico Descrio Informa se o servidor Advanced Protheus est sendo executado em ambiente UNIX ou Linux. Descrio Se .T. o servidor est sendo executado em ambiente Unix(r) ou Linux(r) Se .F. o servidor est sendo executado em ambiente Windows(r) Verso 7.10

MSCRC32Reviso: 03/07/2003 Abrangncia Verso 5.07 Sintaxe MSCRC32 ( < cString > ) --> nCRC Parmetros Argumento cString Tipo Descrio String de onde ser calculado um CRC32, garantido que para a mesma string sempre se obter um mesmo nmero, Caracter porm, no garantido que para strings diferentes, os nmeros sejam sempre diferentes. Verso 5.08 Verso 6.09 Verso 7.10 Verso 8.11

Retorno Tipo Numrico Descrio Calcula um CRC de uma string. A funo MSCRC32() calcula um CRC de uma string informada e retorna um nmero com esse clculo. Note que strings iguais retornam CRC iguais, porm, nem sempre strings diferentes retornam CRC diferentes. Descrio Um nmero inteiro , com at 10 (dez) dgitos , correspondente ao CRC da string informada como parmetro.

MSCRC32STRReviso: 02/07/2003 Abrangncia Verso 5.07 Sintaxe MSCRC32STR ( < cString > ) --> cCRC32 Parmetros Argumento cString Tipo Descrio String a partir da qual ser calculado o CRC32. garantido que para a mesma string sempre ser obtido um mesmo Caracter CRC , mas no garantido que para strings diferentes os CRCs sejam sempre diferentes. Verso 5.08 Verso 6.09 Verso 7.10 Verso 8.11

Retorno Tipo Caracter Descrio MSCRC32STR() calcula um CRC de uma string informada , retornando uma string com esse clculo. Note que strings iguais retornam CRC iguais, porm nem sempre strings diferentes retornam CRC diferentes. Descrio Uma string com o CRC da string informada.

RANDOMIZEReviso: 11/12/2003 Abrangncia Verso 6.09 Sintaxe RANDOMIZE ( < nMinimo > , < nMaximo > ) --> nAleatorio Parmetros Argumento nMinimo nMaximo Retorno Tipo Numrico Descrio Atravs da funo randomize() , geramos um numero inteiro aleatrio, compreendido entre a faixa inferior e superior recebida atravs dos parmetros nMinimo e nMaximo, respectivamente. Observao : O limite inferior recebido atravs do parmetro nMinimo "maior ou igual a ", podendo ser sorteado e fazer parte do retorno; porm o limite superior "menor que", de modo a nunca ser atingido ou devolvido no resultado. Por exemplo , a chamada da funo randomize(1,2) sempre retornar 1 . Descrio Numero randmico , compreendido no intervalo entre (nMinimo) e (nMaximo-1) : O numero gerado pode ser maior ou igual nMinimo e menor ou igual a nMaximo-1 . Tipo Descrio Numrico Corresponde ao menor numero a ser gerado pela funo. Corresponde ao maior nmero ( menos um ) a ser gerado Numrico pela funo. Verso 7.10

SENDTOFOREReviso: 14/07/2003 Abrangncia Verso 5.07 Sintaxe SENDTOFORE ( ) --> Nil Retorno Tipo (NULO) Descrio Esta funo torna a aplicao do Remote foreground na estao em que est sendo executado. Faz com que a janela ativa do Remote fique acima de todas as janelas de outras aplicaes executadas na estao. Extremamente dependente do sistema operacional em uso, as vezes pode falhar devido ao sistema operacional no suportar o comando ou devido a carga excessiva do sistema, o sistema operacional pode ignorar o comando. Descrio Esta funo no retorna valor Verso 5.08 Verso 6.09 Verso 7.10 Verso 8.11

XMLERRORReviso: 16/07/2002 Abrangncia Verso 6.09 Sintaxe XMLERROR ( ) --> nXmlStatus Retorno Tipo Caracter Descrio A funcao XmlError() retorna um status da execuo da ultima rotina de criao de Objeto XML realizada pelo comando CREATE oXML. Podemos utilizar-nos das constantes definidas no arquivo #INCLUDE "XmlxFun.CH" para realizar o tratamento de erro. Vide tabelas de constantes abaixo : ---------------------------------------Constante Valor ---------------------------------------XERROR_ONLYFIRSTNODE -1 XERROR_SUCCESS 0 XERROR_FILE_NOT_FOUND 1 XERROR_OPEN_ERROR 2 XERROR_INVALID_XML 3 ---------------------------------------Descrio Retorna o status da ultima operao de Criao de Objeto XML realizado pelo comando CREATE oXml ... Verso 7.10

Funes de Banco de Dados ALIASReviso: 25/07/2002 Abrangncia Verso 5.07 Sintaxe ALIAS ( [ nAreaTrabalho ] ) --> cAlias Parmetros Argumento nAreaTrabalho Retorno Tipo Caracter Descrio ALIAS() retorna o alias da rea de trabalho especificada na forma de uma cadeia de caracteres, em letra maiscula. Caso nao seja 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 (""). Tipo Descrio o nmero da rea de trabalho a ser Numrico verificada. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Descrio ALIAS() uma funao 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 atravs da clusula ALIAS do comando USE. ALIAS() o inverso da funao SELECT(). ALIAS() retorna o alias atravs do nmero da rea de trabalho, e SELECT() retorna o nmero da rea de trabalho atravs do alias.

BTVCANOPENReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe BTVCANOPEN ( < cNome > , [ cIndice ] ) --> lRet Parmetros Argumento cNome cIndice Retorno Tipo (NULO) Descrio Retorna falso se no foi possvel abrir a tabela a ser testada. Principais motivos: No existe o arquivo da tabela ou do ndice fisicamente; ou as definies da tabela ou ndice em questo no foram encontradas. Retorna verdadeiro se a tabela testada pode ser aberta. Tipo Descrio Caracter Nome da tabela a ser testada. Caracter Nome do arquivo de ndice da tabela a ser testada. Verso 5.08 Verso 6.09 Verso 7.10

Descrio BTVCONOPEN() uma funo que verifica se a tabela definida pelo parmetro cNome pode ser aberta e, se existir, o parmetro cIndice verifica, tambm, se o ndice pode ser aberto. Para tanto, testado se os arquivos envolvidos existem fisicamente, caso afirmativo, verificado se as definies envolvidas so encontradas nos arquivos do DDF's. Exemplo // Este exemplo demonstra o uso tpico de BTVCanOpen(). Se no falhar, a tabela e o ndice testados sero abertos. Se falhar, uma mensagem apresentada. IF !BTVCanOpen("\dadosadv\aa1990.dat","\dadosadv\ind1.ind") Messagebox("No possvel abrir a tabela testada","Erro", 0) ELSE Use "\dadosadv\aa1990.dat" SHARED NEW OrdListAdd("\dadosadv\ind1.ind") ENDIF

BTVCREATEDDFSReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe BTVCREATEDDFS ( < aTabelas > , < cDiretorio > ) --> lRet Parmetros Argumento aTabelas cDiretorio Retorno Tipo Descrio Retorna falso se no conseguiu gerar os novos arquivos de definio. Principais erros: RDD no Btrieve; diretrio no est dentro do Protheus; no pode carregar as informaes de definio ou no pode gravar os novos arquivos de definio. Retorna verdadeiro se a transformao de definies ocorrida com sucesso. Descrio BTVCREATEDDFS() uma funo que transforma as informaes armazenadas nos arquivos DDF's para o padro utilizado por outras ferramentas, principalmente para gerao de relatrios. Sendo que podem ser selecionadas apenas as tabelas de interesse atravs do parmetro aTabelas. Ex: aTabelas := {{"AA3990", "C:\DADOS"},{"AA4990","C:\DADOS1"}, {"AA5990"}} Se o diretrio no for especificado, ser utilizado o diretrio definido no arquivo FILE.BTV. Os novos arquivos de definio, FILE.DDF, FIELD.DDF e INDEX.DDF, so gerados no diretrio especificado pelo parmetro cDiretrio, se ele for omitido, sero gerados no mesmo diretrio dos SXs. Exemplo: // Este exemplo demonstra o uso tpico de BTVCreateDDFs(). Se no falhar, sero gerados os novos arquivos de definio. Se falhar, uma mensagem apresentada. b:= {{"AA3990"}, {"SA1990", "c:\protheus507\dadosadv"}} Tipo Array Descrio Nomes das tabelas e os respectivos diretrios. Nome do diretrio (abaixo do root) onde sero criados os Caracter novos DDF's. Verso 5.08 Verso 6.09 Verso 7.10

(NULO)

IF !BTVCreateDDFs(b,"\temp") Messagebox("No foi possvel montar o array com os nomes das tabelas","Erro", 0) ENDIF

BTVDROPIDXSReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe BTVDROPIDXS ( ) --> lRet Retorno Tipo Lgico Descrio Retorna Falso se no conseguiu apagar os ndices. Principais erros: RDD no Btrieve, no achou as definies no DDF, o arquivo no est exclusivo; Retorna Verdadeiro se a deleo de ndices ocorrida com sucesso; Verso 5.08 Verso 6.09 Verso 7.10

Descrio BTVDropIdxs() apaga os ndices da tabela corrente, com exceo do ndice interno, apenas se o mesmo for Btrieve e estiver aberto exclusivo. Para tanto ela executa os seguintes passos: - Fecha todos os ndices; - Apaga as definies dos ndices nos arquivos do diretrio DDF; - Apaga os ndices do arquivo da tabela corrente. Todos os ndices criados de forma permanente ficam guardados na estrutura da tabela. Quando a tabela for aberta, todos os ndices criados de forma permanente e o ndice interno sero abertos tambm. Por isso, recomendada a criao de ndices de forma temporria. Exemplo: // Este exemplo demonstra o uso tpico de BTVDropIdxs(). Se no falhar, os ndices so apagados e o processo continua. Se falhar, uma mensagem apresentada. USE Clientes SHARED NEW IF !BTVDropIdxs() Messagebox("No foi possvel deletar os ndices da tabela corrente","Erro", 0) ENDIF

BTVTABLESReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe BTVTABLES ( ) --> aTables Retorno Tipo Array Descrio Retorna NIL se no conseguiu montar o array. Principais erros: RDD no Btrieve ou no conseguiu recuperar as informaes corretamente do arquivo FILE.BTV do DDFs. Retorna um Array com a lista com os nomes das tabelas extradas do DDF. Verso 5.08 Verso 6.09 Verso 7.10

Descrio 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 definies. Exemplo: // Este exemplo demonstra o uso tpico de BTVTables(). Se no falhar, montado um array com os nomes das tabelas e esses nomes so mostrados no servidor. Se falhar, uma mensagem apresentada. a:= BTVTables() IF a=Nil Messagebox("No foi possvel montar o array com os nomes das tabelas","Erro", 0) ELSE FOR i:= 1 to LEN(a) ConOut(a[i]) NEXT ENDIF

CTREEDELIDXSReviso: 26/08/2003 Abrangncia Verso 5.07 Sintaxe CTREEDELIDXS ( ) --> lRet Retorno Tipo Lgico Descrio Retorna Falso se no conseguiu deletar os ndices. Principais erros: RDD no Ctree, no fechou a tabela, no apagou o arquivo de ndice ou no atualizou as informaes da tabela; no abriu a tabela novamente. Retorna Verdadeiro se a deleo de ndices ocorrida com sucesso. Verso 5.08 Verso 6.09 Verso 7.10

Descrio CtreeDelIdxs() apaga os ndices da tabela corrente, com exceo do ndice interno, apenas se o mesmo for CTree e estiver exclusiva. Para tanto, ela executa os seguintes passos: - Fecha os ndices abertos; - Fecha a tabela; - Deleta os arquivos de ndice fisicamente; - Atualiza as informaes da tabela, removendo os ndices de sua estrutura; - Abre novamente a tabela. Todos os ndices criados de forma permanente ficam guardados na estrutura da tabela. Portanto, no adianta deletar os arquivos de ndices, pois quando a tabela for aberta, todos os ndices criados de forma permanente e o ndice interno sero recriados fisicamente (se no existirem); caso contrrio, a tabela no ser aberta. Por isso, recomendada a criao de ndices de forma temporria. Importante: Aps a remoo dos ndices a tabela ser posicionada no primeiro registro. Exemplo: // Este exemplo demonstra o uso tpico de CtreeDelIdxs(). Se no falhar, os ndices so apagados e o processo continua. Se falhar, uma mensagem apresentada. USE Clientes SHARED NEW IF !CtreeDelIdxs() Messagebox('No foi possvel deletar os ndices da tabela corrente','Erro',0) ENDIF

CTREEDELINTReviso: 22/07/2003 Abrangncia Verso 5.07 Sintaxe CTREEDELINT ( < cNOME > ) --> lRet Parmetros Argumento cNOME Retorno Tipo Lgico Descrio Retorna Falso se no conseguiu deletar o ndice interno. Principais erros: tabela no est dentro do diretrio do Protheus, no abriu a tabela ou no deletou o arquivo de ndice interno. Retorna Verdadeiro se a deleo do ndice interno ocorrida com sucesso. Tipo Descrio Especifica o nome da tabela cujo ndice interno deve ser Caracter deletado. Verso 5.08 Verso 6.09 Verso 7.10

Descrio CTREEDELINT() apaga o ndice interno de tabela Ctree, estando a mesma fechada. Para tanto, so executados os seguintes procedimentos: - Abre a tabela especificada pelo parmetro cNome; - Verifica o nome do arquivo do ndice interno na tabela; - Fecha a tabela; - Deleta fisicamente o arquivo do ndice interno. A tabela deve ser apagada aps a chamada desta funo, pois a tabela CTree no pode ser aberta sem ndice interno. Exemplo: // Este exemplo demonstra o uso tpico de CtreeDelInt(). Sendo que a tabela '\dadosadv\sa1990.dtc' deve estar fechada. Se no falhar, o ndice interno apagado e o processo continua. Se falhar, uma mensagem apresentada. IF !CtreeDelInt('\dadosadv\sa1990.dtc') Messagebox('No foi possvel deletar o ndice da tabela','Erro', 0) ENDIF fErase('\dadosadv\sa1990.dtc')

DBAPPENDReviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBAPPEND ( [ lLiberaBloqueios ] ) --> uRet Parmetros Argumento lLiberaBloqueios Retorno Tipo (NULO) Descrio DBAPPEND() acrescenta mais um registro em branco no final da tabela corrente. Se no houver erro da RDD, o registro acrescentado e bloqueado. Descrio Retorno nulo. Tipo Descrio Se o valor for .T., libera todos os registros bloqueados Lgico anteriormente (locks). Se for .F., todos os bloqueios anteriores so mantidos. Valor default: .T. Verso 5.08 Verso 6.09 Verso 7.10

DBCLEARALLFILTERReviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLEARALLFILTER ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLEARALLFILTER() salva as atualizaes realizadas e pendentes de todas as tabelas e depois limpa as condies de filtro de todas as tabelas. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLEARALLFILTERReviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLEARALLFILTER ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLEARALLFILTER() salva as atualizaes realizadas e pendentes de todas as tabelas e depois limpa as condies de filtro de todas as tabelas. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLEARFILTERReviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLEARFILTER ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLEARFILTER() salva as atualizaes realizadas e pendentes na tabela corrente e depois limpa todas as condies de filtro da ordem ativa no momento. Seu funcionamento oposto ao comando SET FILTER. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLEARINDEXReviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLEARINDEX ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLEARINDEX() salva as atualizaes pendentes na tabela corrente e fecha todos os arquivos de ndice da rea de trabalho. Por conseqncia, limpa todas as ordens da lista. Seu funcionamento oposto ao comando SET INDEX. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLOSEALLReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCLOSEALL ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLOSEALL() salva as atualizaes pendentes, libera todos os registros bloqueados e fecha todas as tabelas abertas (reas de trabalho) como se chamasse DBCLOSEAREA para cada rea de trabalho. 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 Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCLOSEAREAReviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBCLOSEAREA ( ) --> uRet Retorno Tipo (NULO) Descrio DBCLOSEAREA() salva as atualizaes pendentes na tabela corrente, libera todos os registros bloqueados e fecha a tabela corrente (rea de trabalho). Seu funcionamento semelhante ao comando CLOSE e oposto funo DBUSEAREA e ao comando USE. Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCOMMITReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCOMMIT ( ) --> uRet Retorno Tipo (NULO) Descrio DBCOMMIT() salva em disco todas as atualizaes pendentes na rea de trabalho corrente. Exemplo: // Este exemplo demonstra como se pode utilizar o DBCOMMIT para salvar todas as alteraes 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 alteraes realizadas na tabela Fornecedores Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCOMMITALLReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCOMMITALL ( ) --> uRet Retorno Tipo (NULO) Descrio DBCOMMITALL() salva em disco todas as atualizaes pendentes em todas as reas de trabalho. Exemplo: // Este exemplo demonstra como se pode utilizar o DBCOMMITALL para salvar todas as alteraes 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 alteraes realizadas nas tabelas Clientes e Fornecedores Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBCREATEReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCREATE ( < cNOME > , < aESTRUTURA > , [ @cDRIVER ] ) --> uRet Parmetros Argumento cNOME aESTRUTURA cDRIVER Retorno Tipo Caracter Descrio DBCREATE() utilizada para criar um novo arquivo de tabela cujo nome est especificado atravs do primeiro parmetro (cNome) e estrutura atravs do segundo (aEstrutura). A estrutura especificada atravs de um array com todos os campos, onde cada campo expresso atravs de um array contendo {Nome, Tipo, Tamanho, Decimais}, como visto no exemplo a seguir. Exemplo: // Este exemplo mostra como se pode criar novo arquivo de tabela atravs da funo 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 Descrio Nenhum Tipo Descrio Nome do arquivo da tabela a ser criada (abaixo do Caracter "RootPath"). Lista com as informaes dos campos para ser criada a Array tabela. Nome do RDD a ser utilizado para a criao da tabela. Se Caracter for omitido ser criada com o corrente. Verso 5.08 Verso 6.09 Verso 7.10

DBCREATEINDEXReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBCREATEINDEX ( < cNOME > , < cEXPCHAVE > , [ bEXPCHAVE ] , [ lUNICO ] ) --> uRet Parmetros Argumento cNOME cEXPCHAVE bEXPCHAVE lUNICO Retorno Tipo (NULO) Descrio DBCREATEINDEX() utilizada para criar um novo arquivo de ndice com o nome especificado atravs do primeiro parmetro, sendo que se o mesmo existir deletado e criado o novo. Para tanto so executados os passos a seguir: - Salva fisicamente as alteraes ocorridas na tabela corrente; - Fecha todos os arquivos de ndice abertos; - Cria o novo ndice; - Seta o novo ndice como a ordem corrente; - Posiciona a tabela corrente no primeiro registro do ndice. Com exceo do RDD Ctree, a tabela corrente no precisa estar aberta em modo exclusivo para a criao de ndice, pois na criao de ndices no Ctree alterada a estrutura da tabela, precisando para isto a tabela estar aberta em modo exclusivo. Exemplo: // Este exemplo mostra como se pode criar novo arquivo de ndice criando a ordem sobre os campos Nome e End e no aceitar duplicao: USE Cliente VIA "DBFCDX" NEW DBCREATEINDEX("\teste\ind2.cdx","Nome+End",{ || Nome+End },.T.) Descrio Nenhum Tipo Caracter Descrio Nome do arquivo de ndice a ser criado. Expresso das chaves do ndice a ser criado na forma de Caracter string. Expresso das chaves do ndice a ser criado na forma Code-Block executvel. Lgico Cria ndice como nico (o padro .F.). Verso 5.08 Verso 6.09 Verso 7.10

DBDELETEReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBDELETE ( ) --> uRet Retorno Tipo Caracter Descrio DBDELETE() marca o arquivo corrente como deletado. Para filtrar os arquivos marcados pode-se utilizar o comando SET DELETED e para delet-los fisicamente pode-se utilizar o comando PACK. Exemplo: // Este exemplo demonstra como se pode utilizar a funo 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 Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBEVALReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBEVAL ( < bBLOCO > , [ bFORCOND ] , [ bWHILECOND ] , [ nPROXREGS ] , [ nRECNO ] , [ lRESTANTE ] ) --> uRET Parmetros Argumento Descrio Expresso na forma executvel a ser resolvida para cada bBLOCO Code-Block registro processado. Expresso na forma executvel a ser resolvida para bFORCOND Code-Block verificar se o registro em questo est dentro do escopo definido. Expresso na forma executvel a ser resolvida para bWHILECOND Code-Block verificar at qual registro ser processado (at o bloco retornar .F.). Nmero de registros a ser processado a partir do registro nPROXREGS Numrico corrente. Identificao de determinado registro a ser resolvida a nRECNO Numrico expresso (recno). lRESTANTE Lgico Processa o restante dos registro. Retorno Tipo Caracter Descrio DBEVAL() utilizada para executar uma expresso definida pelo bloco de cdigo do primeiro parmetro para cada registro que est dentro do escopo definido atravs dos blocos de condio de "for" e "while". O nmero de registros a ser executado ser definido com o parmetro nProxRegs ou se setado o parmetro lRestante sero executados todos os registros a partir do registro corrente at o final da tabela corrente. Se for especificado o parmetro nRecno apenas o registro com o recno especificado ser processado. Se forem omitidos os blocos de "for" e "while", os mesmos sero considerados .T. como padro, esto assim todos os registros dentro Descrio Retorno nulo. Tipo Verso 5.08 Verso 6.09 Verso 7.10

do escopo. Se o parmetro lRestante for omitido a tabela inicia o processamento dos registros a partir do topo da tabela, caso contrrio sero processados os registros a partir do posicionamento corrente da tabela. Exemplo: // Este exemplo mostra como se pode usar o DBEVAL para contar quantos registros esto dentro do escopo especificado em toda a tabela, pois como o parmetro 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, sero processados registros com o Nome cuja ordem alfabtica 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 esto 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 varivel 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 dcimo 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.)

DBFReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBF ( ) --> cAlias Retorno Tipo Caracter Descrio DBF() verifica qual o Alias da rea de trabalho corrente. O Alias definido quando a tabela aberta atravs do parmetro correspondente (DBUSEAREA()). Esta funo o inverso da funo SELECT(), pois nesta retornado o nmero da rea de trabalho do Alias correspondente. Exemplo: // Este exemplo mostra como o DBF corrente pode ser mostrado para o usurio. dbUseArea( .T.,"dbfcdxads", "\dadosadv609\sa1990.dbf","SSS",.T., .F. ) MessageBox("O Alias corrente : "+DBF(),"Alias", 0) //Resultado: "O Alias corrente : SSS" Descrio Retorna o Alias corrente. Caso no exista Alias corrente retorna "" (String vazia). Verso 5.08 Verso 6.09 Verso 7.10

DBFIELDINFOReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBFIELDINFO ( < nINFOTIPO > , < nCAMPO > ) --> xINFO Parmetros Argumento nINFOTIPO nCAMPO Retorno Tipo (Qualquer) Descrio Retorna NIL se no h tabela corrente ou a posio do campo especificado est invlida. Informao do campo Informao requisitada pelo usurio (pode ser de tipo numrico se for tamanho ou casas decimais, tipo caracter se for nome ou tipo). Tipo Descrio Tipo de informao a ser verificada (DBS_DEC, Numrico DBS_LEN e DBS_TYPE). Numrico Posio do campo a ser verificado. Verso 5.08 Verso 6.09 Verso 7.10

Descrio DBFIELDINFO() utilizada para obter informaes sobre determinado campo da tabela corrente. O tipo de informao (primeiro argumento) escolhido de acordo com as constantes abaixo: DBS_DEC - Nmero de casas decimais (tipo numrico) DBS_LEN - Tamanho (tipo numrico) DBS_TYPE - Tipo (tipo caracter) A posio do campo no leva em considerao os campos internos do Protheus (recno e deleted). Exemplo: // Este exemplo demonstra como se pode utilizar o DBFIELDINFO para obter as informaes do primeiro campo da tabela Clientes. USE Clientes NEW DBFIELDINFO(DBS_NAME,1) // Retorno: Nome DBFIELDINFO(DBS_TYPE,1) // Retorno: C DBFIELDINFO(DBS_LEN,1) // Retorno: 10 DBFIELDINFO(DBS_DEC,1) // Retorno: 0

DBFILTERReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBFILTER ( ) --> cEXPFILTRO Retorno Tipo Caracter Descrio DBFILTER() utilizada para verificar a expresso de filtro ativo na rea de trabalho corrente. Exemplo: // Este exemplo demonstra como se pode utilizar o DBFILTER para verificar a expresso 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 Descrio Retorna a expresso do filtro ativo na rea de trabalho atual. Caso no exista filtro ativo retorna "" (String vazia). Verso 5.08 Verso 6.09 Verso 7.10

DBGOBOTTOMReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBGOBOTTOM ( ) --> uRET Retorno Tipo (NULO) Descrio DBGOBOTTOM() utilizada para posicionar a tabela corrente no ltimo registro lgico. A seqncia lgica depende da ordem e do filtro ativo sobre a tabela corrente, portanto o ltimo registro lgico pode no ser o ltimo registro fsico. Exemplo: // Este exemplo demonstra como se pode utilizar o DBGOBOTTOM para posicionar no ltimo registro fsico. USE Cliente DBGOBOTTOM() // Posiciona no ltimo registro fsico, pois no h ordem ativa // Este exemplo demonstra como se pode utilizar o DBGOBOTTOM para posicionar no ltimo registro lgico. USE Cliente INDEX Ind1 NEW DBGOBOTTOM() // Posiciona no ltimo registro lgico (ltimo registro na seqncia gerada pelo ndice) Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBGOTOPReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBGOTOP ( ) --> uRET Retorno Tipo (NULO) Descrio DBGOTOP() utilizada para posicionar a tabela corrente no primeiro registro lgico. A seqncia lgica depende da ordem e do filtro ativo sobre a tabela corrente, portanto o primeiro registro lgico pode no ser o primeiro registro fsico. Exemplo: // Este exemplo demonstra como se pode utilizar o DBGOBOTOP para posicionar no primeiro registro fsico. USE Cliente DBGOTOP() // Posiciona no primeiro registro fsico, pois no h ordem ativa // Este exemplo demonstra como se pode utilizar o DBGOTOP para posicionar no primeiro registro lgico. USE Cliente INDEX Ind1 NEW DBGOTOP() // Posiciona no primeiro registro lgico (primeiro registro na segncia gerada pelo ndice) Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBGOTOReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBGOTO ( ) --> uRET Retorno Tipo (NULO) Descrio DBGOTO() utilizado para posicionar a tabela corrente em determinado registro, segundo a ordem fsica (seqncia sobre o recno). 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 Descrio Retorno nulo. Verso 5.08 Verso 6.09 Verso 7.10

DBINFOReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBINFO ( < nINFOTIPO > ) --> xINFO Parmetros Argumento nINFOTIPO Retorno Tipo (Qualquer) Descrio DBINFO() utilizada para obter informaes sobre a tabela corrente. O tipo de informao (primeiro argumento) escolhido de acordo com as constantes abaixo: DBI_GETRECSIZE - Tamanho do registro em nmero de bytes similar a RECSIZE (tipo numrico) DBI_TABLEEXT - Extenso do arquivo da tabela corrente (tipo caracter) DBI_FULLPATH - Nome da tabela corrente com caminho completo (tipo caracter) DBI_BOF - Verifica se est posicionada no incio da tabela similar a BOF (tipo lgico) DBI_EOF - Verifica se est posicionada no final da tabela similar a EOF (tipo lgico) DBI_FOUND - Verifica se a tabela est posicionada aps uma pesquisa similar a FOUND (tipo lgico) DBI_FCOUNT - Nmero de campos na estrutura da tabela corrente similar a FCOUNT (tipo numrico) DBI_ALIAS - Nome do Alias da rea de trabalho corrente similar a ALIAS (tipo caracter) DBI_LASTUPDATE - Verifica a data da ltima modificao similar a LUPDATE (tipo data) Exemplo: // Este exemplo demonstra como se pode utilizar o DBINFO para obter as informaes da tabela corrente (Clientes). USE Clientes NEW Descrio Informao da Tabela Informao requisitada pelo usurio (o tipo depende da informao requisitada). Se no houver tabela corrente retorna NIL. Tipo Descrio Numrico Tipo de informao a ser verificada. Verso 5.08 Verso 6.09 Verso 7.10

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.

DBORDERINFOReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBORDERINFO ( < nINFOTIPO > ) --> xINFO Parmetros Argumento nINFOTIPO Retorno Tipo Caracter Descrio Retorna a informao da Ordem requisitada pelo usurio (pode ser de tipo numrico se for nmero de ordens no ndice, tipo caracter se for nome do arquivo de ndice). Caso no exista ordem corrente ou a posio da ordem especificada est invlida retorna NIL. Tipo Descrio Numrico Nome do arquivo de ndice. Verso 5.08 Verso 6.09 Verso 7.10

Descrio DBORDERINFO() utilizada para obter informaes sobre determinada ordem. A especificao da ordem pode ser realizada atravs de seu nome ou sua posio dentro da lista de ordens, mas se ela no for especificada sero obtidas informaes da ordem corrente. O tipo de informao (primeiro argumento) escolhido de acordo com as constantes abaixo: DBOI_BAGNAME - Nome do arquivo de ndice ao qual a ordem pertence (tipo caracter). DBOI_FULLPATH - Nome do arquivo de ndice (com seu diretrio) ao qual a ordem pertence (tipo caracter) DBOI_ORDERCOUNT - Nmero de ordens existentes no arquivo de ndice especificado Exemplo: // Este exemplo demonstra como se pode utilizar o DBORDERINFO para obter informaes sobre o nome do arquivo de ndice da ordem corrente. DBORDERINFO(DBOI_BAGNAME) // retorna: Ind DBORDERINFO(DBOI_FULLPATH) // retorna: C:\AP6\Teste\Ind.cdx

DBORDERNICKNAMEReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBORDERNICKNAME ( < cAPELIDO > ) --> lRET Parmetros Argumento cAPELIDO Retorno Tipo Lgico Descrio DBORDERNICKNAME() utilizada para selecionar a ordem ativa atravs de seu apelido. Esta ordem a responsvel seqncia lgica dos registros da tabela corrente. 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 no encontrado","Erro", 0) ENDIF Descrio Retorna Falso se no conseguiu tornar a ordem ativa. Principais erros: No existe tabela ativa ou no foi encontrada a ordem com o apelido. Retorna Verdadeiro se a ordem foi setada com sucesso. Tipo Descrio Caracter Nome do apelido da ordem a ser setada. Verso 5.08 Verso 6.09 Verso 7.10

DBRECALLReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRECALL ( ) --> uRET Retorno Tipo (NULO) Descrio DBRECALL() utilizada para retirar a marca de registro deletado do registro atual. Para ser executada o registro atual deve estar bloqueado ou a tabela deve estar aberta em modo exclusivo. Se o registro atual no estiver deletado, esta funo no faz nada. Ela o oposto da funo DBDELETE que marca o registro atual como deletado. 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 delees da tabela corrente. USE Cliente DBGOTOP() WHILE !EOF() DBRECALL() DBSKIP() ENDDO Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBRECORDINFOReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRECORDINFO ( < nINFOTIPO > , [ nREGISTRO ] ) --> xINFO Parmetros Argumento nINFOTIPO nREGISTRO Retorno Tipo (Qualquer) Descrio DBRECORDINFO() utilizada para obter informaes sobre o registro especificado pelo segundo argumento (recno) da tabela corrente, se esta informao for omitida ser verificado o registro corrente. O tipo de informao (primeiro argumento) escolhido de acordo com as constantes abaixo: DBRI_DELETED - Estado de deletado similar a DELETED (tipo lgico) DBRI_RECSIZE - Tamanho do registro similar a RECSIZE (tipo numrico) DBRI_UPDATED - Verifica se o registro foi alterado e ainda no foi atualizado fisicamente similar a UPDATED (tipo lgico) Exemplo: // Este exemplo demonstra como se pode utilizar o DBRECORDINFO para se obter as informaes 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 Descrio No h tabela corrente ou registro invlido. Informao do Registro. Informao requisitada pelo usurio (o tipo depende da informao requisitada). Tipo Descrio Numrico Tipo de informao a ser verificada. Numrico Nmero do registro a ser verificado. Verso 5.08 Verso 6.09 Verso 7.10

NOME := "JOAO" DBGOTO(200) DBRECORDINFO(DBRI_UPDATED) // Retorno: .F. DBRECORDINFO(DBRI_UPDATED,100) // Retorno: .T.

DBREINDEXReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBREINDEX ( ) --> uRET Retorno Tipo (NULO) Descrio DBREINDEX() reconstri todos os ndices da rea de trabalho corrente e posiciona as tabelas no primeiro registro lgico. 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() Descrio Nenhum Verso 5.08 Verso 6.09 Verso 7.10

DBRLOCKReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRLOCK ( [ nREGISTRO ] ) --> lRET Parmetros Argumento nREGISTRO Retorno Tipo Lgico Descrio DBRLOCK() utilizada quando se tem uma tabela aberta e compartilhada e se deseja bloquear um registro para que outros usurios no possam alter-lo. Se a tabela j est aberta em modo exclusivo, a funo no altera seu estado. O usurio pode escolher o registro a ser bloqueado atravs do parmetro (recno), mas se este for omitido ser bloqueado o registro corrente como na funo RLOCK(). Esta funo o oposto DBRUNLOCK, que libera registros bloqueados. Exemplo // Este exemplo mostra duas variaes 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 nmero 110 Descrio Retorna Falso se no conseguiu bloquear o registro. Principal motivo: o registro j foi bloqueado por outro usurio. Retorna Verdadeiro se o registro foi bloqueado com sucesso Tipo Descrio Numrico Nmero do registro a ser bloqueado. Verso 5.08 Verso 6.09 Verso 7.10

DBRLOCKLISTReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRLOCKLIST ( ) --> aRET Retorno Tipo Array Descrio DBRLOCKLIST() utilizada para verificar quais registros esto locados na tabela corrente. Para tanto, retornada uma tabela unidimensional com os nmeros dos registros. Exemplo: // Este exemplo mostra como utilizada a funo DBRLOCKLIST para verificar quais registros esto 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 nmero 110 DBRLOCK(100) // Bloqueia o registro de nmero 100 DBRLOCKLIST() // Retorna: {1,100,110} Descrio Retorna NIL se no existe tabela corrente ou no existe nenhum registro locado. Retorna a lista com os recnos dos registros locados na tabela corrente. Verso 5.08 Verso 6.09 Verso 7.10

DBRUNLOCKReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBRUNLOCK ( [ nREGISTRO ] ) --> uRET Parmetros Argumento nREGISTRO Retorno Tipo (NULO) Descrio DBRUNLOCK() utilizada para liberar determinado registro bloqueado. O usurio pode escolher o registro a ser desbloqueado atravs do parmetro (recno), mas se este for omitido ser desbloqueado o registro corrente como na funo DBUNLOCK(). Esta funo o oposto DBRLOCK, que bloquea os registros. Exemplo: // Este exemplo mostra duas variaes 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 nmero 110 Descrio Sem retorno. Tipo Descrio Numrico Nmero do registro a ser desbloqueado. Verso 5.08 Verso 6.09 Verso 7.10

DBSEEKReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSEEK ( < xEXP > , [ lSOFTSEEK ] , [ lULTIMO ] ) --> lRET Parmetros Argumento xEXP lSOFTSEEK lULTIMO Retorno Tipo Lgico Descrio DBSEEK() utilizada para encontrar um registro com determinado valor da expresso de chave de ndice. Antes da chamada do DBSEEK deve-se certificar de que existe uma ordem ativa no momento com os campos que se deseja pesquisar o valor. Se a expresso possuir apenas uma campo numrico, o primeiro parmetro deve ser do tipo numrico, mas nos demais casos deve-se utilizar um valor do tipo caracter para este parmetro (mesmo se forem apenas dois campos numricos ou do tipo data). Quando o segundo parmetro for especificado como .T. (softseek), mesmo que a expresso pesquisada no encontrar nenhum registro com este valor, a tabela ser posicionada no prximo valor maior que o especificado no primeiro parmetro, mas mesmo posicionando no prximo valor esta funo retornar .F. (pois no encontrou). Quando no for especificado este valor ou estiver .F. e falhar o valor de pesquisa, a tabela ser posicionada em LASTREC + 1 e ser setada a flag de EOF. Se o terceiro parmetro for especificado com valor .T. a funo posiciona a tabela no Descrio Retorna Falso se no foi encontrado nenhum registro com o valor especificado. Retorna Verdadeiro se foi encontrado um registro com o valor especificado Tipo Descrio Valor de chave a ser encontrado do tipo caracter (todos os (Qualquer) tipos de expresso de ndice com exceo do ndice com apenas um campo do tipo numrico). Posiciona no primeiro registro com expresso de chave Lgico maior que o valor procurado. O padro .F. Procura a ltima ocorrncia do valor procurado. O padro Lgico .F. Verso 5.08 Verso 6.09 Verso 7.10

ltimo registro com o valor procurado, caso no seja especificado ou for .F., ser posicionada na primeira ocorrncia. Exemplo: // Este exemplo demonstra como se pode utilizar o DBSEEK para busca de valores numricos. USE Clientes NEW ORDLISTADD ("/teste/ind1.cdx") // Expresso Num (campo numrico) DBSEEK(100) // Retorna: .F. EOF() // Retorna: .T. DBSEEK(100,.T.) // Retorna: .F. EOF() // Retorna: .F. (pois o softseek posicionou no prximo 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") // Expresso Nome+Venc (campo caracter + data) DBSEEK("joao200101",.T.) // Procura a primeira ocorrncia de Nome "joao" e vencimento maior que Janeiro de 2001 WHILE !EOF() .AND. Nome == "joao" DBSKIP() ENDDO

DBSETDRIVERReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSETDRIVER ( [ cNOVORDD ] ) --> cULTIMORDD Parmetros Argumento cNOVORDD Retorno Tipo Caracter Descrio DBSETDRIVER() pode ser utilizada apenas para verificar qual o RDD que est definido como padro quando for omitido seu parmetro. Ela tambm pode ser utilizada para especificar outro RDD como padro, especificando-o atravs do parmetro. Exemplo: // Este exemplo demonstra como se pode utilizar o DBSETDRIVER para alterar o valor do RDD padro. DBSETDRIVER("CTREECDX") // Retorna: DBFCDX DBSETDRIVER() // Retorna: CTREECDX Descrio Nome do RDD padro corrente Tipo Descrio Caracter Novo nome do RDD a ser definido como padro. Verso 5.08 Verso 6.09 Verso 7.10

DBSETFILTERReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSETFILTER ( < @bCONDICAO > , < @cCONDICAO > ) --> uRET Parmetros Argumento bCONDICAO cCONDICAO Retorno Tipo (NULO) Descrio DBSETFILTER utilizada para setar um filtro nos registros da tabela corrente especificado atravs do bloco de cdigo no primeiro parmetro. Quando um registro no est dentro do filtro setado ele continua existindo fisicamente, mas no logicamente (nas funes de manipulao de banco de dados como DBGOTOP, DBSEEK, DBSKIP, etc). 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() Descrio Sem retorno. Tipo Descrio Code-Block Expresso do filtro na forma executvel. Caracter Expresso do filtro na forma de string. Verso 5.08 Verso 6.09 Verso 7.10

DBSETINDEXReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSETINDEX ( < @cARQINDICE > ) --> uRET Parmetros Argumento cARQINDICE Retorno Tipo (NULO) Descrio DBSETINDEX() utilizada para acrescentar uma ou mais ordens de determinado ndice na lista de ordens ativas da rea de trabalho. Quando o arquivo de ndice possui apenas uma ordem, a mesma acrescentada lista e torna-se ativa. Quando o ndice possui mais de uma ordem, todas so acrescentadas lista e a primeira torna-se ativa. Para se utilizar arquivos de extenso padro do RDD, este dado pode ser omitido no primeiro parmetro, mas caso contrrio deve ser especificado. 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") Descrio Sem retorno. Tipo Descrio Caracter Nome do arquivo de ndice, com ou sem diretrio Verso 5.08 Verso 6.09 Verso 7.10

DBSETNICKNAMEReviso: 30/08/2002 Abrangncia Verso 5.07 Sintaxe DBSETNICKNAME ( < cINDICE > , [ cAPELIDO ] ) --> cAPELIDO Parmetros Argumento cINDICE cAPELIDO Retorno Tipo Caracter Descrio DBSETNICKNAME utilizada para colocar um apelido em determinada ordem especificada pelo primeiro parmetro. Caso seja omitido o nome do apelido a ser dado, a funo apenas verifica o apelido corrente. 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" Descrio Retorna "" (String vazia) se no conseguiu encontrar a ordem especificada, no conseguiu setar o apelido ou no havia apelido. Retorna o apelido corrente. Tipo Descrio Caracter Nome da ordem que deve receber o apelido. Caracter Nome do apelido da ordem a ser setada. Verso 5.08 Verso 6.09 Verso 7.10

DBSETORDERReviso: 09/04/2003 Abrangncia Verso 5.07 Sintaxe DBSETORDER ( < nOrdem > ) --> NIL Parmetros Argumento nOrdem Retorno Tipo (NULO) Descrio Esta funo utilizada para selecionar a ordem ativa da rea de trabalho. Esta ordem a responsvel seqncia lgica dos registros da tabela corrente. Exemplo:// Este exemplo demonstra como se pode utilizar o DBSETORDER para selecionar a ordem corrente. USE Cliente NEW SET INDEX TO Nome,Cep DBSETORDER(2)

Verso 5.08

Verso 6.09

Verso 7.10

Verses Anteriores

Tipo

Descrio nOrdem corresponde ao nmero da posio da ordem na Numrico lista de ordens ativas.

Descrio Esta funo sempre retorna NIL.

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, porm os indexadores so mantidos abertos. Vale salientar que , quando alteramos a ordem atual de uma determinada tabela , o registro atual no desposicionado.

DBSKIPReviso: 07/05/2003 Abrangncia Verso 5.07 Sintaxe DBSKIP ( [ NREGISTROS ] ) --> NIL Parmetros Argumento NREGISTROS Retorno Tipo Caracter Descrio Desloca para outro registro na tabela corrente. Esta funo utilizada para deslocar para outro registro a partir do registro atual. O deslocamento lgico, ou seja, leva em considerao ordem no ndice e tambm filtro (se existir). Caso passe do incio 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 conveno "LastRec() + 5000". Descrio Sem retorno. Tipo Descrio Nmero de registros a ser deslocado a partir do corrente. Numrico Se for positivo, desloca em direo ao final da tabela. Se for negativo, ao incio da tabela. Valor default: 1. Verso 5.08 Verso 6.09 Verso 7.10

DBSTRUCTReviso: 08/05/2003 Abrangncia Verso 5.07 Sintaxe DBSTRUCT ( ) --> aStruDB Retorno Tipo Array Descrio Retorna a estrutura da tabela corrente. Esta funo utilizada para verificar a estrutura da tabela corrente da mesma forma que utilizada para criar a tabela com a funo DBCREATE. Para isto ela cria um array para gravar as informaes e as retorna. Veja Tambm AFields( ) Descrio Array com a estrutura dos campos. Cada elemento um subarray contendo Nome, Tipo, Tamanho e Decimais. Verso 5.08 Verso 6.09 Verso 7.10

DBUNLOCKReviso: 08/05/2003 Abrangncia Verso 5.07 Sintaxe DBUNLOCK ( ) --> NIL Retorno Tipo Caracter Descrio Retira bloqueios de registros e de arquivo da tabela corrente. Descrio Sem retorno. Verso 5.08 Verso 6.09 Verso 7.10

DBUNLOCKALLReviso: 08/05/2003 Abrangncia Verso 5.07 Sintaxe DBUNLOCKALL ( ) --> NIL Retorno Tipo Caracter Descrio Retira o bloqueio de todos os registros e arquivos de todas as tabelas abertas. Esta funo utilizada para liberar todos os registros bloqueados e equivalente a executar DBUNLOCK para todas as tabelas da rea de trabalho. Descrio Sem retorno. Verso 5.08 Verso 6.09 Verso 7.10

DELETEDReviso: 09/05/2003 Abrangncia Verso 5.07 Sintaxe DELETED ( ) --> lDeleted Retorno Tipo Lgico Descrio Verifica se o registro est com marca de excludo. Quando o registro excludo, permanece fisicamente na tabela, mas fica marcado como excludo. Esta funo verifica este estado. Se nenhuma rea est selecionada, retorna .F.. Quando executada a funo DBPACK todos os registros marcados como deletados so apagados fisicamente. A funo DBRECALL retira todas as marcas. 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 Descrio Se for .T. o registro tem a marca de excludo, se for .F., o registro no tem a marca (ou no h rea em uso). Verso 5.08 Verso 6.09 Verso 7.10

FIELDBLOCKReviso: 12/06/2003 Abrangncia Verso 5.07 Sintaxe FIELDBLOCK ( < cCampo > ) --> bBloco Parmetros Argumento cCampo Retorno Tipo Descrio Code-Block Bloco de cdigo para o campo especificado na tabela corrente. Descrio Retorna um bloco de cdigo para um campo determinado da tabela corrente. Esta funo utilizada para retornar um bloco de cdigo executvel com o campo especificado. Quando o bloco resultante executado sem parmetro, recupera o valor armazenado no campo. Quando executado com um valor, seta este valor no determinado campo. Portanto, o bloco retornado similar a: &("{|Valor| IF(Valor==NIL, Campo, Campo:=Valor)}") Sendo: Campo = parmetro da funo FIELDBLOCK() Valor = valor executado no bloco de cdigo Exemplo // Este exemplo mostra como se pode usar o FIELDBLOCK para criar o bloco de cdigo para o campo 'Nome' da tabela corrente na varivel bBloco:USE Cliente ALIAS Cliente NEW VIA "DBFCDX" bBloco := FIELDBLOCK("NOME")

Verso 5.08

Verso 6.09

Verso 7.10

Tipo Descrio Caracter Nome do campo a ser retornado o bloco de cdigo.

HEADERReviso: 03/10/2002 Abrangncia Verso 5.07 Sintaxe HEADER ( ) --> nBytes Retorno Tipo Caracter Descrio HEADER() uma funao de tratamento de banco de dados utilizado com LASTREC(), RECSIZE(), e DISKSPACE() para criar rotinas de cpia de segurana de arquivos. O padrao que a funao HEADER() opere na rea de trabalho correntemente selecionada. Pode-se faz-la operar em uma rea de trabalho nao selecionada se esta for especificada em uma expresso alias. Descrio HEADER() retorna a quantidade de bytes no cabealho do arquivo de banco de dados corrente na forma de um valor numrico inteiro. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

LUPDATEReviso: 19/10/2002 Abrangncia Verso 5.07 Sintaxe LUPDATE ( ) --> dLastUpdate Retorno Tipo Data Descrio Verifica a data da ltima modificao da tabela corrente. Esta funo verifica qual a data da ltima modificao e fechamento da tabela corrente, caso no exista tabela corrente retornada uma data em branco. Exemplo :// Mostra a data da ltima modificao da tabela corrente, dModificacao := LUpdate() IF (EMPTY(dModificacao)) CONOUT("No h tabela corrente") ELSE CONOUT(("Data da ultima modificacao : " + DTOS(dModificacao))) ENDIF

Verso 5.08

Verso 6.09

Verso 7.10

Verses Anteriores

Descrio Retorna um valor do tipo Data , indicando a data da ultima modificao e fechamento da Tabela. Caso no haja tabela selecionada na rea de trabalho atual , a funo retornar uma data vazia (ctod ("")) .

SELECTReviso: 24/02/2003 Abrangncia Verso 5.07 Sintaxe SELECT ( [ cAlias ] ) --> nAreaTrabalho Parmetros Argumento cAlias Retorno Tipo Numrico Descrio SELECT() uma funao de tratamento de bancos de dados que determina o nmero da rea de trabalho de um alias. O nmero retornado pode variar de zero a 250. Se no for especificado, retornado o nmero da rea de trabalho corrente. Caso seja especificado e o alias nao existir, SELECT() retorna zero. Descrio SELECT() retorna a rea de trabalho do alias especificado na forma de um valor numrico inteiro. Tipo Descrio Caracter o nome da rea de trabalho a ser verificada. Verso 5.08 Verso 6.09 Verso 7.10

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

* Para re-selecionar o valor retornado da funao SELECT(), use o comando SELECT com a sintaxe SELECT (), desta forma:USE Sales NEW nWorkArea := SELECT() USE Customer NEW SELECT (nWorkArea)

TCGENQRYReviso: 25/07/2003 Abrangncia Verso 5.07 Sintaxe TCGENQRY ( [ xPar1 ] , [ xPar2 ] , < cQuery > ) --> "" Parmetros Argumento xPar1 xPar2 cQuery Retorno Tipo Caracter Descrio Define a execuo de uma Query. Esta funo determina que a prxima chamada DBUseArea ser a abertura de uma Query e no de tabela. Exemplo cQuery := 'SELECT X2_CHAVE CHAVE, R_E_C_N_O_ RECNO from SX2990' cQuery := ChangeQuery(cQuery) dbUseArea(.T., 'TOPCONN', TCGenQry(,,cQuery),'TRB', .F., .T.) while !Eof() conout(TRB->CHAVE) dbSkip() enddo dbCloseArea() Descrio Sempre retorna uma string vazia. Tipo Descrio Parmetros apenas para compatibilizao. No tem (Qualquer) funo Parmetros apenas para compatibilizao. No tem (Qualquer) funo Caracter Contm a expresso da query que ser aberta. Verso 5.08 Verso 6.09 Verso 7.10

USEDReviso: 09/07/2003 Abrangncia Verso 5.07 Verses Anteriores Sintaxe USED ( ) --> lDbfUsed Retorno Tipo Lgico Descrio USED() uma funao de tratamento de banco de dados utilizada para determinar se h um arquivo de banco de dados em uso em uma rea de trabalho especfica. O padrao que USED() opere na rea de trabalho correntemente selecionada. Pode-se faz-la operar em uma rea de trabalho nao selecionada se esta for especificada em uma expressao alias. Descrio USED() retorna verdadeiro (.T.) caso haja um arquivo de banco de dados em uso; caso contrrio, retorna falso (.F.). Verso 5.08 Verso 6.09 Verso 7.10 Verso 8.11

__DBPACKReviso: 09/05/2003 Abrangncia Verso 5.07 Sintaxe __DBPACK ( ) --> URET Retorno Tipo (NULO) Descrio Remove todos os registros com marca de excludo da tabela. Esta funo apaga (fisicamente) todos os registros "excludos" da tabela corrente. Exemplo // Este exemplo demonstra como se pode utilizar a funo DBDELETE() para marcar alguns registros como deletados e o comando PACK para delet-los fisicamente. USE Clientes NEW DBGOTO(100) DBDELETE() DBGOTO(105) DBDELETE() DBGOTO(110) DBDELETE() // Se a excluso for confirmada: __DBPACK() Descrio Retorno nulo. Verso 5.08 Verso 6.09 Verso 7.10

Funes de disco e arquivos. ADIRReviso: 16/07/2002 Abrangncia Verso 5.07 Sintaxe ADIR ( [ ] , [ ] , [ ] , [ ] , [ ] , [ ] ) --> nArquivos Parmetros Argumento Tipo Descrio a especificaao dos arquivos a serem incluidos na pesquisa do diretrio padrao. uma especificaao de arquivo padrao que pode incluir os Caracter caracteres coringa do tipo * e ?, bem como referncia a diretrio e path. Caso nao seja especificado, o padrao assumido *.*. o vetor a ser preenchido com os nomes de arquivo que correspondem a . Cada elemento Array contm o nome do arquivo e extensao na forma de uma cadeia de caracteres em letras maisculas. o vetor a ser preenchido com os tamanhos Array dos arquivos correspondentes no vetor . Cada elemento numrico. o vetor a ser preenchido com as datas dos Array arquivos correspondentes no vetor . Cada elemento uma data. o vetor a ser preenchido com as horas dos arquivos correspondentes no vetor . Cada Array elemento preenchido contm uma cadeia de caracteres da forma: hh:mm:ss. o vetor a ser preenchido com os atributos dos arquivos correspondentes no vetor . Cada elemento uma cadeia de caracteres. Caso Array seja especificado, os arquivos de diretrio, sistema, e escondidos sao incluidos, assim como os arquivos normais. Se nao for especificado, somente os arquivos normais sao incluidos. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

Retorno Tipo Numrico Descrio ADIR() uma funao de tratamento de vetor que executa duas operaoes bsicas. Primeiro, ele retorna a quantidade de arquivos que correspondem especificaao de arquivo. Segundo, preenche uma srie de vetores com nomes de arquivos, tamanhos, datas, horas e atributos. ADIR() uma funao de compatibilidade e portanto desaconselhada. Ele est superado pela funao DIRECTORY(), que retorna todas as informaoes de arquivo em um vetor multi-dimensional. OBSERVAO Diretrios: Caso o argumento seja especificado e seja especificado como *.*, os diretrios serao incluidos em . No vetor , os diretrios sao indicados com um valor atributo de "D." Se ADIR() for executado dentro de um subdiretrio, as duas primeiras entradas do vetor sao "." e "..", os "alias" dos diretrios corrente e raiz. A data e hora da ltima atualizaao sao informadas para diretrios, mas o tamanho de um diretrio sempre zero. Descrio ADIR() retorna a quantidade de arquivos que correspondem ao esqueleto de diretrio especificado.

CPYS2TReviso: 19/10/2002 Abrangncia Verso 5.07 Sintaxe CPYS2T ( < cOrigem > , < cDestino > , [ lCompacta ] ) --> lSucess Parmetros Argumento cOrigem cDestino lCompacta Retorno Tipo Lgico Descrio Copia um arquivo, do servidor para o cliente ( Remote ). .Caso a compactao seja habilitada (lCompacta ), os dados sero transmitidos de maneira compactada e descompactados antes do uso. Exemplo :CpyS2T( "\BKP\MANUAL.DOC", "C:\TEMP", .T. ) // Copia arquivos do servidor para o remote local, compactando antes de transmitir CpyS2T( "\BKP\MANUAL.DOC", "C:\TEMP", .F. ) // Copia arquivos do servidor para o remote local, sem compactar antes de transmitir

Verso 5.08

Verso 6.09

Verso 7.10

Tipo

Descrio Nome(s) dos arquivos a serem copiados, aceita apenas Caracter arquivos no servidor, WildCards ( * e ? ) so aceitos normalmente. Caracter Diretrio com o destino dos arquivos no Client ( Remote ) Indica se a cpia deve ser feita compactando o arquivo Lgico antes do envio.

Descrio lSucess retorna .T. caso o arquivo seja copiado com sucesso , ou .F. em caso de falha na cpia.

CPYT2SReviso: 19/10/2002 Abrangncia Verso 5.07 Sintaxe CPYT2S ( < cOrigem > , < cDestino > , [ lCompacta ] ) --> lSucess Parmetros Argumento cOrigem cDestino lCompacta Retorno Tipo Lgico Descrio Copia um arquivo, do cliente ( Remote ) para o servidor,. Caso a compactao seja habilitada ( lCompacta ), os dados sero transmitidos de maneira compacta e descompactados antes do uso. ExemploCpyT2S( "C:\TEMP\MANUAL.DOC","\BKP", .T. ) // Copia arquivos do cliente( remote ) para o Servidor compactando antes de transmitir CpyT2S( "C:\TEMP\MANUAL.DOC", "\BKP" ) // Copia arquivos do cliente( remote ) para o Servidor sem compactar.

Verso 5.08

Verso 6.09

Verso 7.10

Tipo

Descrio Nomes dos arquivos a serem copiados, aceita apenas Caracter arquivos locais ( Cliente ), WildCards ( * e ? ) so aceitos normalmente. Caracter Diretrio com o destino dos arquivos no Servidor lCompacta indica se o(s) arquivo(s) deve(m) ser enviados Lgico em formato compactado.

Descrio lSucess indica , caso verdadeiro , que a cpia foi realizada com sucesso. Caso retorne .F. , houve erro na copia do arquivo.

CURDIRReviso: 28/04/2003 Abrangncia Verso 5.07 Sintaxe CURDIR ( [ cNovoPath ] ) --> cPathAtual Parmetros Argumento cNovoPath Retorno Tipo Caracter Descrio Retorna o diretrio corrente do servidor. O caminho retornado sempre relativo o RootPath definido na configurao do Environment no .INI do Protheus Server. Inicialmente , o diretrio atual da aplicao o constante na chave StartPath , tambm definido na configurao do Environment no .INI do Protheus Server. Caso seja passado o parmetro cNovoPath , este path assumido como sendo o Path atual. Caso o path recebido como parmetro no exista , seja invlido , ou seja um path absoluto ( iniciado com uma letra de drive ou caimnho de rede ) , a funo no ir setar o novo path , mantendo o atual . Descrio Diretrio corrente, sem a primeira barra. Tipo Descrio Caminho relativo , com o novo diretrio que ser ajustado Caracter como corrente. Verso 5.08 Verso 6.09 Verso 7.10

DIRECTORYReviso: 17/07/2002 Abrangncia Verso 5.07 Sintaxe DIRECTORY ( < cDirSpec > , [ ] ) --> aDiretorio Parmetros Argumento Tipo Descrio especifica o drive, diretrio e arquivo para a pesquisa no diretrio. Caracteres do tipo coringa sao permitidos na especificaao de arquivos. Caso Caracter seja omitido, o valor padrao *.*. O caminho especificado pode estar na estao (remote) , ou no servidor , obedecendo s definices de Path Absoluto / Relativo de acesso especifica que arquivos com atributos especiais devem ser incluidos na informaao retornada. Caracter consiste em uma cadeia de caracteres que contm um ou mais dos seguintes caracteres, contidos na tabela adicional A , especificada abaixo: Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

cDirSpec

Retorno Tipo Array Descrio DIRECTORY() uma funao de tratamento de ambiente que retorna informaoes a respeito dos arquivos no diretrio corrente ou especificado. semelhante a ADIR(), porm retorna um nico vetor ao invs de adicionar valores a uma srie de vetores existentes passados por referncia. DIRECTORY() pode ser utilizada para realizar operaoes em conjuntos de arquivos. Em combinaao com AEVAL(), voc pode definir um bloco que pode ser aplicado a todos os arquivos que atendam a especificada. Descrio DIRECTORY() retorna um vetor de sub-vetores, sendo que cada sub-vetor contm informaoes sobre cada arquivo que atenda a .Veja maiores detalhes na Tabela B, abaixo discriminada.

Para tornar as referncias aos vrios elementos de cada sub-vetor de arquivo mais legveis, fornecido o arquivo header Directry.ch, que contm os #defines para os subarray subscripts.

TABELA A: Atributos de DIRECTORY()Atributo H S D V Significado Incluir arquivos ocultos Incluir arquivos de sistema Incluir diretrios Procura pelo volume DOS e exclui outros arquivos

Arquivos normais sao sempre incluidos na pesquisa, a nao ser que V seja especificado.

TABELA B: Estrutura dos Subvetores de DIRECTORY()Posiao 1 2 3 4 5 Metasmbolo Directry.ch cNome F_NAME cTamanho F_SIZE dData F_DATE cHora F_TIME cAtributos F_ATT

DIRREMOVEReviso: 01/05/2003 Abrangncia Verso 5.07 Sintaxe DIRREMOVE ( < cDiretorio > ) --> lSucesso Parmetros Argumento cDiretorio Retorno Tipo Lgico Descrio lSucesso ser .T. caso o diretrio tenha sido eliminado , ou .F. caso no seja possvel excluir o diretrio. Quando a funo DirRemove retornar .F. , possvel obter mais detalhes da ocorrncia recuperando o cdigo do Erro atravs da funo FError(). Tipo Descrio Caracter Nome do diretrio a ser removido. Verso 5.08 Verso 6.09 Verso 7.10

Descrio DIRREMOVE() elimina um diretrio especifico. Caso especifiquemos um path sem a unidade de disco , ele ser considerado no ambiente do Servidor , a partir do RootPath do ambiente ( caso o path comee com \ ) , ou a partir do diretrio corrente ( caso o path no seja iniciado com \ ) . E , quando especificado um path absoluto ( com unidade de disco preenchida ) , a funo ser executada na estao onde est sendo executado o Protheus Remote. Quando executamos a funo DirRemove() em JOB ( processo isolado no Server , sem interface ) , no possvel especificar um Path absoluto de disco. Caso isto seja realizado , a funo retornar .F. e FError() retornar -1 ( Syntax Error ) . Note que necessrio ter direitos suficientes para remover um diretrio, e o diretrio a ser eliminado precisa estar vazio, sem subdiretrios ou arquivos dentro do mesmo.

DISKSPACEReviso: 01/05/2003 Abrangncia Verso 5.07 Sintaxe DISKSPACE ( [ nDrive ] ) --> nBytesFree Parmetros Argumento nDrive Retorno Tipo Numrico Descrio DISKSPACE() uma funo de ambiente que determina quantos bytes esto disponveis em uma determinada uinidade de disco. Esta funo obtm a informao sempre relativa estao onde est sendo executado o Protheus Remote. Atravs do parmetro nDRive , selecionamos qual a unidade de disco que desejamos obter a informao do espao livre , onde: 0 : Unidade de disco atual da estao (DEFAULT). 1 : Drive A: da estao remota. 2 : Drive B: da estao remota. 3 : Drive C: da estao remota. 4 : Drive D: da estao remota ... e assim por diante. Caso a funo DiskSpace seja executada atravs de um Job ( processo isolado no Servidor , sem interface Remota ) , ou seja passado um argumento de unidade de disco inexistente ou indisponvel , a funo DISKSPACE() retornar -1 Descrio Nmero de bytes disponveis no disco informado como parmetro. Tipo Descrio Nmero do drive, onde 0 o espao na unidade de disco Numrico corrente, e 1 o drive A: do cliente, 2 o drive B: do cliente, etc. Verso 5.08 Verso 6.09 Verso 7.10

FCLOSEReviso: 09/04/2003 Abrangncia Verso 5.07 Sintaxe FCLOSE ( < nHandle > ) --> lError Parmetros Argumento nHandle Retorno Tipo Lgico Descrio FCLOSE() uma funao de tratamento de arquivos de baixo nvel utilizada para fechar arquivos binrios e forar que os respectivos buffers do DOS sejam escritos no disco. Caso a operaao 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) invlido retorna falso (.F.) e FERROR() retorna erro 6 do DOS, invalid handle. Consulte FERROR() para obter uma lista completa dos cdigos de erro. Aviso Esta funao permite acesso de baixo nvel aos arquivos e dispositivos do DOS. Ela deve ser utilizada com extremo cuidado e exige que se conhea a fundo o sistema operacional utilizado. Exemplos O exemplo a seguir utiliza FCLOSE() para fechar um arquivo binrio recm criado e exibe uma mensagem de erro caso o fechamento falhe: Descrio FCLOSE() retorna falso (.F.) se ocorre um erro enquanto os buffers estao sendo escritos; do contrrio, retorna verdadeiro (.T.). Tipo Descrio o handle do arquivo obtido previamente Numrico atravs de FOPEN() ou FCREATE(). Verso 5.08 Verso 6.09 Verso 7.10

#include "Fileio.ch" nHandle := FCREATE("Testfile", FC_NORMAL) If !FCLOSE(nHandle) conout( "Erro ao fechar arquivo, erro numero: ", FERROR() ) EndIf

FCREATEReviso: 01/05/2003 Abrangncia Verso 5.07 Sintaxe FCREATE ( < cArquivo > , [ nAtributo ] ) --> nHandle Parmetros Argumento cArquivo Tipo Descrio Nome do arquivo a ser criado , podendo ser especificado um path absoluto ou relativo , para criar arquivos no Caracter ambiente local ( Remote ) ou no Servidor , respectivamente . Atributos do arquivo a ser criado (Vide Tabela de Numrico atributos abaixo). Caso no especificado , o DEFAULT FC_NORMAL. Verso 5.08 Verso 6.09 Verso 7.10

nAtributo Retorno Tipo Numrico

Descrio A funo retornar o Handle do arquivo para ser usado nas demais funes de manuteno de arquivo. O Handle ser maior ou igual a zero. Caso no seja possvel criar o arquivo , a funo retornar o handle -1 , e ser possvel obter maiores detalhes da ocorrencia atravs da funo FERror()

Descrio FCREATE() uma funo de baixo-nvel que permite a manipulao direta dos arquivos textos como binrios. Ao ser executada FCREATE() cria um arquivo ou elimina o seu contedo, e retorna o handle (manipulador) do arquivo, para ser usado nas demais funes de manuteno de arquivo. Aps ser utilizado , o Arquivo deve ser fechado atravs da funo FCLOSE(). Na tabela abaixo , esto descritos os atributos para criao do arquivo , definidos no arquivo header fileio.ch Constante FC_NORMAL FC_READONLY FC_HIDDEN Valor Descrio 0 Criao normal do Arquivo (default/padro). 1 Cria o arquivo protegido para gravao. 2 Cria o arquivo como oculto.

FC_SYSTEM

4

Cria o arquivo como sistema.

Caso desejemos especificar mais de um atributo , basta som-los . Por exemplo , para criar um arquivo protegiro contra gravao e escondido , passamos como atributo FC_READONLY + FC_HIDDEN . ATENO : Caso o arquivo j exista , o contedo do mesmo ser ELIMINADO , e seu tamanho ser truncado para 0 ( ZERO ) bytes.

FERASEReviso: 01/05/2003 Abrangncia Verso 5.07 Sintaxe FERASE ( < cArquivo > ) --> nStatus Parmetros Argumento cArquivo Retorno Tipo Numrico Descrio Atravs da funo Ferase , possvel apagar um arquivo no disco . O Arquivo pode estar no Servidor ou na estao local (Remote). O Arquivo para ser apagado deve estar fechado. No permitido a utilizao de caracteres coringa (wildcards). Descrio A funo retornar 0 caso o arquivop seja apagado com sucesso , e -1 caso no seja possvel apagar o arquivo. Caso a funo retorne -1 , possvel obter mauires detalhes da ocorrncia atravs da funo fError() Tipo Descrio Nome do arquivo a ser apagado . Pode ser especificado um Caracter path absoluto ou relativo , para apagar arquivos na estao local ( Remote ) ou no Servidor , respctivamente . Verso 5.08 Verso 6.09 Verso 7.10

FILEReviso: 04/05/2003 Abrangncia Verso 5.07 Sintaxe FILE ( < cArquivo > ) --> lExiste Parmetros Argumento cArquivo Tipo Descrio Nome do arquivo , podendo ser especificado um path (caminho ) . Caminhos locais (Remote) ou caminhos de Caracter servidor so aceitos , bem como wildcards ( Caracteres * e?) Verso 5.08 Verso 6.09 Verso 7.10

Retorno Tipo Lgico Descrio Verifica se existe um arquivo ou um padro de arquivos, no diretrio. Pordemos especificar caminhos absolutos ( arquivos na estao - Remote ) ou relativos ( A partir do RootPath do Protheus Server) . Os caracteres * e ? ( wildcards). so aceitos. Descrio O retorno ser .T. caso o arquivo especificado exista. Caso o mesmo no exista no path especificado , a funo retorna .F.

FOPENReviso: 05/05/2003 Abrangncia Verso 5.07 Sintaxe FOPEN ( < cArq > , [ nModo ] ) --> nRet Parmetros Argumento cArq Tipo Descrio Nome do arquivo a ser aberto que inclui o path caso haja Caracter um. Modo de acesso DOS solicitado que indica como o arquivo aberto deve ser acessado. O acesso de uma das categorias relacionadas na tabela A e as restries de compartilhamento relacionada na Tabela B. O modo Numrico padrao zero, somente para leitura, com compartilhamento por Compatibilidade. Ao definirmos o modo de acesso , devemos somar um elemento da Tabela A com um elemento da Tabela B. Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

nModo

Retorno Tipo Numrico Descrio Abre um arquivo binrio. FOPEN() uma funao de tratamento de arquivo de baixo nvel que abre um arquivo binrio existente para que este possa ser lido e escrito, dependendo do argumento . Toda vez que houver um erro na abertura do arquivo, FERROR() pode ser usado para retornar o cdigo 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 cdigos de erro. Caso o arquivo especificado seja aberto, o valor retornado o handle (manipulador) do Sistema Operacional para o arquivo. Este valor semelhante a um alias no sistema de Descrio FOPEN() retorna o handle de arquivo aberto na faixa de zero a 65.535. Caso ocorra um erro, FOPEN() retorna -1.

banco de dados, e ele exigido para identificar o arquivo aberto para as outras funoes de tratamento de arquivo. Portanto, importante sempre atribuir o valor que foi retornado a uma varivel para uso posterior, como mostra o exemplo desta funo. Aviso Esta funao permite acesso de baixo nvel a arquivos e dispositivos. Ela deve ser utilizada com extremo cuidado e exige que se conhea a fundo o sistema operacional utilizado. Notas

FOPEN procura o arquivo no diretrio corrente e nos diretrios configurados na varivel de pesquisa do Sistema Operacional, a nao ser que um path seja declarado explicitamente como parte do argumento . Por serem executadas em um ambiente cliente-servidor, as funes de tratamento de arquivos podem trabalhar em arquivos localizados no cliente (estao) ou no servidor. O ADVPL identifica o local onde o arquivo ser manipulado atravs da existncia ou no da letra do drive no nome do arquivo passado em . Ou seja, se o arquivo for especificado com a letra do drive, ser aberto na estao. Caso contrrio, ser aberto no servidor com o diretrio configurado como rootpath sendo o diretrio raz para localizao do arquivo.

Tabela A: Modos de Acesso a Arquivos Binrios Modo 0 1 2 Constante (fileio.ch) Operao FO_READ Aberto para leitura (padro assumido) FO_WRITE Aberto para gravao FO_READWRITE Aberto para leitura e gravao

Tabela B: Modos de Acesso de Compartilhamento a Arquivos Binrios Modo 0 16 32 48 64 64 Constante Operao (fileio.ch) FO_COMPAT Modo de Compatibilidade (Default) FO_EXCLUSIVE Acesso total exclusivo Acesso bloqueando a gravao de outros processos ao FO_DENYWRITE arquivo. FO_DENYREAD Acesso bloqueando a leitura de outros processos ao arquivo. Acesso compartilhado. Permite a leitura e gravao por FO_DENYNONE outros processos ao arquivo.. FO_SHARED Igual FO_DENYNONE

FREAD

Reviso: 19/10/2002 Abrangncia Verso 5.07 Sintaxe FREAD ( < nHanvle > , < cBuffer > , < nQtdBytes > ) --> nBytesLidos Parmetros Argumento nHanvle Tipo Descrio o manipulador (Handle) retornado pelas funes FOPEN(), Numrico FCREATE(), FOPENPORT(), que faz referncia ao arquivo a ser lido. o nome de uma varivel do tipo String , a ser utilizada como buffer de leitura , onde os dados lidos devero ser armazenados. O tamanho desta varivel deve ser maior ou igual ao tamanho informado em nQtdBytes. Caracter Esta varivel deve ser sempre passada por referncia. ( @ antes do nome da varivel ), caso contrrio os dados lidos no sero retornados. Define a quantidade de Bytes que devem ser lidas do Numrico arquivo a partor posicionamento do ponteiro atual. Verso 5.08 Verso 6.09 Verso 7.10

cBuffer

nQtdBytes Retorno Tipo Numrico Descrio

Descrio Quantidades de bytes lidos. Caso a quantidade seja menor que a solicitada, isto indica erro de leitura ou final de arquivo, Verifique a funo FERROR() para maiores detalhes.

FREAD() l os dados a partir um arquivo aberto, atravs de FOPEN(), FCREATE() e/ou FOPENPORT(), e armazena os dados lidos por referncia no buffer informado. FREAD() ler at o nmero de bytes informado em nQtdBytes; caso acontea algum erro ou o arquivo chegue ao final, FREAD() retornar um nmero menor que o especificado em nQtdBytes. FREAD() l normalmente caracteres de controle (ASC 128, ASC 0, etc.). A varivel String a ser utiilzada como buffer de leitura deve ser sempre pr-alocado e passado como referncia. Caso contrrio, os dados no podero ser retornados.

FREAD() l a partir da posio atual do ponteiro atual do arquivo , que pode ser ajustado ou modificado pelas funes FSEEK() , FWRITE() ou FREADSTR().

FREADSTRReviso: 02/06/2003 Abrangncia Verso 5.07 Sintaxe FREADSTR ( < nHandle > , < nQtdBytes > ) --> cLidos Parmetros Argumento nHandle nQtdBytes Retorno Tipo Caracter Descrio L caracteres de um arquivo binrio. FREADSTR() l de um arquivo aberto, atravs de FOPEN(), FCREATE(), FOPENPORT(). FREADSTR() ler at o nmero de bytes informado em nQtdBytes ou at encontrar um CHR(0). Caso acontea algum erro ou o arquivo chegue ao final, FREADSTR() retornar uma string menor do que nQdBytes e colocar o erro em FERROR(). FREADSTR() l a partir da posio atual do ponteiro, que pode ser ajustado pelo FSEEK(), FWRITE( ) ou FREAD(). Descrio Retorna uma string contendo os caracteres lidos. Tipo Descrio o manipulador retornado pelas funes FOPEN(), Numrico FCREATE(), FOPENPORT(). Numrico Nmero mximo de bytes que devem ser lidos. Verso 5.08 Verso 6.09 Verso 7.10

FRENAMEReviso: 11/06/2003 Abrangncia Verso 5.07 Sintaxe FRENAME ( < cOldFile > , < cNewFile > ) --> nStatus Parmetros Argumento cOldFile cNewFile Retorno Tipo Numrico Descrio Se o status retornado for -1 , ocorreu algum erro na mudana de nome : Verifique se os dois caminhos esto no mesmo ambiente, verifique a existncia do arquivo de origem, se ele no est em uso no momento por outro processo , e verifique se o nome do arquivo de destino j no existe no path de destino especificado. Tipo Descrio Nome do arquivo ser renomeado, aceita caminhos do servidor e caminhos do cliente. Caso no seja especificado Caracter nenhuma unidade de disco e path, considerado o path atual no servidor. Novo nome do arquivo, aceita tambm caminho do Caracter servidor, e caminho do cliente. Verso 5.08 Verso 6.09 Verso 7.10

Descrio Atravs da funo FRENAME() possvel renomear um arquivo para outro nome, tanto no servidor como na estao. Ao renomear um arquivo no esquea que esta arquivo dever estar fechado ( isto , no pode estar em uso por nenhum outro processo ou estao). Caso o arquivo esteja aberto por outro processo , a operao de renomear o arquivo no possvel. A funo fRename() no aceita wildcards ( * e/ou ? ). Vale lembrar que no possvel renomear um arquivo especificando nos parmetros simultaneamente um caminho de servidor e um de estao remota, bem como especificar dois arquivos remotos e executar a funo fername() atravs de um JOB. Caso isto ocorra, a funo retornar -1 , e fError() retornar tambm -1. Importante : Quando especificamos um path diferente nos arquivos de origem e destino , a funo fRename() realiza a funcionalidade de MOVER o arquivo para o Path especificado.

FSEEKReviso: 05/05/2003 Abrangncia Verso 5.07 Sintaxe FSEEK ( < nHandle > , [ nOffSet ] , [ nOrigem ] ) --> nPos Parmetros Argumento nHandle nOffSet nOrigem Retorno Tipo Numrico Descrio FSEEK() retorna a nova posiao do ponteiro de arquivo com relaao ao incio do arquivo (posiao 0) na forma de um valor numrico inteiro. Este valor nao leva em conta a posiao original do ponteiro de arquivos antes da execuo da funo FSEEK(). Tipo Descrio Manipulador obtido atravs das funes Numrico FCREATE,FOPEN. nOffSet corresponde ao nmero de bytes no ponteiro de posicionamento do arquivo a ser movido. Pode ser um Numrico numero positivo , zero ou negativo, a ser considerado a partir do parmetro passado em nOrigem. Indica a partir de qual posio do arquivo, o nOffset ser Numrico considerado. Verso 5.08 Verso 6.09 Verso 7.10

Descrio FSEEK() posiciona o ponteiro do arquivo para as prximas operaes de leitura ou gravao. As movimentaes de ponteiros so relativas nOrigem que pode ter os seguintes valores, definidos em fileio.ch: Tabela A: Origem a ser considerada para a movimentao do ponteiro de posicionamento do Arquivo. Origem 0 1 2 Constante Operao FS_SET Ajusta a partir do inicio do arquivo. (Default) FS_RELATIVE Ajuste relativo a posio atual do arquivo. FS_END Ajuste a partir do final do arquivo.

FWRITEReviso: 27/05/2003 Abrangncia Verso 5.07 Sintaxe FWRITE ( < nHandle > , < cBuffer > , [ nQtdBytes ] ) --> nBytesEscritos Parmetros Argumento nHandle cBuffer Tipo Descrio o manipulador de arquivo ou device retornado pelas Numrico funes FOPEN(), FCREATE(), ou FOPENPORT(). a cadeia de caracteres a ser escrita no arquivo especificado. O tamanho desta varivel deve ser maior ou Caracter igual ao tamanho informado em nQtdBytes (caso seja informado o tamanho). indica a quantidade de bytes a serem escritos a partir da posiao corrente do ponteiro de Numrico arquivos. Caso seja omitido, todo o contedo de escrito. Verso 5.08 Verso 6.09 Verso 7.10

nQtdBytes

Retorno Tipo Numrico Descrio FWRITE() retorna a quantidade de bytes escritos na forma de um valor numrico inteiro. Caso o valor retornado seja igual a , a operaao foi bem sucedida. Caso o valor de retorno seja menor que ou zero, ou o disco est cheio ou ocorreu outro erro. Neste caso , utilize a funo FERROR() para obter maiores detalhes da ocorrncia.

Descrio Voc pode escrever todo ou parte do contedo do buffer , limitando a quantidade de Bytes atravs do parmetro nQtdBytes. A escrita comea a partir da posio corrente do ponteiro de arquivos, e a funo FWRITE retornar a quantidade real de bytes escritos. Atravs das funes FOPEN(), FCREATE(), ou FOPENPORT(), podemos abrir ou criar um arquivo ou abrir uma porta de comunicao , para o qual sero gravados ou enviados os dados do buffer informado. Por tratar-se de uma funo de manipulao de contedo binrio , so suportados na String cBuffer todos os caracteres da tabela ASCII , inclusive caracteres de controle ( ASC 0 , ASC 12 , ASC 128 , etc... ). Caso acontea alguma falha na gravao , a funo retornar um nmero menor que o

nQtdBytes. Neste caso , a funo FERROR() pode ser utilizada para determinar o erro especfico ocorrido. A gravao no arquivo realizada a partir da posio atual do ponteiro , que pode ser ajustado atravs das funes FSEEK() , FREAD() ou FREADSTR().

GETCLIENTDIRReviso: 04/05/2003 Abrangncia Verso 5.07 Sintaxe GETCLIENTDIR ( ) --> cPath Retorno Tipo Caracter Descrio Retorna o diretrio completo onde o Remote est instalado, informando inclusive a unidade de disco. Observao : Esta funo apenas retornar um resultdo vlido caso seja executada em um programa atravs do Protheus Remote . Caso esta funo seja chamada em JOB , a mesma ocasionar um erro de execuo ( Error to comunicate with Remote ) . Descrio Retona o path onde est instalado o Protheus Remote. Verso 5.08 Verso 6.09 Verso 7.10

GETREMOTEININAMEReviso: 12/06/2003 Abrangncia Verso 6.09 Sintaxe GETREMOTEININAME ( ) --> cArqConf Retorno Tipo Caracter Descrio Retorna o nome do arquivo de configurao do AP Remote. Descrio Path e nome do arquivo de configurao Verso 7.10

GETSRVPROFSTRINGReviso: 03/09/2002 Abrangncia Verso 5.07 Sintaxe GETSRVPROFSTRING ( < cChave > , < cDefault > ) --> cConteudo Parmetros Argumento cChave cDefault Retorno Tipo Caracter Descrio Atravs da funo GetSrvProfString , podemos obter o contedo de uma chave de configurao do environment atual em uso no arquivo de Inicializao do Server Protheus ( APxSrv.ini ) . Descrio Conteudo da chave especificada Tipo Descrio Caracter Chave do INI do environment a ser lida, cDefault o conteudo da chave a ser retornado caso a Caracter chave no seja encontrada no .ini Verso 5.08 Verso 6.09 Verso 7.10 Verses Anteriores

MAKEDIRReviso: 12/06/2003 Abrangncia Verso 5.07 Sintaxe MAKEDIR ( < cNovoDir > ) --> nResultado Parmetros Argumento cNovoDir Retorno Tipo Numrico Descrio Cria um diretrio na estao ou no servidor APx. Caso o diretrio comece com um drive ( Ex: C:, X: ) o diretrio ser criado na estao, caso contrrio ser criado no servidor.MAKEDIR("c:\teste\um") // Cria um diretrio na estacao nResult := MAKEDIR("\teste\um") // Cria o diretorio no servidor Advanced protheus IF nResult != 0 Conout( "Impossivel Criar o diretrio no servidor Protheus", nResult ) ENDIF MAKEDIR( "teste" ) // Exemplo tambm vlido ( Criando o diretrio no servidor ) dentro do diretrio corrente

Verso 5.08

Verso 6.09

Verso 7.10

Tipo

Descrio Nome do diretrio a ser criado, incluindo opcionalmente o Caracter caminho (path).

Descrio Retorno zero ( 0 ),o diretrio foi criado com sucesso. Caso contrrio, houve erro na criao do diretrio.

MSCOMPRESSReviso: 07/05/2003 Abrangncia Verso 6.09 Sintaxe MSCOMPRESS ( < cArq | aArquivos > , [ cDestino ] , [ cSenha ] ) --> cFileName Parmetros Argumento Descrio Arquivo(s) a ser(em) compactado(s). Pode ser do tipo String , para especificar um nico arquivo , ou do tipo cArq | aArquivos (Qualquer) Array , contendo um ou mais arquivo(s) a ser(em) compatado(s). Nome do Arquivo destino, caso a extenso seja omitida ser assumido .MZP, se no for informado assumir o cDestino Caracter mesmo nome do cArq com extenso .MZP ou o nome do 1. Arquivo no Array . Senha a ser utilizada para criptografar o arquivo cSenha Caracter compactado. Retorno Tipo Caracter Descrio Caso a compactao seja executada com sucesso , a funo retornar uma sring contendo o nome do arquivo gerado . Caso no seja possvel a compactao , por falta de espao em disco ou erro de acesso a algum dos arquivos a ser(em) compactado(s), a funo retornar uma string em branco (""). Tipo Verso 7.10

Descrio Compacta um ou vrios arquivos em um nico arquivo com extenso .MZP. MSCOMPRESS() compacta os arquivos informados em um nico arquivo com extenso default .MZP. O formato proprietrio e multiplataforma. Caso a senha seja informada apenas com a senha poderemos descompactar os arquivos. Tanto arquivos no local ( Remote ) como no Servidor so aceitos.

MSDECOMPReviso: 07/05/2003 Abrangncia Verso 6.09 Sintaxe MSDECOMP ( < cArq > , [ cPathDestino ] , [ cSenha ] ) --> lSucess Parmetros Argumento cArq cPathDestino cSenha Retorno Tipo Lgico Descrio Caso a descompactao foi executada com sucesso, a funo retornar .T. , Em caso de erro durante a descompactao, a funo retrornar .F. Verifique o espao disponvel 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 , atribudo como "REad-Only". Tipo Descrio Caracter Nome do Arquivo no formato MZP a ser descompactado. Path de destino onde sero gravados o(s) arquivo(s) Caracter descompactado(s). Note que podem ser includos caminhos do servidor como caminhos locais. Caso o arquivo tenha sido compactado com senha , esta Caracter deve ser especificada este parmetro para ser poss;ivel a descompactao do arquivo. Verso 7.10

Descrio MSDECOMP() descompacta o arquivo informado em um diretrio. O Formato proprietrio, e multi-plataforma, suporta apenas arquivos compactados pela funo MSCOMPRESS(). Caso o arquivo seja protegido por senha, apenas com a senha poderemos descompactlo. Tanto arquivos no local ( Remote ) como no Servidor so aceitos.

SPLITPATHReviso: 05/05/2003 Abrangncia Verso 5.07 Sintaxe SPLITPATH ( < cArq > , [ @cDrive ] , [ @cCaminho ] , [ @cNome ] , [ @cExt ] ) --> NIL Parmetros Argumento cArq cDrive cCaminho cNome cExt Retorno Tipo Caracter Descrio A funo SplitPath() divide um caminho completo em todas as suas subpartes ( Drive , Caminho , Nome e Extenso ) . Tanto arquivos locais ( Remote ) quanto arquivos no servidor, podem ser informados. O caminho, caso informado, incluir uma barra como ltimo caracter. A extenso , quando retornada , inclui sempre o ponto ( . ) antes da extenso. Todos os parmetros , a partir do segundo , quando passados devem ser por referncia. Observao : Vale lembrar que a funo SplitPath no valida a sintaxe do caminho e/ou arquivo digitados , nem a existncia do mesmo . Esta funo utilizada para Descrio Esta funo sempre retorna NIL. Tipo Descrio Nome do Arquivo a ser quebrado. Opcionalmente, pode Caracter incluir caminho e drive. Nome do Drive. Exemplo ( C: ). Caso o Arquivo Caracter informado no possua drive ou o caminho refira-se ao servidor, o retorno ser uma string em branco. Nome do Caminho. Caso o Arquivo informado no possua Caracter caminho, ser uma string em branco. Nome do Arquivo sem a extenso. Caso em cArq no seja Caracter especificado um nome do Arquivo, ser retornada uma string em branco. Extenso do arquivo informado em cArq , prefizada com Caracter um ponto ".". Caso a extenso em cArq no seja especificada , o retorno ser uma string em branco. Verso 5.08 Verso 6.09 Verso 7.10

determinar em uma string os elementos que compe um caminho para a localizao de um arquivo.

WRITEPPROSTRINGReviso: 05/05/2003 Abrangncia Verso 5.07 Sintaxe WRITEPPROSTRING ( < cSecao > , < cChave > , < cConteudo > , < cArqIni > ) --> lSucess Parmetros Argumento cSecao cChave cConteudo Tipo Descrio cSecao corresponde o nome da seo do ni a ser Caracter utilizada. Caso a seo no exista , a mesma ser criada. Chave da seo do ini a ter seu conteco alterado . Caso a Caracter chave no esxista na seo especificada, a mesma ser criada. cConteudo corresponde o contedo da chave a ser Caracter atualizado. cArqIni corresponde ao nome do arquivo de inicializao a ser alterado. Caso o arquivo no exista , ele ser criado . Caso o path do arquivo no seja informado , o mesmo ser Caracter criado/atualizado no diretrio onde est instalado o Protheus Server, no servidor. Caso especificado um path absoluto , com unidade de disco , o arquivo .ini ser criado e/ou atualizado na estao remota , no path informado. Verso 5.08 Verso 6.09 Verso 7.10

cArqIni

Retorno Tipo Lgico Descrio Caso a chave seja incluida e/ou alterada com sucesso , a funo retornat .T. (true) , e caso ocorra alguma falha ou impossibilidade de acesso