Página 1 de 1

Migração, Acentos, Firebird

Enviado: 25 Mar 2010 12:47
por carlos.keiko
Colegas,

Estou começando um projeto com o Harbour 2.0 e Firebird em modo texto em Linux.

Gostaria de saber se alguém já implementou alguma mudança no getsys.prg para não aceitar acentos e o “ç“, ou seja direto, quando o usuário digitar o “ç” já aparecer o “c” e quando ele teclar algum acento aparecer o mesmo, sem a letra acentuada.

Sei que posso fazer uma função para remover os acentos da variável depois de digitado, mas alguém já consegui implementar isso direto no getsys.prg?

Outra dúvida é quando ao acesso ao Firebird pelo Harbour 2.0 no Linux, na pasta contrib vi que temos o HBFbird, e temos alguns exemplos na pasta tests, gostaria de saber como faço para incluir esta LIB no meu projeto. Uso o HBMK2 para compilar o projeto, como defino a ele para usar o HBFbird.

E as variáveis de ambiente, do Harbour, como são definidas no Linux, no Clipper usamos o

SET LIB=C:\CLIPPER5\LIB
SET INCLUDE=C:\CLIPPER5\INCLUDE

E no Harbour como são definidas? no Linux? e no Windows?

Como podem ver sou iniciante no mundo Harbour e Linux, sou programador Clipper a vários anos, tenho vários sistemas desenvolvidos com o mesmo, mas esta a cada dia mais difícil manter os mesmo, por isso estou querendo migrar para o Harbour e também sair dos arquivos DBF/CDX, que são ótimos para sistemas com pouco acessos simultâneos e locais, mas hoje em dia o mercado quer soluções on-line, e temos a necessidade de usar um SGDB.

Não desejo usar nenhuma interface gráfica neste primeiro momento, somente texto mesmo. Se não for pedir de mais, gostaria de um prg de exemplo para analisar quais as funções necessárias para poder trabalhar com o Harbour e acessar o Firebird. Achei exemplos mais todos usando interface gráfica o que complica o seu entendimento.

Desculpe pelo número excessivo de perguntas nesse primeiro tópico, mas vocês sabem como são os iniciantes.

Agradeço a compreensão de todos.
Obrigado
Att.
Carlos

Re: Migração, Acentos, Firebird

Enviado: 25 Mar 2010 14:38
por alxsts
Olá!

Seja bem-vindo ao fórum!.

Quanto à questão da acentuação, leia este tópico. Creio que ajudará.

Quanto às demais questões, aguardemos a manifestação dos demais colegas.

Sugiro também que você utilize o recurso de busca do fórum.

Re: Migração, Acentos, Firebird

Enviado: 25 Mar 2010 16:15
por Itamar M. Lins Jr.
No Linux as variaveis são "exportadas"

export Myvar=xyz
Temos um equivalente ao autoexec.bat, que fica na pasta /etc/profile
E outro que fica na pasta de cada usuário cadastrado no linux.
A sequencia é essa. Caso use o interpretador bash que é o padrão.

Código: Selecionar todos

Quando é carregado através de um shell que requer login (nome e senha), o bash procura estes arquivos em seqüência e executa os comandos contidos, caso existam:
#
/etc/profile
#
~/.bash_profile
#
~/.bash_login
#
~/.profile
O "~"  significa que é o diretório(pasta) root do usuário
As definições para acentos que eu uso são:

Código: Selecionar todos

REQUEST HB_LANG_PT,HB_CODEPAGE_PTISO,HB_CODEPAGE_PT850
Function Main
HB_CDPSELECT([PTISO])
hb_langselect([PT])
Saudações,
Itamar M. Lins Jr.

Re: Migração, Acentos, Firebird

Enviado: 25 Mar 2010 16:22
por Itamar M. Lins Jr.
Quanto ao uso de DBF/CDX no linux, não existe problema de corrupção de dados.
Via SSH/Telnet...etc o processo é cliente/servidor.
Estude a possibilidade de nesse primeiro momento usar o LetoDb. Não vai mudar muita coisa nos seus fontes para poder usa-lo.
O LetoDB equivale ao carissimo ADS, é um daemon que fica "escutando" na porta 2812 do TCP/IP, e executa os comandos por nós utilizados."DBSEEK,LOCATE,etc" todos que são suportados pelo RDD CDX do Harbour.
Inclusive indexação com clausula "for", indices temporários etc...

Saudações,
Itamar M. Lins Jr.

Re: Migração, Acentos, Firebird

Enviado: 25 Mar 2010 18:00
por carlos.keiko
Alexandre, pelo que li nos tópicos acho melhor criar uma função para retirar os acentos e o "ç" e colocar no valid, obrigado.

Itamar, obrigado pelas dicas, são muito valiosas para quem esta começando, principalmente porque temos muitos exemplos para o xHarbour que ficou muito difundido, já para Harbour são poucas, e muitos estão usando bibliotecas gráficas que não é o meu caso.

Fico feliz em saber que o DBF/CDX não corrompe no Linux, o que acontece no Clipper é as vezes gravar no DBF e haver um problema, como o micro se desligar, ou o programa trancar,... e não atualizar o CDX, com isso temos que recriar os índices, CDX, isso foi corrigido no Harbour usando Linux?

Outro problema que vejo a quanto a integridade dos dados, ou seja, como o DBF/CDX não tem transações, num lançamento de venda de um produto tenho que gravar no arquivo Movimento e baixar o estoque no arquivo Produtos, se houver uma falha depois de gravar o arquivo Movimento, vai existir a movimentação pois consegui gravar o lançamento e o estoque do arquivo Produtos vai estar errado. Sei que temos meios para contornar este problema, como controles manuais, mas nem sempre isso resolve aonde o movimento de lançamentos é muito grande, pelo que li sobre o LetoDB ele implementa estas transações estou certo? É confiável? Alguém utiliza em produção? Ou há outra forma de contornar este problema?

Já pesquisei sobre o LetoDB, mas não encontrei muita coisa, principalmente para Linux, vou continuar pesquisando mas caso alguém tenha algum exemplo pratico facilitaria e muito.

Obrigado por responder as minhas dúvidas iniciais, ainda estou meio perdido e qualquer dica ou exemplo prático ajuda e muito, por mais simples que seja.

Sei que responder dúvidas de iniciantes é chato, mas como a documentação é escassa, não tenho a quem recorrer somente aos nobres colegas.

Obrigado
Abraço
Att.
Carlos

Re: Migração, Acentos, Firebird

Enviado: 26 Mar 2010 09:48
por Itamar M. Lins Jr.
...
temos muitos exemplos para o xHarbour que ficou muito difundido,...
Exemplos velhos e sem atualização.
Com Harbour não precisamos setar mais nada apenas instalar e usar.
O hbmk2 é muito superior ao hbmake, qualquer um com minimo de conhecimento pode usa-lo.
Podemos fazer:

Código: Selecionar todos

hbmk2 *.prg
como o micro se desligar, ou o programa trancar,... e não atualizar o CDX, com isso temos que recriar os índices, CDX, isso foi corrigido no Harbour usando Linux?
Se isso ocorrer pode dar "pau" em qualquer SGDB até no Oracle está sujeito a isso. Uma vez que a gravação de dados não depende só do SGDB, lembre-se que existe uma solicitação ao sistema operacional para fazer o "commit" dos dados, mas isso não garante que ele executou a atarefa fisicamente, os HD's atuais possuem CACHE... fora isso temos também o problema do FS escolhido na hora de particionar o HD. No linux eu usava o reiserfs, podia desligar o micro puxando a tomada que comigo nunca deu problema nos DBF's.
...se houver uma falha depois de gravar o arquivo Movimento, vai existir a movimentação pois consegui gravar o lançamento e o estoque do arquivo Produtos vai estar errado...
O leto possue um nivel de controle de transações.É confiavel, e funciona no linux.
Agora esse problema é raro ocorrer com DBF no linux.
Mesmo usando SGDB é preciso programar isso com cuidado.
Porque usando DBF por exemplo:

Código: Selecionar todos

if rotina_de_baixar_estoque retornar ok
  if gravou_pedido_de_compra retorna ok

//Eu só irei gravar o pedido de compra se conseguir baixar o estoque.

Para mim o recurso de rollback é usado raramente.
No código acima não vejo necessidade.
Exemplo usando o letodb com transações.

Código: Selecionar todos

Function ChangeNakl( nSummNew )
Local nDelta

   leto_BeginTransaction()

   select NAKL1
   if !dbSeek( Dtos(NAKL2->DORD)+STR(NAKL2->NORD) ) .or. !DoRlock( 3 )
      leto_Rollback(.F.)
      Return .F.
   endif

   select NAKL2
   if DoRlock( 3 )
      nDelta := nSummNew - SUMMA
      replace SUMMA with nSummNew
   else
      leto_Rollback()
      Return .F.
   endif

   select NAKL1
   replace SUMMA with SUMMA + nDelta

   leto_CommitTransaction()

Return .T.
Saudações,
Itamar M. Lins Jr.

Re: Migração, Acentos, Firebird

Enviado: 26 Mar 2010 11:10
por carlos.keiko
Obrigado Itamar,

Como sempre as tuas repostas são bem completas e objetivas. Graças as repostas dos colegas do Fórum e principalmente as tuas, sou um novo membro do Harbour, espero num futuro próximo estar ajudando também.

Já tinha coloca algumas duvidas na lista do Planeta Harbour mas não obtive êxito nos meus questionamentos, parabéns a este Fórum e a todos os seu participantes.

Abraço
Carlos

Re: Migração, Acentos, Firebird

Enviado: 26 Mar 2010 11:14
por Itamar M. Lins Jr.
Disponha. "Quem não vive para servir não serve para viver"
Recebi seu email, entrarei em contato.

Saudações,
Itamar M. Lins Jr.