Banco Relacional MYSQL X DBF

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

Moderador: Moderadores

Avatar do usuário
momente
Usuário Nível 3
Usuário Nível 3
Mensagens: 496
Registrado em: 03 Mar 2005 11:53
Localização: São Carlos-SP
Contato:

Mensagem por momente »

Amigos Maligno e Leonardo,

Obrigado pela ajuda!

Eu me interessei em saber realmente oque seria este emulador de terminais pelo fato do Vagner ter relacionado com dbfs. Assunto inicial desta thread.

Valeu!

:)Pos
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Olá caros colegas, estivemos fazendo alguns testes com xHarbour x MySQL 5.
Aqueles exemplos que estão na pasta \contrib...
Conseguimos fazer funcionar aquele DBF2MYSQL.EXE. Ele transporta os dados belezinha !!!
Porém ao rodar o TSTMYSQL.exe, dá erro. "O tstmysql.exe encontrou um problema e precisa ser fechado"
Por acaso precisaria do Mediator para o sistema interagir com o Mysql ?
Caso sim , porque consigo transportar dados de um DBF para o Mysql ?
Se alguem puder dar uma luz, agradeço
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Luiz
Usuário Nível 2
Usuário Nível 2
Mensagens: 61
Registrado em: 05 Set 2006 07:30
Localização: Vila Velha - ES

Mensagem por Luiz »

alaminojunior escreveu:Por acaso precisaria do Mediator para o sistema interagir com o Mysql ?
Caso sim , porque consigo transportar dados de um DBF para o Mysql ?
Se alguem puder dar uma luz, agradeço
Não é preciso usar nada extra (pelo menos se for trabalhar com querys)

Como nesse exemplo simples:

Código: Selecionar todos

// conectar ao servidor 
oServer := TMySQLServer():New('localhost', 'root', '<senha>') 
// verificar erro 
if oServer:NetErr() 
   alert(oServer:Error()) 
endif 

// realizar a consulta 
oResult:=oServer:Query("show databases") 
// verificar erro 
if oResult:NetErr() 
   alert(oResult:Error()) 
endif 

// exibir resultados 
for f:=0 to oResult:RecCount() 
   ? oResult:Database 
   oResult:Skip() 
next 

wait
"Ninguém se engane a si mesmo; se alguém dentre vós se tem por sábio neste mundo, faça-se louco para se tornar sábio." (I Coríntios 3:18)
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
xHarbour | Gtwvw | HwGui | DBF+CDX | mySQL | Genesis IDE
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Mensagem por Stanis Luksys »

Olá...

Realmente... Eu vinha observando este tópico e estava esperando que alguém realmente falasse as diferenças de verdade, porque velocidade de atualização nos dados e consultas não é tudo, é apenas uma parte do que um banco de dados deve oferecer...

O que o Maligno falou, desta vez devo concordar... Eu sinceramente mesmo acho que este nem é assunto pra tanta discussão. O DBF é bom, é legal, é rapidinho e tudo mais, mas é pobre. Se o sistema não utiliza recursos muito avançados, ele suporta bem, nem é necessário migrar. Imagina o carinha aqui da farmácia da esquina usando um programinha clipper 5.2, pra que BD relacional????

Agora se o sistema é de grande porte mesmo, nem tem como passar pela cabeça de quem desenvolve, trabalhar em cima de dbf. Os SGBDs em geral oferecem os recursos que foram mencionados e que no DBF vc deve sempre tratar via sistema, nunca diretamente prevendo uma alteração em uma tabela, como uma trigger por exemplo.

Para exemplificar uma trigger, seria como se alguem alterasse seu DBF pelo DBU e ele (o DBF, não o DBU) soubesse que antes de fazer esta alteração ele deve executar uma rotina que você escreveu. Isso traz muita segurança e consistência nos seus dados.

Infelizmente é assim... Ja ouvi dizer de um tal SuperDBF, e sabe... Nem sequer fui atrás...

O lance é pegar uma apostilinha de SQL, acho q é a linguagem mais facil que existe. Ai é só aproveitar.

Agora se o sistema não tá nem perto de pedir arrego e já está em estágio "final", trocar pra que?

Falou ae galerinha!! hehe
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
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 »

Stanis Luksys escreveu:Imagina o carinha aqui da farmácia da esquina usando um programinha clipper 5.2, pra que BD relacional????
Mesmo no carinha da farmácia da esquina, se eu usasse xHarbour, passaria longe dos DBFs. Até porque, conforme já comentei, em rede você pode usar um servidor de banco de dados e sendo monousuário a versão embutida (o Firebird tem - se não me engano o MySQL também), com uma simples DLL que faz o mesmo que o servidor faz. O usuário nem vai saber de nada. O que importa é a extensa lista de benefícios que o uso que os SGBDs oferecem. Por isso, mesmo que um DBF seja mais rápido, mesmo que seja mais simples e fácil, ainda prefiro um banco de dados como o Firebird. Se você já trocou para 32 bits na aplicação, pra que estagnar em DBF? Além do que, tem o lado prático. Hoje você vendeu para uma farmácia pequena. Se vender amanhã para uma grande rede, a aplicação será rigorosamente a mesma.
Infelizmente é assim... Ja ouvi dizer de um tal SuperDBF, e sabe... Nem sequer fui atrás...
Eu também não iria. :)))

[]'s
Maligno
http://www.buzinello.com/prg
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 »

O que torna o DBF muito mais eficiente, é, justamente, a emulação de terminal.

Como tudo vai ser processado no servidor, então seria como um acesso local.


Todo banco relacional trabalha via Sockets, mas foi bem lembrado pelo Maligno que o firebird tem DLL para acesso direto, o que dispensa isto, e não sabia que o MySQL tambem tem isto.

Bom é que andamos na mesma direção.

Acho que se uma empresa precisa da alta tecnologia de um banco relacional, meu voto ainda é para postgres, a grande vantagem dos STORED PROCEDURES é que você pode por exemplo validar a inclusão de CLIENTES e a mesma rotina seria valida até por inclusões feitas por outros meios, WEB, Acesso por gerenciador, isto é interessante, pois em si parte do programa está no banco de dados, você pode até fazer todo o processamento nele, fazendo com que seu sistema praticamente vire um FRONTEND. Dai uma das grandes vantagens do xHarbour, que você pode ter o mesmo sistema rodando em qualquer base de dados e dando ao seu cliente a opção de escolha.

Mas digo que, para quem está migrando recente, avalie a real necessidade do seu cliente. Já vi pessoas colocarem Banco relacional para num futuro proximo usarem suas "vantagens" o que nunca ocorreu, ou seja, se você agir dentro da real necessidade, terá um sistema mais acessível e com menos dor de cabeça para os clientes.

Um sistema bem programa, rodando em um servidor Linux com emulação de terminal em um servidor normal P4 3.4 2 Gb de rama e HD a escolha, segura 100 terminais em media com otimo desempenho, não vou falar que segura mais pois nunca vi ninguem usando.

Tenho um cliente em SP que tem filial na china, o pessoal entra remoto e tira pedidos direto no sistema em SP, e isto tudo usando DBF mesmo.

Não colocaram banco relacional pois nunca tiveram problemas com DBF e NTX nos ultimos 2 anos rodando o sistema com emulação de terminal.


Emulação de terminal como já citado, acontece de forma muito simples, você pode fazer um teste escolhendo uma distribuição Linux do seu agrado, indico aos amigos o uso do Centos que o mesmo REDHAT mas sem os pacotes que estão fora da GPL ou são pagos, você apenas instala o Linux e o SSH já estará ativo, compile seu programa e use o putty para acessar o servidor de maquinas Windows, você vai cair na linha de comando do Linux, mas pode fazer um script que ao usuario logar ir direto para seu sistema, rode o programa e pronto, você vai ter um tráfego minimo de tela e teclado, isto em modo texto, pois as telas no Linux para cada atualização tem meros 8k, ai se for necessário alguma otimização para aproveitar melhor e distribuir melhor os recursos do servidor, ai é com você.
Sem mais
Wagner Nunes
www.vagucs.com.br
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 »

Há, tem umc lietne meu aqui em minha cidade mesmo, que tem um servidor Linux conectiva 10 com o programa que eu montei rodando com emulação de terminal.

O servidor é um Athlon 1.200 com 512 megas de RAM e HD 80 IDE 7200 RPM, 2 anos e meio rodando, nunca corrompeu indices, segura 20 terminais atoa, e olha que ele que nao precisou colocar mais, mas o sistema nao abre o bico, posso dizer que ele conseguirá pendurar uns 40 terminais com este servidor, a quantidade de memoria ocupada e HD e tempo de CPU é muito baixo, arrisco e posso cometer o erro de dizer que esta maquina segura bem mais de 40 terminais, mas sem ter como testar para ter certeza prefiro não garantir, mas que eu acho que segura, a segura viu... kakakakkaa
Sem mais
Wagner Nunes
www.vagucs.com.br
joserubenildosilva
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 15 Abr 2008 11:21
Localização: cuiaba-mt

Mensagem por joserubenildosilva »

Ola! Eu gostaria de saber mais sobre o uso do MYSQL. meu msn eh rubenil@hotmail.com. Tenho um sistema em DBF compilado com xharbour.
mas todo dia tenho que indexar a base. todo dia
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 »

Maligno.

Se usar as classes MySQL mesmo localmente, o trafego continua sendo via Socket, diferente do firebird, que tem rotinas para acesso direto.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Mensagem por fladimir »

Tenho a mesma dificuldade, oriento os clientes ou faço um BAT q ao LIGAR o Servidor ele apaga os CDX e ao entrar na primeira estacao CRIA os Indices novamente, mas queria saber se tem como não ter q indexar TODO DIA, se deixo SEM executar esse procedimento com o tempo e dependendo o movimento o sistema torna-se instavel em um pouco tempo, agora se fizer todo dia a INDEXAÇÂO não tem problemas...., já vi sistemas por ai q tem muito movimento e não fica indexando constantemente e sim esporadimente tipo qdo troca a versão 1 vez por mês e olhe lá.... ALGUÉM SABE O CAMINHO DAS PEDRAS ?

Grato
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 »

Tenho clientes que rodaram mais de 2 anos sem precisar reindexar com emulação de terminal, reindexei apenas por que mudei alguns campos no DBF.

Mesmo antes, quando estava em clipper problemas de corrupção de indices não eram comuns, sempre ficavamos uma media de 6 meses sem reindexar, apenas quando tinha manutenção quie precisava mesmo disto, que nos faziamos. Usava antes NTX com a SIX e depois com xHarbour.,
Sem mais
Wagner Nunes
www.vagucs.com.br
edmarfrazao
Usuário Nível 3
Usuário Nível 3
Mensagens: 185
Registrado em: 06 Dez 2005 11:16

Mensagem por edmarfrazao »

eu eustou usando xharbour +dbf+hwgui e estou adotando o Terminal Service(TS) com windows.


uns estão usando 2003 server com TS, mas custa +- 5.000,00 para 10 usuarios.


outros estão usando o xpunlimited(www.xpunlimited.com), custa 350,00 para 10 usuarios e roda no xp ou vista


outros estou instalando a versão free(roda em 03 usuários).


o TS é excelente, não tem queda da estação, pois funciona tudo no servidor
nada de reindexar
o terminal pode ser linux ou Thing Client
Pode acessar via internet
pode usar o navegador web.

e tudo fica com antes no xharbour/clipper
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Mensagem por TerraSoftware »

Windows Xp roda terminal server para muitos usuários, basta saber configurar e ter as dlls certas.
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

TerraSoftware escreveu:Windows Xp roda terminal server para muitos usuários, basta saber configurar e ter as dlls certas.
Pois mostre o caminho das pedras...

Jânio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
TerraSoftware
Usuário Nível 3
Usuário Nível 3
Mensagens: 353
Registrado em: 28 Jul 2004 13:14
Localização: Cianorte-PR
Contato:

Mensagem por TerraSoftware »

Lá vai:

O Windows XP SP2 não permite que você tenha mais de uma sessão aberta, seja ela local ou remota. Isto significa que, se um usuário estiver conectado localmente e o usuário remoto tentar se conectar ele automaticamente e sem avisar, trava a tela do usuário local e libera uma conexão para o usuário remoto. Nas versões do XP anteriores ao SP2 era possível abrir mais de uma sessão, portanto, é usando alguns arquivos das versões anteriores que vamos conseguir habilitar este recurso novamente e assim você poderá fazer quantas conexões remotas quiser ao mesmo tempo.

Entre outras coisas é necessário ter o arquivo "termsrv.dll"

IMPORTANTE: Ter esta informação não significa necessariamente que eu faça isso e nem que eu tenha os arquivos em questão.

Certamente o google poderá ajudar muito.
www.sisterra.com.br
xHarbour 1.0.0 - Bcc 6.3 - Gtwvw/Hwgui
DbfCdx/MySql
Responder