Clipper On Line • Ver Tópico - Erro em ANNOUNCE RDDSYS / SQL
Mudar para estilo Clássico
Discussão sobre SQL
Postar uma resposta

Erro em ANNOUNCE RDDSYS / SQL

27 Mai 2014 14:54

Inácio, poste aqui o arquivo HBP do seu outro programa (o que está com erro).

Abraços,

Erro em ANNOUNCE RDDSYS / SQL

27 Mai 2014 15:09

Aí vai:

Código:
# coloque aqui suas libs, precedidas pela letra "l" (minúscula):
-lxhb
-lhbwin
-lhbtip
-lhbct
-lhbHPdf
-lhbZebra
-lhbmisc
rddsql.hbc
sddodbc.hbc

# coloque aqui os parâmetros de compilação:
-quiet
-jobs=4
-oAGENDA

# coloque aqui seus arquivos PRGs:
AGENDA.PRG
COMUNS.PRG
CONTABC.PRG
banco.prg
contag.prg
agtel.prg
agcom.prg
contap.prg
alerta.prg
bccadm.prg
contex.prg
contsem.prg
semcont.prg
contec.prg
contval.prg
relat.prg
poupa.prg
contcart.prg
contcrt2.prg
list2.prg
aniv.prg
xxx.prg
contbtn.prg
abrfech.prg
cartoes.prg
calcula.prg
contpoup.prg
extenso.prg
getsys.prg
errors2.prg

Erro em ANNOUNCE RDDSYS / SQL

27 Mai 2014 16:29

Inácio, pensei que poderia ter alguma lib que estava em conflito, mas são as mesmas que estão no seu HBP do seu programa teste.
Então deve ter alguma coisa nos outros PRGs que está causando este problema. Desta maneira, o único jeito é ir acrescentado PRG por PRG na compilação até descobrir qual deles está causando o problema.

Abraços,

Erro em ANNOUNCE RDDSYS / SQL

28 Mai 2014 23:47

Fiz isso, um a um, testando a cada vez. Resultado: acresci todos no teste e não deu o erro. Agora veja se é possível uma coisa dessas: o teste está exatamente igual ao programa original, mas o teste não dá erro e o original dá. Vai entender uma coisa dessas!

Mas resolvi o problema: transformei o teste em definitivo, substituindo o anterior.

Mas hoje fui testar o uso da conexão ao banco de dados em outro computador e não conectou. Imagino que seja porque nesse outro computador eu não instalei o mysql como consta do tutorial. Só que daí me surgiu a seguinte questão: para funcionar a conexão eu teria que instalar o mysql no computador de cada usuário? Não tenho como fazer isso. Não tem outro jeito de fazer funcionar a conexão sem todo aquele procedimento?

Outra pergunta: para usar o banco de dados em PHP, também precisaria instalar o mysql?

Erro em ANNOUNCE RDDSYS / SQL

02 Jun 2014 17:11

Vc tem que instalar nas estações cliente somente o drive ODBC, do MySQL.

http://dev.mysql.com/downloads/connector/odbc/

Saudações,
Itamar M. Lins Jr.

Erro em ANNOUNCE RDDSYS / SQL

04 Jun 2014 17:38

Eu instalei o ODBC nesta máquina, mas ainda não está dando conexão com o servidor. Será que é preciso também fazer a etapa 4 do Tutorial do Toledo (viewtopic.php?f=43&t=15019)?

Mas fica a dúvida: para usar em PHP também precisa disso?

Como é que um supermercado, por exemplo, que vende pela internet, dá acesso aos clientes à sua base de dados sem isso?

Erro em ANNOUNCE RDDSYS / SQL

04 Jun 2014 18:06

Isso precisa da etapa 4
Quanto ao supermercado, quem está acessando a base de dados é o PHP.
Só que a tela que o cliente visualiza é pelo browse(IE,Firefox...) o programa fisicamente está hospedado em um servidor e a base pode ou não está no mesmo servidor.
Então no browse nós digitamos: "www.supermercadotal.com.br" o browse acessa o Apache ou IIS que dentro tem a pagina em PHP ou outra linguagem que possa ser interpretada pelo Apache ou IIS.
Imagem

Saudações,
Itamar M. Lins Jr.

Erro em ANNOUNCE RDDSYS / SQL

05 Jun 2014 02:01

Ok, vou configurar o banco amanhã.

Mas então, se eu entendi, pelo PHP não teria problema. Eu também conseguiria fazer esse acesso em PHP diretamente ao banco, sem precisar instalar no usuário o ODBC?

E em Harbour não tem como fazer isso?

Erro em ANNOUNCE RDDSYS / SQL

05 Jun 2014 17:30

É um procedimento padrão.
Tanto faz ser em PHP, Delphi, VB, Harbour..., precisa instalar o ODBC e apontar para a base de dados.
Os comandos "SQL ANSI" são os mesmo não importa a linguagem. Apenas muda quando vc muda o BD, tipo MySql trocar por MSSQL, tem coisas que só tem no MSSQL. Entendeu ?

Saudações,
Itamar M. Lins Jr.

Erro em ANNOUNCE RDDSYS / SQL

05 Jun 2014 22:47

Entendo que tanto faz a linguagem.

Mas acho que não entendi então a tua informação quanto ao exemplo do supermercado. Afinal, como o site do supermercado consegue permitir a qualquer cliente, mesmo os que não têm ODBC instalado, acessarem o seu banco de dados.

Se eles fazem a "triangulação" que vc mencionou antes, como eu posso fazer algo assim?

Erro em ANNOUNCE RDDSYS / SQL

06 Jun 2014 12:01

Não tem ODBC nos clientes porque o ODBC está instalado uma única vez no SERVIDOR. o NAVEGADOR IE, CHROME..., acessa a pagina que tem o PHP,.NET etc.
Quem acessa o BD não é o cliente diretamente. A pagina em PHP, .NET etc... que o cliente vé(visualiza) quando ele clica em algum botão de envio, os dados são solicitados ao BD. Entenda, o ODBC sempre irá ser necessário. Quanto ao local físico que esta o BD pode ser em qualquer lugar, inclusive o BD pode ficar até ai no seu CPU. O ODBC do supermercado neste caso irá apontar para o BD que está no seu CPU.
TIPO, lugar onde está o MySql é: www.ip_do_seu_micro.com, lugar que o cliente vê a pagina em HTML+PHP é: www.supermercado.com

No VB, PHP ou .NET... vc vai escrever:
No SERVIDOR do supermercado com o APACHE/IIS vc coloca: Abra o banco de dados que está lá na casa de www.ip_do_seu_micro.com...SELECT FROM... É o ODBC que faz a ligação...
Em Harbour seria mais ou menos assim:

Código:
nConn := RDDINFO( 1001, { "ODBC", "Driver={SQL Server Native Client 10.0};Server=www.ip_do_seu_micro.com;database=BASE_EM_CASA_;Uid=CASA;Pwd=MINHA_SENHA" })

Que é similar em VB, Delphi etc...

Vc pode inclusive fazer uma verdadeira BAGUNÇA!!! colocar no SUPERMECADO o APACHE, Na CASA da SOGRA as paginas em HTML+PHP e na casa do PRIMO o MySQL...
Agora o ODBC deve ficar sempre no MICRO que FAZ a solicitação ao MySql. Não é as maquinas dos clientes que fazem as solicitações. Quem faz a solicitação ao MySQL é o PHP,VB... entendeu ?

Saudações,
Itamar M. Lins Jr.

Erro em ANNOUNCE RDDSYS / SQL

06 Jun 2014 22:07

Em tese eu entendi.

Mas não estou entendo o que ficaria diferente do que estou fazendo hoje. Minha conexão está sendo feita assim:

Código:
    nConnection := RDDINFO( RDDI_CONNECT, { "ODBC", "Server=mysql.meusite.com.br;Driver={MySQL ODBC 3.51 Driver};dsn=;User=meuusuario;pwd=minhasenha;database=meubancodedados;" } )


Aparentemente, está parecido com o que vc deu de exemplo. O que eu teria que mudar?

Colocar o banco no meu micro não dá, porque ele não está sempre ligado. Mas pode ser no provedor, não pode?

Eu teria que instalar o ODBC no servidor? Caso positivo, como faço isso?

Erro em ANNOUNCE RDDSYS / SQL

07 Jun 2014 00:53

Mas pode ser no provedor, não pode?

Sim pode, basta ter uma placa de rede.
Eu teria que instalar o ODBC no servidor? Caso positivo, como faço isso?

Veja, precisa apenas se, olhe bem SE você for acessar o BD pelo próprio servidor.
O ODBC é um CONECTOR! É o canal de comunicação com o BD.
Quando Vc instala o MySql ou qualquer BD a maquina que tem o MySQL NÃO precisa do ODBC para SERVIR, ou ATENDER as solicitações das demais maquinas.
Parece meio confuso mesmo. Mas não precisa instalar o ODBC na maquina que apenas irá servir as outras. Apenas o MySQL. O MySQL/BD fica ESCUTANDO alguém pedir alguma coisa p/ ele. Quem pede é que precisa do ODBC OK? Se o servidor for pedir TAMBEM, ai precisa instalar no servidor, que é o caso do supermercado.
Quando os clientes pedem(clicando em botões) acessando via HTML+PHP é o próprio servidor via ODBC pedindo para o MySQL fisicamente pode estar nele ou em outra CPU em qualquer lugar.

Saudações,
Itamar M. Lins Jr.

Erro em ANNOUNCE RDDSYS / SQL

07 Jun 2014 01:12

Bom, acho que estou começando a entender.

Agora só preciso saber como faço para instalar o ODBC no provedor.

Com isso, eu vou conseguir permitir a todos os usuários acessarem o banco de dados, mesmo sem ter nada instalado na suas máquinas, correto? Se estiver correto, é só isso que eu preciso.

Erro em ANNOUNCE RDDSYS / SQL

07 Jun 2014 09:02

cjp escreveu:Bom, acho que estou começando a entender.

Infelizmente tenho que lhe disser que ainda não!

Acho que você está fazendo um certa confusão com a definição de Servidor e de Provedor.

Servidor = computador principal de uma rede de computadores, aquele que vai centralizar os dados.

Provedor = é o site que dá conexão com a Internet e presta diversos serviços ao usuário (hospedagem, e-mails, etc).

cjp escreveu:Agora só preciso saber como faço para instalar o ODBC no provedor.

No provedor não precisa instalar o ODBC, você não precisa se preocupar com isto, pois o provedor já tem tudo pronto para fazer a conexão com o bando de dados (MySQL, PostgreSQL, etc).

cjp escreveu:Com isso, eu vou conseguir permitir a todos os usuários acessarem o banco de dados, mesmo sem ter nada instalado na suas máquinas, correto?

Isto depende de como o seu usuário vai acessar o seu banco de dados.
Se for pelo seu programa desenvolvido em Harbour usando conexão por ODBC, acessando o bando de dados no seu provedor, você vai ter que instalar o MySQL ODBC Connector e criar uma conexão ODBC no Painel de Controle. Se for acessar o banco de dados no seu servidor, então você terá que instalar o MySQL no seu servidor e nos terminais basta o MySQL ODBC.
Se for através de uma página (PHP) no seu site, então não precisa instalar nada, o provedor já tem tudo pronto.

Abraços,
Postar uma resposta