Página 1 de 1

Trocando NTX para CDX

Enviado: 02 Out 2006 11:50
por Jarbas
Pessoal, bom dia, troquei um sistema meu de NTX para CDX e agora toda hora eu preciso reorganizar os arquivos pois as informações não estam sendo encontradas.

Estou indexando :
index on numero TAG 1 to vendas EVAL CDXPROGRESS(lN_Lin,lN_Col) EVERY 1=1
index on cliente TAG 2 to vendas EVAL CDXPROGRESS(lN_Lin,lN_Col) EVERY 1=1

Eu troquei :

" Set order to 1" por "ordsetfocus("1")
" Set index to " por " dbsetindex("vendas")

Estaria faltando mais alguma coisa ???

Desde já obrigado.
Abs
Jarbas

Enviado: 02 Out 2006 12:20
por momente
Caro amigo Jarbas,

1º Delete o arquivo .cdx (verifique se todos os usuários estão fora do sistema);
2º Eu costumo usar assim : index on campo tag tag1 EVAL CDXPROGRESS(lN_Lin,lN_Col) EVERY 1=1 (o indice assume o alias do arquivo aberto);
3º DBSETINDEX("VENDAS") para abrir o arquivo .cdx;
4º ORDSETFOCUS(1) ou 2,3,4... - para selecionar a ordem;

No inicio do seu sistema não pode faltar:

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")
DBSETDRIVER("DBFCDX")

E no .lnk coloque as libs : dbdcdx.lib e _dbfcdx.lib.

Espero ter ajudado! :)Pos

Enviado: 02 Out 2006 19:58
por Jarbas
Momente, obrigado, eu já tinha colocado :

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")

Mas não coloquei esse :
DBSETDRIVER("DBFCDX")

e não tenho a lib _DBFCDX.LIB , se vc puder me arrumar , eu agradeço.

Obrigado
Abs
Jarbas

Enviado: 02 Out 2006 20:00
por Jarbas
uma duvida , eu devo usar ORDSETFOCUS(1) ou ORDSETFOCUS("1") ou qq um dos dois ???


Obrigado

Enviado: 02 Out 2006 23:55
por vagucs
No indice CDX vc tem que ordenar o focu do indice pelo nome da TAG ou seja, toda TAG que vc especificar é em formato caracteres logo com NTX vc seta assim

SET ORDER TO 1 ou DBSETORDER(1)

Em CDX assim

SET ORDER TO TAG 1 ou DBSETORDER("1")

Sem mais
Wagner Nunes
www.vagucs.com.br

Enviado: 03 Out 2006 12:01
por Eliane
Mudei meu sistema para CDX, mas não modifiquei todos os programas. Alguns ainda usam a sintaxe:

DBSETORDER(1) e não tive problema algum. Ainda !

Nos progs que alterei, usei a sintaxe ORDSETFOCUS(1).

Não coloquei como "1", mas nunca tive problemas ?! É necessário mesmo alterar ?

Enviado: 03 Out 2006 12:13
por vagucs
Bom, aqui se eu usar DBSETORDER(1) e não "1" não funciona por causa do nome da TAG.

Enviado: 03 Out 2006 12:49
por momente
Amigo Jarbas,

Na verdade foi falha minha, quando crio o indece coloco assim:

index on campo tag tag1 ...

ai...

ordsetfocus("tag1") ou ordsetfocus("tag2"), assim por diante.

quanto a lib _dbfcdx peguei do clipper53b, li alguma coisa a respeito, mas não tenho propriedade para dizer se muda realmente alguma coisa, fato que eu compilo com meus programas e nada deu errado, então.

Se vc não tiver o clipper53 me fale seu email que eu mando, OK?

valeu! :)Pos

Enviado: 03 Out 2006 19:54
por Jarbas
Momente, obrigado, eu realmente não tenho o clipper 5.3 , mas se não for necessario usar o _dbfcdx.lib não pretendo usa-lo .

Vou fazer uma revisão no sistema pra ver se eu acho onde está o problema do indice estar desatualizando.

De qq forma eu agradeço sua atenção .

Até mais e um abraço
Jarbas

Enviado: 04 Out 2006 12:03
por Eliane
Vagucs, será é porque ainda uso o CLIPPER 52e ou não ?

Enviado: 04 Out 2006 12:46
por vagucs
Se tiver fazendo um sistema do zero, melhor fazer ele em xharbour.

Se o programa já tá pronto, acho que não tem porque mudar a não ser se não está tendo boa aceitação dos seus clientes.

Se você tem bom conhecimento de Clipper/xBase e quiser migrar para uma ferramenta mais portável, use o xHarbour.