Primeiro projeto em xHarbour o que devo usar ?

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Primeiro projeto em xHarbour o que devo usar ?

Mensagem por Clipper »

Prezados Colegas

Resolvi fazer meu primeiro sistema completo em xHarbour, venho então pedir a ajuda de vocês para a indicação do que exatamente usar.

Nesse meu sistema pretendo usar a interface da Visual Lib e como banco de dados algum SQL, pois, esse sistema deverá ser acessado remotamente via TS, SSH ou algo parecido, sabendo das minhas necessidades peço que postem suas opiniões, se possível que não fuja muito disso.

Qual versão do xHarbour ?
Qual SQL ?
Que tipo de acesso remoto devo prover ?
Usando a Visual Lib, precisarei de alguma outra LIB para interface ?
E para acesso ao SQL qual LIB precisarei usar ?

Vale salientar que a base de dados será relativamente pequena, ela irá ter no máximo 3.000 registros ao ano.

Obrigado pela atenção de todos.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Eric

Obrigado por sua resposta.

Pretendo continuar usando a sintaxe do Clipper então está descartada a possibilidade de uso de qualquer IDE.

A questão da versão é porque parece que a VL não funciona bem em algumas versões, então preciso saber qual exatamente usar.

Quanto ao SQL não sei se entendi bem, então quer dizer que o xHarbour tem acesso nativo ao MySql sem uso de lib externe ?

Obrigado.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Clipper escreveu:A questão da versão é porque parece que a VL não funciona bem em algumas versões, então preciso saber qual exatamente usar.
Já temos os fontes da VL. Então, pode-se compilar em qualquer vs do xharbour que não tem problema.

Nosso colega forense Sygecom (Leonardo) tem os fontes da VISUAL LIB que pode te passar na hora.

Se vc usar a VL, não precisará de nenhum outra lib, a não ser da GTWVW ou GTWVT, caso vc queira que seu sistema fique JANELADO e não TELA INTEIRA (isso resolve o problema do bug de console do win98).
Clipper escreveu:Quanto ao SQL não sei se entendi bem, então quer dizer que o xHarbour tem acesso nativo ao MySql sem uso de lib externe ?
Sim. Tem acesso nativo a MySql e a PostgreeSql (se não me engano). O problema é que vc terá que mudar todos os comandos para SQL. O bom é que vc não fica dependendo de nenhuma lib de terceiro.

Eu particularmente, prefiro o MEDIATOR para MySql. Primeiro pq é GRÁTIS. Segundo pq com alguns poucos comandos seu sistema está acessando base MySql (sem mudar nenhum comando xbase) e é só correr pro abraço.

Há mais de 02 anos estou utilizando em um cliente de médio porte SEM NENHUM PROBLEMA. Só vou lá receber o dinheiro... rsrsrsrsrsrs

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Obrigado meu querido amigo Janio

Era exatamente isso que eu queria saber.

Eu não sabia que tinha o Mediator free, onde baixo e o que devo baixar e instalar ?

Depois te pago uma cajuína !

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Outra coisa,

Como a base será muito pequena, acredito ser desnessário o uso de um banco de dados relacional. Se vc tem experiência em LINUX, podes compilar pra LINUX com DBFCDX mesmo e (dizem. Nunca usei Linux) voa baixo mesmo com acesso remoto.

Inclusive, já que temos os fontes da VL, vc pode ter seu sistema em LINUX com VISUAL LIB, legal não?

Veja algumas telas que colegas postaram ->
https://pctoledo.org/forum/viewto ... ight=linux

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Clipper escreveu:Eu não sabia que tinha o Mediator free, onde baixo e o que devo baixar e instalar ?
Pois é de GRATIS, cara! E bem estável. Como disse: Nunca deu um único problema em uma rede com 20 maquinas penduradas.

Tudo q vc precisa saber está aqui

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
MARCELOG
Usuário Nível 4
Usuário Nível 4
Mensagens: 546
Registrado em: 15 Mar 2005 16:54
Localização: Divinópolis/MG

Mensagem por MARCELOG »

Olá Clipper,
acho que o mediator não é totalmente free, sendo certo que há limite de conexões e pode ser eventualmente descontinuado.
Por outro lado, o xharbour tem acesso nativo aos banco de dados relacionais indicados.
Esse acesso nada mais é que uma ponte com o banco de dados.
Ou seja, ele apenas envia os comandos para o gerenciador do banco de dados e pronto, recebendo as informações de sucesso ou erro, ou um array contendo as informações no caso de pesquisa ou instrução.
A linguagem sql utilizada no mysql é simples de ser aprendida e quase indolor, pois usa um "ingleis" lógico.
Aqui mesmo no fórum tem links para tutoriais facilmente "digeríveis".
Com o seu conhecimento e lógica, em 1 dia já vai estar dando cacetadas, eu garanto.
É só baixar o mysql e instalar.
Ver o tutorialzinho que está em http://br.geocities.com/sdiasneto/mysql/index.html
e pronto.

Apenas um exemplo do esquema xharbour:

Para saber a hora do servidor onde o mysql está instalado de qualquer lugar do mundo onde seja possível a conexão:
...
cQuery := "SELECT NOW()"
/*
Eu instrui (em 'ingleis') SELECIONE AGORA
*/

oQuery := oServer:QUERY(cQuery)

/*
Mandei executar a instrução

Poderia ser

oQuery := oServer:QUERY("SELECT NOW()")

Mas com a variável fica mais legível né.

É que as vezes a instrução tem várias linhas, etc.
//

IF oQuery:NETERR() // deu erro

ALERT(oQuery:ERROR())

/*
Se o mysql estiver configurado para português a mensagem de erro vem em bom português.
Acho que deviam possibilitar essa configuração através de instrução, mas até a versão 5... não é possível, devendo ser alterado o arquivo de inicialização ou o comando de ativação.
Mas deixa isso prá depois, veja o basicão primeiro.
*/

ENDIF

ALERT(oQuery:GETROW(1):FIELDGET(1))

oQuery:DESTROY() // detono a pesquisa e libero memória

/*
Você pediu a hora e o procedimento retornou um array de uma linha e coluna.
Conforme a instrução, retornam-se várias linhas e colunas
getrow = linha
fieldget = coluna
*/

Eu não pensava duas vezes, passava o final de semana estundando o mysql.
Via o exemplo da pasta samples do xharbour e partia para o abraço.

Veja bem, sem muita dor, o sistema vai ficar em rede mundial se necessário.

Aquele negócio de disquete, pacote de informação, sincronização, etc., vai virar passado ou então, bem mais mais fácil de administrar.

Boa sorte.

MarceloG

Ps: O esquema de programação vai ter que modificar para array.
Água mole em pedra dura tanto bate que até espirra!
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado colegas

Agradeço a todos, diante do exposto acho que vou ficar com a opção de usar o SQL nativo, apesar de ter que usar comandos SQL (que terei que aprender), mas como será um projeto que começará do zero creio que a melhor opção será usar oSQL nativo, melhor que seja agora que é do 0, do que futuramente ter que migrar ou coisa parecida.

Amanhã coloco a mão na massa, e fiquem por aí, acredito que vou voltar aqui com uma certa frequência.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Mensagem por Itamar M. Lins Jr. »

Clipper escreveu:Prezado colegas

Agradeço a todos, diante do exposto acho que vou ficar com a opção de usar o SQL nativo, apesar de ter que usar comandos SQL (que terei que aprender), mas como será um projeto que começará do zero creio que a melhor opção será usar oSQL nativo, melhor que seja agora que é do 0, do que futuramente ter que migrar ou coisa parecida.

Amanhã coloco a mão na massa, e fiquem por aí, acredito que vou voltar aqui com uma certa frequência.

Até logo.

Marcelo
Apenas uma informação para voce.
O MySQL do xharbour não está totalmente pronto, está inacabado.
O desenvolvedor passou a usar Postgress que está totalmente funcional no xharbour.
Quem criou essas duas classes foi o Rodrigo Moreno, que tambem esta desenvolvendo a XhGTK uma biblioteca grafica para windows e linux.

Saudações
Itamar M. Lins Jr.
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Itamar M. Lins Jr. escreveu:O MySQL do xharbour não está totalmente pronto, está inacabado.
O desenvolvedor passou a usar Postgress que está totalmente funcional no xharbour.
Obrigado pela informação.

Neste caso irei usar o Postgress.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
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 »

Postgres pra 3000 registros por ano? Melhor pesquisar um pouco mais a respeito desse SGBD. Ele é pesado demais pra isso. Seria o mesmo que matar uma mosca com um Tomahawk. :)

Com esse volume de dados, ficaria muito melhor usar DBF. Depois, num projeto maior, que envolva um volume de dados maior, aí sim você poderia partir para algo melhor.
[]'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
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Maligno

Realmente o Postgre é pesado, mas a questão é que precisarei usar acesso remoto (TS ou SSH) talvez no futuro precise que este BD fique hospedado num servidor Web, então não vejo outra solução senão usar SQL, como pôde ver o MySql não está totalmente implementado ou pior descontinuado, então me sobrou o Postgre, ainda não sei a respeito da Sqllib do Vanilton, talvez seja uma solução. Um outro problema é que precisa ser free, pois como é um projeto pequeno não dá para eu repassar muito custo para o cliente.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Mensagem por Itamar M. Lins Jr. »

Clipper escreveu:Prezado Maligno

Realmente o Postgre é pesado, mas a questão é que precisarei usar acesso remoto (TS ou SSH) talvez no futuro precise que este BD fique hospedado num servidor Web, então não vejo outra solução senão usar SQL, como pôde ver o MySql não está totalmente implementado ou pior descontinuado, então me sobrou o Postgre, ainda não sei a respeito da Sqllib do Vanilton, talvez seja uma solução. Um outro problema é que precisa ser free, pois como é um projeto pequeno não dá para eu repassar muito custo para o cliente.

Até logo.

Marcelo
Se vai usar ssh, é muito melhor usar linux mesmo e não vai mudar nada no seu prg, e continuar com dbf.

Se for usar windows, bom eu no seu caso usaria o RDDADO ou o LETODB, ficaria com este ultimo porque a base de dados é pequena.
Já testei aqui o letodb e esta funcionando. O letodb é um servidor da dados dbfcdx, em outras palavras é um motor(daemon) que fica rodando no cliente e voce só faz as requisições os código são todos do clipper mesmo, muito mais simples.
E o pessoal está trabalhando constantemente nele.

Código: Selecionar todos

2008-02-28 15:12 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su)
  * source/client/leto1.c
    * Version number changed to 0.4
  * source\server\letofunc.c
    * Version number changed to 0.4

2008-02-28 11:58 UTC+0100 Miguel Angel marchuet Frutos (miguelangel/at/marchuet.net)
  * client\leto1.c
  * server\letofunc.c
  * server\server.prg
    ! fixed unlock, extra Z founded.
    + added support to DbOrderInfo, DBOI_NAME, DBOI_BAGNAME and DBOI_UNIQUE (in setget mode)

>>>>>>> 1.68
2008-02-28 10:15 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su)
  * source/client/leto1.c
    * Added support for char fields with len >= 256
  * source/server/server.prg
    * cValToChar() changed to avoid using of syntax, incompatible with Harbour
      ( SWITCH ... )

2008-02-27 22:10 UTC+0200 Pavel Tsarenko (tpe2/at/mail.ru)
  * source\server\server.prg
  * source\server\letofunc.c
  * source\client\leto1.c
    + initial support of relations

2008-02-27 21:56 UTC+0300 Alexander Kresin (alex/at/belacy.belgorod.su)
  * source\server\letofunc.c
    ! Bugs fixed, related to tables reallocation

2008-02-26 22:30 UTC+0200 Pavel Tsarenko (tpe2/at/mail.ru)
  * source\server\server.prg
  * source\client\leto1.c
    + added INDEX ON ... CUSTOM support

2008-02-26 13:46 UTC+0100 Miguel Angel marchuet Frutos (miguelangel/at/marchuet.net)
  * include\rddleto.h
  * source\client\leto1.c
  * source\server\letofunc.c
  * source\server\server.prg
    + Added support to DbOrderInfo DBOI_ISDESC and DBOI_CUSTOM and prepared code
      to full support DbOrderInfo. PLEASE you can see if any thing is wrong in my first
      upload.
Veja o código abaixo para trabalhar com o letodb.

Código: Selecionar todos

Request leto

Function main
RddSetDefault("LETO")

use "//192.168.0.1:2812/LetoDb/bin/estoque.dbf" 
browse()

Saudações
Itamar M. Lins Jr.
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Mensagem por Clipper »

Prezado Itamar

Obrigado por sua contribuição, vejamos se entendi.

Quer dizer que com o Leto eu posso ter uma aplicação local acessando uma base de dados remota via internet ADSL/Cabo?

Exemplo :
use "//200.165.132.174:5412/LetoDb/bin/estoque.dbf"

Se for isso, não é bom ! É maravilhoso !

Pois neste caso bastaria em montar um servidor e apara as estações eu direcionaria para o endereço da intranet e para acesso remoto pelo IP do servidor, usando um serviço de redirecionamento de IP (No-ip ou Dyndns)

Obrigado.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Mensagem por Itamar M. Lins Jr. »

Clipper escreveu:Prezado Itamar

Obrigado por sua contribuição, vejamos se entendi.

Quer dizer que com o Leto eu posso ter uma aplicação local acessando uma base de dados remota via internet ADSL/Cabo?

Exemplo :
use "//200.165.132.174:5412/LetoDb/bin/estoque.dbf"

Se for isso, não é bom ! É maravilhoso !

Pois neste caso bastaria em montar um servidor e apara as estações eu direcionaria para o endereço da intranet e para acesso remoto pelo IP do servidor, usando um serviço de redirecionamento de IP (No-ip ou Dyndns)

Obrigado.

Até logo.

Marcelo
É isso mesmo.
Vou fazer a mesma coisa por aqui :|<
Estava pensando em usar HTML + CGI COM XHARBOUR, mas confesso a voce que no linux eu conseguia fazer as coisas mais rápido, no 2003 server estou me batendo com isso...
Qualquer coisas eu mando o letodb compilado para voce inclusive ele tem um gerenciador que mostra quais dbf estão aberto no estilo netware da novell

Saudações
Itamar M. Lins Jr.
Responder