Página 3 de 5

Enviado: 22 Jul 2007 13:49
por sygecom
Tche, vc esta usando o RTLINK neh......eu uso o Blinker....de uma procurada no forum que tem varios post mostrando como se usa as LIB com o RTLINK.

Obs: Se não me falha a memoria a _DBFCDX.LIB serve para alguma correção do uso nos campos MEMO.

Abraços
Leonardo Machado

Enviado: 22 Jul 2007 13:51
por Gilberto M Silva
Maligno, baixei o SIX.lib vou dar uma estudada nele

Enviado: 22 Jul 2007 13:54
por Gilberto M Silva
Blz, Leonardo, vou fazir isso, melhor, já estou fazendo é que são muitas páginas, acho q ainda ñ passei por algum tópico sobre isso.
:*

Enviado: 22 Jul 2007 13:56
por Maligno
sygecom escreveu:Tche, vc esta usando o RTLINK neh......eu uso o Blinker....de uma procurada no forum que tem varios post mostrando como se usa as LIB com o RTLINK.
A sintaxe de linha de comando do RTLink é praticamente igual a do BLinker. Pelo menos no básico é igual.

Enviado: 22 Jul 2007 13:57
por Maligno
Gilberto M Silva escreveu:Maligno, baixei o SIX.lib vou dar uma estudada nele
Rode o demo da SIX e estude os fontes. Há muitas coisa ali que você certamente poderá aproveitar. Inclusive, estude a forma de compilação dele. Ajuda também. :)

Enviado: 22 Jul 2007 14:11
por sygecom
Gilberto M Silva escreveu:Blz, Leonardo, vou fazir isso, melhor, já estou fazendo é que são muitas páginas, acho q ainda ñ passei por algum tópico sobre isso.
:*
Tche, se não me engano é algo assim:

Código: Selecionar todos

clipper %1
if not errorlevel 1 rtlink file %1 library DBFCDX 
Abraços
Leonardo Machado

Enviado: 22 Jul 2007 14:13
por Maligno
Então, é como eu disse: sintaxe igual a do BLinker.

Enviado: 22 Jul 2007 18:03
por Gilberto M Silva
Gente uma pequena orientação, estou indexando desta forma:

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")
SET EXCLUSIVE ON
JANELA(07,15,15,65)
@ 08,17 SAY "AGUARDE INDEXACAO DOS ARQUIVOS"
@ 09,17 SAY "indexando arquivo de Clientes......."
If Ferase("DEVEDOR1.CDX") == -1
MENSAGE("Arquivo em uso... ")
ELSE
USE DEVEDOR alias DEVEDOR1 excl new
ENDIF
IF !neterr()
pack
DELETE FILE DEVEDOR1.CDX
index on CODCLI TAG 1 to DEVEDOR1 EVAL Progress() every lastrec()/100
index on NOMCLI TAG 2 to DEVEDOR1 EVAL Progress() every lastrec()/100
index on DATFIM TAG 3 to DEVEDOR1 EVAL Progress() every lastrec()/100
ELSE
MOTIVO()
ENDIF
@ 09,17 SAY "indexando arquivo de Produtos......."
If Ferase("ACECAD001.CDX") == -1
MENSAGE("Arquivo em uso... ")
ENDIF
USE ACECAD00 alias ACECAD001 excl new
IF !neterr()
pack
DELETE FILE ACECAD001.CDX
index on CCCODMAT TAG 1 to ACECAD001 EVAL Progress() every lastrec()/100
index on CCNOMMAT TAG 2 to ACECAD001 EVAL Progress() every lastrec()/100
ELSE
MOTIVO()
ENDIF

O primeiro indexa blz, no segundo dar o seguinte erro

DBFCDX CORRUPTION DETECTED

Gilberto

Enviado: 22 Jul 2007 18:13
por Gilberto M Silva
Há tentei usar assim
USE DEVEDOR alias DEVEDOR excl new
o indice com o mesmo nome do Arquivo, mais deu erro tb.

Enviado: 22 Jul 2007 18:16
por sygecom
Gilberto M Silva escreveu:Gente uma pequena orientação, estou indexando desta forma:

Código: Selecionar todos

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")
SET EXCLUSIVE ON
JANELA(07,15,15,65)
@ 08,17 SAY "AGUARDE INDEXACAO DOS ARQUIVOS"
@ 09,17 SAY "indexando arquivo de Clientes......."
If Ferase("DEVEDOR1.CDX") == -1
   MENSAGE("Arquivo em uso... ")
ELSE
   USE DEVEDOR alias DEVEDOR1 excl new
ENDIF
IF !neterr()
   pack
   DELETE FILE DEVEDOR1.CDX
   index on CODCLI TAG 1 to DEVEDOR1  EVAL Progress() every lastrec()/100
   index on NOMCLI TAG 2 to DEVEDOR1  EVAL Progress() every lastrec()/100
   index on DATFIM TAG 3 to DEVEDOR1  EVAL Progress() every lastrec()/100
ELSE
   MOTIVO()
ENDIF
@ 09,17 SAY "indexando arquivo de Produtos......."
If Ferase("ACECAD001.CDX") == -1
   MENSAGE("Arquivo em uso... ")
ENDIF
USE ACECAD00 alias ACECAD001 excl new
IF !neterr()
   pack
   DELETE FILE ACECAD001.CDX
   index on CCCODMAT TAG 1 to ACECAD001 EVAL Progress() every lastrec()/100
   index on CCNOMMAT TAG 2 to ACECAD001 EVAL Progress() every lastrec()/100
ELSE
   MOTIVO()
ENDIF
O primeiro indexa blz, no segundo dar o seguinte erro

DBFCDX CORRUPTION DETECTED

Gilberto
Tche, use nos nome dos CDX no maximo até 8 caracter.ex:

Código: Selecionar todos

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")
SET EXCLUSIVE ON
JANELA(07,15,15,65)
@ 08,17 SAY "AGUARDE INDEXACAO DOS ARQUIVOS"
@ 09,17 SAY "indexando arquivo de Clientes......."
If Ferase("DEVEDOR1.CDX") == -1
   MENSAGE("Arquivo em uso... ")
ELSE
   USE DEVEDOR alias DEVEDOR1 excl new
ENDIF
IF !neterr()
   pack
   DELETE FILE DEVEDOR1.CDX
   index on CODCLI TAG 1 to DEVEDOR1  EVAL Progress() every lastrec()/100
   index on NOMCLI TAG 2 to DEVEDOR1  EVAL Progress() every lastrec()/100
   index on DATFIM TAG 3 to DEVEDOR1  EVAL Progress() every lastrec()/100
ELSE
   MOTIVO()
ENDIF
@ 09,17 SAY "indexando arquivo de Produtos......."
If Ferase("ACECAD1.CDX") == -1
   MENSAGE("Arquivo em uso... ")
ENDIF
USE ACECAD00 alias ACECAD1 excl new
IF !neterr()
   pack
   DELETE FILE ACECAD1.CDX
   index on CCCODMAT TAG 1 to ACECAD1 EVAL Progress() every lastrec()/100
   index on CCNOMMAT TAG 2 to ACECAD1 EVAL Progress() every lastrec()/100
ELSE
   MOTIVO()
ENDIF
Obs: Eu não uso o DBF com o mesmo nome que o CDX.
Abraços
Leonardo Machado

Enviado: 22 Jul 2007 18:30
por Eolo
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")
RDDSETDEFAULT("DBFCDX") já seta o CDX como RDD default na aplicação, então o seguinte DBSETDRIVER("DBFCDX") está a mais, só tá chovendo no molhado...

O DBSETDRIVER() é uma opção a ser usada quando vc usa vários RDD em um mesmo aplicativo e precisa alternar entre eles.

Enviado: 22 Jul 2007 18:53
por Gilberto M Silva
Já tentei compilar tb pelo 5.3+blinker e dá o mesmo erro quando vai indexar o segundo arquivo já coloquei todos com 8 caracteres e nada.
If Ferase("ACECAD1.CDX") == -1
MENSAGE("Arquivo em uso... ")
ENDIF
USE ACECAD00 alias ACECAD1 excl new
IF !neterr()
pack
DELETE FILE ACECAD1.CDX
index on CCCODMAT TAG 1 to ACECAD1 EVAL Progress() every lastrec()/100
index on CCNOMMAT TAG 2 to ACECAD1 EVAL Progress() every lastrec()/100
ELSE
MOTIVO()
ENDIF
Dá a amensagem q está em uso e depois
DBFCDX/1012 CORRUPTION DETECTED

Gilberto

Enviado: 22 Jul 2007 18:55
por Gilberto M Silva
Só q não está em uso ele nem existe ainda

Enviado: 22 Jul 2007 18:57
por Gilberto M Silva
Sei q está dando o erro porque de alguma forma o arquivo ACECAD00 está em uso por quem ñ sei.

Enviado: 22 Jul 2007 19:21
por sygecom
Gilberto M Silva escreveu:Sei q está dando o erro porque de alguma forma o arquivo ACECAD00 está em uso por quem ñ sei.
Tche, muito estranho...ele esta aparecendo em USO....alias depois de indexar o arquivo de um USE para fehcar o mesmo....e tente colocar no inico da sua rotina um DBCLOSEALL()

Abraços
Leonardo Machado