DBSETDRIVER() ou RDDSETDEFAULT()

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

marcelojr
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 18 Ago 2007 07:59
Localização: CUIABA/MT

DBSETDRIVER() ou RDDSETDEFAULT()

Mensagem por marcelojr »

Usando INDICES CDX.... gostaria de saber dos amigos qual a diferença entre:

RDDSETDEFAULT("DBFCDX")
e
DBSETDRIVER("DBFCDX")

100+

valeu.
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Para usar o CDX como RDD default (em lugar do NTX), vc faz, no inicio do seu programa:
REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")

O DBSETDRIVER é o seguinte: como vc pode ter CDX e NTX rodando ao mesmo tempo (em diferentes áreas), numa mesma aplicação, vc usa o DBSETDRIVER("DBFCDX") ou DBSETDRIVER("DBFNTX") para alternar entre eles.

E vc ainda pode usar a cláusula VIA no comando USE ou o argumento "DBFCDX" ou "DBFNTX" na função DBUSAREA() ao invés de RDDSETDEFAULT().
marcelojr
Usuário Nível 1
Usuário Nível 1
Mensagens: 6
Registrado em: 18 Ago 2007 07:59
Localização: CUIABA/MT

Mensagem por marcelojr »

AH. ENTENDI.... ENTÃO SE EU SÓ USO CDX, não vou precisar DBSETDRIVER().....


blz

obrigado.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Humm, eu só uso CDX e uso RDDSETDEFAULT("DBFCDX") e o DBSETDRIVER("DBFCDX") !!! até hj não me deu problema algum em usar uma linha a mais no meu PRG principal....hehe...

Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Nessa linha de pensamento, se em exagero, o programador cultiva o vício do desperdício, que pode até acabar gerando gargalos desnecessários ou, no mínimo, um código mais difícil de manter. É bem mais saudável saber precisamente o que é necessário ou não.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Em tempo: se for o caso de alguém usar a biblioteca SIX, querendo dispensar os NTX e usar apenas CDX ou NSX, não será necessária qualquer função que informe o compilador qual RDD será utilizado.
Neste caso, basta linkar o objeto SIXCDX ou SIXNSX, conforme o caso. Isso já sobreporá o RDD antigo. E além do objeto, claro, será necessário incluir a biblioteca SIX3.LIB.
O programa em si só precisará do arquivo de cabeçalho SIXCDX2.CH ou SIXNSX2.CH, conforme o RDD escolhido. Isso por causa dos comandos de tratamento de arquivos, que utilizam outras funções.
Feito isso, a migração estará completa. Nada mais será necessário.

Aliás, o comando REQUEST também não é necessário porque o arquivo de cabeçalho escolhido já possui um REQUEST para o objeto apropriado.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

RDDSETDEFAULT faz a mesma coisa que o DBSETDRIVER, ela foi criada para padronizar os drives de RDD a partir da versão 5.2.

O certo seria então.

REQUEST DBFCDX
RDDSETDEFAULT("DBFCDX")

Para alternar entre um drive e outro é mais facil usar o nome do drive na abertura do DBF assim.

USE TESTE.DBF NEW ALIAS TESTE VIA "DBFCDX"
USE TESTE2.DBF NEW ALIAS TESTE2 VIA "DBFNTX"

Assim você pode trabalhar com mais de um tipo de indice no mesmo programa.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Como eu disse, se for utilizada a SIX, o REQUEST não será necessário, se for utilizado o header do driver.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Para alternar entre um drive e outro é mais facil usar o nome do drive na abertura do DBF assim.
USE TESTE.DBF NEW ALIAS TESTE VIA "DBFCDX"
USE TESTE2.DBF NEW ALIAS TESTE2 VIA "DBFNTX"
Vagucs,

Não precisa do "ALIAS TESTE". Se o apelido desejado for igual ao nome do arquivo, basta fazer:
USE TESTE.DBF NEW VIA "DBFCDX"

Também, não sei se é "mais fácil" fazer do jeito que vc sugeriu, quando forem dezenas de arquivos... Ao invés de repetir VIA "DBFCDX" dezenas de vezes, que tal fazer DBSETDRIVER("DBFCDX") só uma vez?
Responder