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