#translate USE ... => MyUse(...)

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

#translate USE ... => MyUse(...)

Mensagem por fladimir »

Pessoal, quebrei um pouco a cabeça mas não estou acertando a sintaxe pra fazer um Translate pro comando USE

Tipo quero pegar tudo o q passa pelo USE e antes manipular isso em uma variavel, exemplo (não sei se o q quero é possível)

Código: Selecionar todos

#translate  USE [<cDatabase> ;
     [INDEX <cIndexFiles,...>] ;
     [ALIAS <cAlias>] ;
            [EXCLUSIVE | SHARED] ;
            [NEW] ;
            [READONLY] ;
       [VIA <cRDD>] ;
  [CODEPAGE <cCodePage>] ;
[CONNECTION <nConnection>]] =>   MyUse( aqui não exatamente como coloco pra pegar cada item do comando USE)

function MyUse( ........ aki não sei)

Quero alimentar nesse ponto uma variavel publica ou statica // não defini ainda qual a melhor opcao, acho q STATIC talvez.
Tipo aTabelas

aadd( aTabelas, { aki quero colocar cada parametro do comando USE tipo cDatabase, cIndex... etc } )

E nessa parte o Use normal ou DBUSEAREA()
return nil
Alguém saberia?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

#translate USE ... => MyUse(...)

Mensagem por Kapiaba »

Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

#translate USE ... => MyUse(...)

Mensagem por fladimir »

Obrigado João... então eu vi as orientações, tb tenho um manual aki mas não da certo, fiz algumas combinações, mas mais tarde tento novamente, deve ser alguma "VIRGULA" q estou esquecendo.

[] 's
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

#translate USE ... => MyUse(...)

Mensagem por JoséQuintas »

Um chute: se está definindo vários parâmetros, vai ter que usá-los na conversão, não pode deixar nenhum de fora.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

#translate USE ... => MyUse(...)

Mensagem por fladimir »

Deve ser isto...

Se fosse pra saber USE -> DBUseArea como q faz akela jogada q tipo quando gera o PPO mostra q o comando use na verdade muda pra DBUseArea... lembra? To falando bobagem?

Pq se eu olhar como o Use vira o DbUseArea talvez resolva..

O q pega é akela parte EXCLUSIVE | SHARED.... como migro isso pra MyUse(......, ?????)
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

#translate USE ... => MyUse(...)

Mensagem por Vlademiro »

O EXCLUSIVE/SHARED são marcadores especiais. Por exemplo :

Código: Selecionar todos

#command SET MESSAGE TO <n> [<cent: CENTER, CENTRE>] => ;
Set( _SET_MESSAGE, <n> ) ; Set( _SET_MCENTER, <.cent.>

Note que a variável lógica “cent” é verdadeira caso o programador digite CENTER ou CENTRE. Portanto, podemos criar uma cláusula opcional que pode ser escrita de diferentes
formas.

O comando USE poderia ser definido assim:

Código: Selecionar todos

#comand USE <(dbf)> [<nw: NEW>] =>;
<dbUseArea( <.nw.>, NIL , <(dbf)> )
O marcador de correspondência funciona assim: se o programador digitou “NEW”,
então a variável “nw” irá receber o valor lógico verdadeiro, caso contrário (se o programador
omitiu a cláusula), essa variável (“nw”) irá receber o valor falso. Note, no nosso exemplo acima,
que a variável nw foi atrelada a cláusula NEW através da correspondência [<nw: NEW>] e que
ela foi usada no lado direito dessa forma <.nw.>.

Estou atualizando o ebook e lá tem um capítulo destrinchando o pré-processador. Para baixar clicar no link a seguir. Esse assunto está nas páginas 612 à 614. https://pctoledo.org/forum/downlo ... hp?id=4442

Agora, como vc está criando algo novo, eu acho melhor vc não recriar o comando USE, mas deveria criar o comando MYUSE. Porque vc corre o risco de sobrepor o comando USE original nos seus programas. Só depois de tudo testado vc poderia ver se vale a pena sobrepor o comando ou não.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

#translate USE ... => MyUse(...)

Mensagem por fladimir »

Entendi...

Agora antes de eu continuar pq então... dentro do raciocionio a rotina abaixo não funciona... tipo RODA normal sem parar no Debug...

Código: Selecionar todos

#command DBSEEK( <xpar> ) => MyDbSeek( <xpar> )

func teste()
   If Produto->( DBSEEK(cCodigo) )
     alert('achou')
   else
	   alert('nao achou')
   endif
return

func MyDbSeek(xPar)
   altd()
   cAlias := alias()
return dbseek(xPar)

Agora se eu rodar como uma funcao normal sem fazer o Translate funciona

Código: Selecionar todos

func teste()
   If Produto->( MyDBSEEK(cCodigo) ) //--------> Percebam q não estou usando Translate mas chamando minha funcao q ai o ALTD() é chamado...
    	   alert('achou')
   else
	   alert('nao achou')
   endif
return

func MyDbSeek(xPar)
   altd()
   cAlias := alias()
return dbseek(xPar)
OU seja, parece q o Translate não funcionou...

Ambos testes compilam sem erros.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

#translate USE ... => MyUse(...)

Mensagem por rubens »

Bom dia Fladimir...

Veja que você não usou o Translate e sim o #command.. Eu tentei criar um commando wAlert para usar com a função Alert... Quando cria um novo #command se não mandar os parametros exatamente do jeito que o original não funciona daí passei o usar a #translate funcionou que é uma beleza... acho que ele nem se preocupa com o Case Sensitive também, e tem que verificar também que o #command e o #translate só vão funcionar no prg que foi declarado... por isso aquela questão do include .ch em todos os prgs..

Meu translate ficou assim dentro de um .ch

Código: Selecionar todos

#Translate Alert => wAlert
#Translate Hb_Alert => wAlert
e minha função wAlert

Código: Selecionar todos

Function wAlert( cMessage, aOptions )
Local lValue := .t.
hb_Default( @aOptions, {'Sim'})
cMessage :=  StrTran( cMessage, ';', hb_eol() )
If Len( aOptions ) = 1
	wapi_MessageBox( wapi_GetActiveWindow(), cMessage,'Alerta', WIN_MB_ICONEXCLAMATION )
Else
	lValue := wapi_MessageBox( wapi_GetActiveWindow(), cMessage, "Confirmacao",  WIN_MB_YESNO + WIN_MB_ICONQUESTION + WIN_MB_DEFBUTTON1 ) == IDYES	
EndIF
Return IF(lValue,1,2)
Com o Translate não precisa ter o mesmo escopo da função original.

Olha uns exemplos

Código: Selecionar todos

#command @ <row>, <col> PROMPT <prompt>								 ;
				    [MESSAGE <msg>]								 ;
				    [NIVEL <niv> ]								 ;
				    [WHEN <cond> ]								 ;
				    [FUNC <func> ]								 ;
				    [<botao:BOTAO> ]							 ;
				    [TAM <tam> ]								 ;
				    [<chr:CHR> ]								 ;
	 => _MenuTo(, <row>, <col>,  <prompt>							,;
						    <msg>								,;
						  [ <niv>  ]							,;
						  [ <.botao.> ]						,;
						  [ <tam> ]						    ,,;
						  [ <.chr.> ]							,;
						  [ <cond> ]						    ,,;
						  [ <func> ]  )						;;
	    SETPOS(<row>,<col>+LEN(<prompt>)-1)


// Nao esquecer de definir a variavel <v>.
#command MENU TO <Pos> [<botao:BOTAO>] [TAM <tam>] [<ajusta:AJUSTA>] [<chr:CHR>] [LINHAS <linhas>] [<cor:COLOR>] [<ver:VERTICAL>] [<hor:HORIZONTAL>];
	 => <Pos> := _MenuTo( {|_1| if(PCount() == 0, <Pos>, <Pos> := _1)} ,,,,,,[<.botao.>],[<tam>],[<.ajusta.>],[<.chr.>],,[<linhas>],,[<.cor.>],[<.ver.>] [!<.hor.>] )

#translate BOTAO()			  ;
	 =>	 _MenuTo(,,,,,,.T.,,,)

#translate BOTAO( <Pos> )		    ;
	 =>	 _MenuTo( {|_1| if(PCount() == 0, <Pos>, <Pos> := _1)} ,,,,,,.T.,,,)

#translate BOTAO( <Lin>, <Col>, <Texto> )			;
	  => SETPOS( <Lin>, <Col> )				    ;;
		  _Say( <Texto>,,,.T.,,10)

#translate BOTAO( <Lin>, <Col>, <Texto> ,[<a>] [,<Tam>] )			 ;
	 =>	 _MenuTo(,<Lin> ,<Col> ,<Texto> ,,,,[<Tam>],, )


#translate ACHOICE( <Lin>, <Col>, <Lin_F>, <Col_F>, <Matriz> )			;
	 =>	ACHOICE( <Lin>, <Col>, <Lin_F>, <Col_F>, <Matriz>,,, )

#translate ACHOICE( <Lin>,<Col>,<Lin_F>,<Col_F>,<Matriz>,[<Cond>] )	 ;
	 =>	ACHOICE( <Lin>,<Col>,<Lin_F>,<Col_F>,<Matriz>,[<Cond>],, )

#translate ACHOICE( <Lin>,<Col>,<Lin_F>,<Col_F>,<Matriz>,[<Cond>], [<UDF>] )  ;
	 =>	ACHOICE( <Lin>,<Col>,<Lin_F>,<Col_F>,<Matriz>,[<Cond>], [<UDF>], )


#translate ACHOICE( <Lin>						,;
				<Col>									,;
				<Lin_F>									,;
				<Col_F>									,;
				<Matriz>									,;
				[<Cond>]									,;
				[<UDF> ]									,;
				[<Pos> ]									);
	 =>	 _MenuTo([{|_1| if(PCount() == 0, <Pos>, <Pos> := _1)}]	,;
				<Lin>									,;
				<Col>									,;
				<Matriz>									,;
				"ACHOICE"									,;
														,;
														,;
				<Col_F>-<Col>-1							,;
														,;
														,;
			    [<Cond>]									,;
			    <Lin_F>+1-<Lin>								,;
			    [<UDF>]									 )


#translate  ROUND( <nValor>,<nDecimals> ) ;
	   => _ROUND( <nValor>,<nDecimals> )

/***
*  @..GET
*/

#xtranslate   .GET_POS	 =>	  \[LEN(GetList),1]

#command @ <row> , <col>  GET <var> ;
		  [<clauses,...>]		 ;
		  PASSWORD			 ;
		  [<moreClauses,...>]	 ;
							 ;
	 => @ <row> , <col>  GET <var> ;
		  [<clauses>]			 ;
		  SEND reader := {|oGet|  ;
			  GetPassword(oGet) };
			  [<moreClauses>]

#command @ <row>, <col> GET <var>								  ;
				    [PICTURE <pic>]							  ;
				    [VALID <valid>]							  ;
				    [WHEN <when>]							  ;
				    [MSG <msg>]							  ;
				    [SEND <send>]							  ;
														  ;
	 => SetPos( <row>, <col> )								  ;
	  ; AAdd(												  ;
		 GetList,{										  ;
		 _GET_( <var>, <"var">, <pic>, <{valid}>, <{when}> ):display();
		   ,[<msg>]} )										  ;
		[; GetList.GET_POS:<send>]
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

#translate USE ... => MyUse(...)

Mensagem por fladimir »

Pessoal... desculpem... meu erro foi completa desatenção....
Depois de ler as dicas dos colegas e do Rubens em particular, eu revisei o codigo e pensei... ta tudo aparentemente certo, pq não funciona... ai pensei... vou pegar esta declaração #translate e colocar no CH foi ai q PRESTEI atenção ao fato de q a declaração estava abaixo da rotina/função q estou usando pra testar...kkkk foi mal...

Estava assim...

Código: Selecionar todos

function teste...
...
return

#translate ....   //--------------> como estava abaixo da function Teste não era visto/executado.

function MyDbSeek()
return ....
Como a funcao teste vai exectuar o translate se o translate esta depois... kkkkk mudei pro inicio e deu certo

Agora vou continuar pra fazer o #translate do Use => MyUse

Vlw pessoal.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

#translate USE ... => MyUse(...)

Mensagem por fladimir »

Uma observação

se fizer:

Código: Selecionar todos

#translate DbSeek(<xpar>) => MyDbSeek(<xpar>)

function MyDbSeek(xPar)
...
return DbSeek(xPar)
Vai entrar num LOOP

Então teria q ser

algo tipo

Código: Selecionar todos

function MyDbSeek(xPar)
     SEEK xPar
return Found()
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

#translate USE ... => MyUse(...)

Mensagem por fladimir »

Pessoal, consegui fazer sem dar erro mas não funciona...

Estou fazendo esta tentativa de mudar a chamada do comando USE para uma função MyUse() devido o LETODB para não ter q mudar em todo o sistema tendo q acrescentar em cada Use Tabela Use cPath + Tabela...

Código: Selecionar todos

	#command USE [<cDatabase>] ;
				     INDEX <cIndexFiles> ;
				     ALIAS <cAlias> ;
				            EXCLUSIVE | SHARED ;
				            NEW ;
				            READONLY ;
				       VIA <cRDD> ;
				  CODEPAGE <cCodePage> ;
				CONNECTION <nConnection> => ;
				MyUse( <cDatabase>, <cIndexFiles>, <cAlias>, EXCLUSIVE, NEW, READONLY, <cRDD>, <cCodePage>, <nConnection>)

*************************************************************************************************************************************
function MyUse( <cDatabase>, <cIndexFiles>, <cAlias>, EXCLUSIVE, NEW, READONLY, <cRDD>, <cCodePage>, <nConnection>)
     
  Alert('To aki')  //--> Não cai aki.
   IF Empty( cPath )
	   RDDSETDEFAULT( "DBFCDX" )
	ELSE
	   cPath := "//" + cPath + IiF( ":" $ cPath, "", ":" + ALLTRIM( STR( nPort ) ) )
	   cPath += Iif( Right(cPath,1) == "/", "", "/" )
	   RDDSETDEFAULT( "LETO" )
	ENDIF...
      
  DbUseArea(...) // aki vou colocar as variaveis relativas
return
Se deixo assim compila sem erros mas não passa pelo MyUse
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

#translate USE ... => MyUse(...)

Mensagem por Jairo Maia »

Olá Fladimir,

Tente alterar as linhas 9 e 10 para esta forma (passar o => para a frente de MyUse ):

Código: Selecionar todos

CONNECTION <nConnection> ;
            => MyUse( <cDatabase>, <cIndexFiles>, <cAlias>, EXCLUSIVE, NEW, READONLY, <cRDD>, <cCodePage>, <nConnection>)
Na função MyUse(), também eu mudaria a linha:

Código: Selecionar todos

function MyUse( <cDatabase>, <cIndexFiles>, <cAlias>, EXCLUSIVE, NEW, READONLY, <cRDD>, <cCodePage>, <nConnection>)
Para:

Código: Selecionar todos

function MyUse( cDatabase, cIndexFiles, cAlias, EXCLUSIVE, NEW, READONLY, cRDD, cCodePage, nConnection)
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

#translate USE ... => MyUse(...)

Mensagem por fladimir »

Obrigado Jairo...

Fiz as mudanças sugeridas, compilou, mas ao executar não passa pelo MyUse()

Não sei o q pode ser.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

#translate USE ... => MyUse(...)

Mensagem por fladimir »

Alguém poderia testar ?

Como não deu erro não teria q passar pela função MyUse ()?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

#translate USE ... => MyUse(...)

Mensagem por Toledo »

Não testei, mas tenta o seguinte:

Código: Selecionar todos

#command USE <(cDatabase)> ;
            [INDEX <(index1)> [, <(indexN)>]] ;
            [ALIAS <cAlias>] ;
            [<ex: EXCLUSIVE>] [<sh: SHARED>] ;
            [<nw: NEW>] ;
            [<ro: READONLY>] ;
            [VIA <cRDD>] ;
            [CODEPAGE <cCodePage>] ;
            [CONNECTION <nConnection>] => ;
         MyUse( <(cDatabase)>, <(cAlias)>, iif( <.sh.> .OR. <.ex.>, ! <.ex.>, NIL ), <.nw.>, <.ro.>, <cRDD>, <cCodePage>, <nConnection>) ;
         [; dbSetIndex( <(index1)> )] ;
         [; dbSetIndex( <(indexN)> )]

*************************************************************************************************************************************
function MyUse( cDatabase, cAlias, lEXCLUSIVE, lNEW, lREADONLY, cRDD, cCodePage, nConnection)
  
 Alert('To aki') //--> Não cai aki.
 IF Empty( cPath )
  RDDSETDEFAULT( "DBFCDX" )
 ELSE
  cPath := "//" + cPath + IiF( ":" $ cPath, "", ":" + ALLTRIM( STR( nPort ) ) )
  cPath += Iif( Right(cPath,1) == "/", "", "/" )
  RDDSETDEFAULT( "LETO" )
 ENDIF...
   
DbUseArea( lNEW, ;
           cRDD, ;
           cDatabase, ;
           cAlias, ;
           lEXCLUSIVE, ;
           lREADONLY, ;
           cCodePage, ;
           nConnection )

return
Abraços
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder