Clipper On Line • Ver Tópico - Pedido de ajuda simples no MySql

Pedido de ajuda simples no MySql

Discussão sobre SQL

Moderador: Moderadores

 

Pedido de ajuda simples no MySql

Mensagempor rochinha » 27 Mar 2014 22:35

Amiguinho,

Desculpe, mas eu não sabia que existia tanta diversidade. É que não estou familiarizado com essa questão.

Em primeiro lugar, a busca pelo conhecimento começa na vontade de saber. A sua vontade em buscar, garimpar, testar, errar e entender deve ser compativel com seu tempo livre.

Então, peço ajuda dos colegas inclusive para definir qual utilizar, pois cada pessoa que me instrui dá uma informação diferente, acabo sem saber qual é melhor.

Todo programador precisa adquirir personalidade própria e transferi-la para a programação. Portanto cada um terá sua opinião relativa a alguma ferramento, mesmo porque, já testou várias e se deu bem com uma ou outra.

Eu uso Harbour. Portanto, gostaria de usar um tipo de banco de dados que seja o mais facilmente acessível pelo Harbour possível.

No mundo Harbour a falta de compatibilidade é infima, mas não nula. A maioria dos databases existentes podem ser acessados por ele devido as suas características de implementação por vários meios, seja, OLE ou nativo, usando e abusando de acessos via ADO e/ou por meios de bibliotecas especiais.

Minha pretensão é que haja maior confiabilidade nos dados, pois, atualmente, com DBF, tenho tido muita perda de integridade dos dados.

Esta também é a vontade de todos, mas voce verá que muitos que ainda usam .DBF não tem tanto a reclamar como pintam por ai. Insegurança existe em qualquer database. A diferença são as ferramentas existentes para manipular e manter os dados.
Voce pode muito bem usar .DBF com "maior confiabilidade", usando LetoDB, NetIO, Mediator. Estes criam uma ponte de acesso e mantem seguros os dados da mesma forma que os grandes databases que tem seus serviços entre a aplicação e os dados.

Também tenho pretensão que o banco seja acessível em PHP. Embora eu não tenha muito conhecimento a respeito, estou começando a fazer algumas coisas simples em PHP; seria bom que os dados fossem acessíveis dessa forma.

Tempos atrás apresentei aqui uns exemplos de acesso a .DBF via .PHP, mas nada impede de ter seus .DBFs acessados via .PHP usando ADO. Eu mesmo faço acesso via .PHP e via .ASP nos módulos de eCommerce de meu sistema.

Por fim, tenho pretensão de aprender VBA. Ainda não comecei, mas, caso dê certo, gostaria que a base de dados fosse também acessível em VBA.

VBA é um set da linguagem Visual Basic para automatizar o Office, não vislumbro seu uso com databases. Talvez voce estivesse dizendo VBS.

O que vcs me recomendam?

Sugiro que:

- Instale um VirtualBox
- Instale um Windows Server 2003 no VirtualBOX(ele é leve e tem muitas ferramentas, inclusive servidor IIS)
- Instale um WAMP no VirtualBOX(ele possui servidor Apache, PHP e MySQL para testes usando .PHP)
- Instale cada database conhecido como MySQL, Firebird, PostGRES, SQL Server Express e TinyDB
- Configure uma instalação Harbour completa, sugiro a 3.2
- Faça seus testes dentro deste ambiente e tire suas próprias conclusões de qual deverá usar.

Verifique e ranqueie as opiniões dos colegas para ter uma direção mas faça um levantamento das características e limites de cada database usado.

Parta para a ação.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

Pedido de ajuda simples no MySql

Mensagempor alxsts » 28 Mar 2014 02:18

Olá!

Os conselhos do Rochinha são realmente preciosos, não há dúvida.

Apenas acho que a sugestão de instalar máquina virtual e vários bancos de dados, servidor Apache, etc, tudo ao mesmo tempo, vai atrapalhar a tua caminhada.

Você tem um problema grande: parou no tempo do DOS/Clipper e agora quer recuperar o tempo que passou. Use a técnica de quebrar um grande problema em problemas menores. Priorize cada um deles e ataque individualmente.

Quer usar Harbour, acessando um banco de dados relacional? Quer aprender SQL? Ótimo! Use o SQL Server que você disse já ter instalado. Aprenda SQL com ele. Quer conectar SQL Server com Harbour? Aprenda ADO. Funciona muito bem! Depois quer aprender PHP? Sem problemas, funciona também. Eu optaria por ASP .Net (paga bem melhor).

Enfim, todas as ferramentas que você deseja aprender tem materiais disponíveis e gratuitos na internet. É só correr atrás. Se você lê inglês, estude no site da W3C - WorldWide Web Consortium ou W3 Schools. É bem didático e cheio de exemplos em Visual Basic, perfeitamente entendíveis por Clippeiros. Boa sorte, mas principalmente: bom trabalho!

Edit: só para complementar, o link acima direciona para o tutorial de SQL. Este outro leva para a home da W3 Schools, onde se encontram os links para todos os tutoriais.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Pedido de ajuda simples no MySql

Mensagempor cjp » 01 Abr 2014 17:52

Colegas,

Em primeiro lugar, muito obrigado pela disposição em ajudar.

Li e reli várias vezes o que vocês escreveram, bem como os tutoriais citados.

Sei que tenho uma grande tarefa pela frente, que não será fácil, sobretudo em razão de minha falta de tempo e de conhecimentos técnicos. Mas quero tentar e vou persistir.

Como o Alex disse, vou começar aos poucos, uma coisa de cada vez. Com o SQL Server eu já me entendi razoavelmente (quero dizer: já entendi o básico, já consegui criar uma base de teste). O próximo passo que eu gostaria de testar é o ADO, para as funções mais básicas com a base de dados de dentro do Harbour. Estou usando o Harbour 3.2. Vocês poderiam me passar um tutorial bem básico com as funções mais simples do ADO para eu abrir a base do SQL Server e coisa assim?

Aparentemente, nesse primeiro momento, eu não vou precisar do PgAdmin III, correto? Então, como faço a conexão à base pelo ADO? Precisa de alguma LIB ou CH especial para ele rodar? Ou algum include?

Se vocês puderem me passar um exemplo bem simples, mas completo (que rode), apenas para eu começar a mexer, ficaria grato.

Inacio
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

Pedido de ajuda simples no MySql

Mensagempor rochinha » 01 Abr 2014 19:00

Amiguinho,

Se voce usar o Harbour tradicional a partir da versão 3.2 verá que os códigos estarão na pasta examples\rddado\tests.

Eu olhei eles e tremi, pois são muito complexos, veja os exemplos:
/*
* $Id: access1.prg 14908 2010-06-26 08:32:23Z vszakats $
*/

#include "adordd.ch"

REQUEST ADORDD

PROCEDURE Main()

   SET DATE ANSI
   SET CENTURY ON

   USE ( hb_dirBase() + "test.mdb" ) VIA "ADORDD" TABLE "Table1"

   Browse()

   USE

   RETURN


ACCESS2.PRG
/*
* $Id: access2.prg 14908 2010-06-26 08:32:23Z vszakats $
*/

/* Testing dbCreate() with Access database engine */

#include "adordd.ch"

REQUEST ADORDD

PROCEDURE Main()

   SET DATE ANSI
   SET CENTURY ON

   dbCreate( "test2.mdb;table1", { { "FIRST",   "C", 10, 0 },;
                                   { "LAST",    "C", 10, 0 },;
                                   { "AGE",     "N",  8, 0 },;
                                   { "MYDATE",  "D",  8, 0 } }, "ADORDD" )

   USE test2.mdb VIA "ADORDD" TABLE "table1"

   APPEND BLANK
   test2->First   := "Homer"
   test2->Last    := "Simpson"
   test2->Age     := 45
   test2->MyDate  := Date()

   APPEND BLANK
   test2->First   := "Lara"
   test2->Last    := "Croft"
   test2->Age     := 32
   test2->MyDate  := Date() + 2

   GO TOP
   Browse()

   GO TOP
   CLS
   LOCATE FOR ( 'First = "Lara"' )
   ? "Found:", Found()
   USE

   RETURN


MYSQL1.PRG
/*
* $Id: mysql1.prg 9217 2008-08-23 15:02:49Z vszakats $
*/

#include "adordd.ch"

REQUEST ADORDD

function Main()

   USE test00 VIA "ADORDD" TABLE "ACCOUNTS" MYSQL ;
      FROM "www.freesql.org" USER "myuser" PASSWORD "mypass"

   Browse()

   USE

return nil


MYSQL3.PRG
/*
* $Id: mysql3.prg 9217 2008-08-23 15:02:49Z vszakats $
*/

// Testing LOCATE and CONTINUE

#include "adordd.ch"

REQUEST ADORDD

function Main()

   USE test00 VIA "ADORDD" TABLE "ACCOUNTS" MYSQL ;
      FROM "www.freesql.org" USER "myuser" PASSWORD "mypass"

   LOCATE FOR "City LIKE 'Chi*'"

   while ! Eof()
      ? test00->First, test00->City
      CONTINUE
   end   

   USE

return nil


No lugar de www.freesql.org coloque 127.0.0.1 pois voce estará acesando o host, mas se o acesso for de uma maquina e o servidor SQL estiver em outra coloque o IP da maquina.

Espero não tê-lo assustado.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

Pedido de ajuda simples no MySql

Mensagempor cjp » 02 Abr 2014 00:44

Na verdade eu já havia entendido e testado os exemplos do Harbour, mas eles não funcionam. Pelo menos não aqui na minha máquina. Está dando o seguinte erro na compilação:

Imagem

Por isso pedi algum exemplo que funcionasse, que desse para eu rodar aqui e começar a mexer.

Será que sou eu que estou fazendo algo errado, ou esses modelos não são para compilar diretamente como estão?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

Pedido de ajuda simples no MySql

Mensagempor JoséQuintas » 02 Abr 2014 22:40

Se vai fazer em clipper, mais prático usar vbscript.

Se vai fazer em Harbour, mais prático ADO.

ADO é padrão no Windows, e tem em tudo que é linguagem, pra praticamente todo tipo de banco de dados.

Em Harbour

Conexao := wapi_CreateObject( "ADODB.Connection" )
Conexao:ConnectionString := "sdfsdfdsfdsfdsfds"
Conexao:Open()
rsConsulta := Conexao:Execute( "SELECT * FROM database" )
DO WHILE .NOT. rsConsulta:Eof()
   ? rsConsulta:Fields( "CODIGO" ):Value
   ? rsConsulta:Fieds( "NOME" ):Value
   rsConsulta:MoveNext()
ENDDO
rsConsulta:Close()
Conexao:Close()


ou em vbscript pra usar no Clipper via RUN.

DIM Conexao, rsConsulta
Conexao = CreateObject( "ADODB.Connection" )
Conexao.ConnectionString = "sdfsfdsfsdfd"
Conexao.Open
set rsConsulta = Conexao.Execute( "SELECT * FROM database" )
DO WHILE Not rsConsulta:Eof()
   ' rsconsulta.Fields( "CODIGO" ).Value
   ' rsconsulta.Fields( "NOME" ).Value
   rsconsulta.MoveNext
LOOP
rsConsulta.Close
Conexao.Close
rsconsulta = nothing
conexão = nothing


Uma chatice no VB/VBScript é que se não vai usar o retorno, não pode chamar como função.
Então o CLOSE() vira CLOSE
E pra objetos é obrigatório usar o SET, então o resultado da consulta variável = x vira SET variável=x
E o DIM pra declarar variáveis.
Lógico, como não é DOS, teria que ter algo mais, dependendo do que quiser fazer com o resultado. (no caso de VBScript)

Tá tudo disponível no Windows desde o XP. Os vírus sabem disso... rs
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18159
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Pedido de ajuda simples no MySql

Mensagempor rochinha » 02 Abr 2014 23:13

Amiguinho,

Fiz um teste de compilação usando Harbour 3.2 revisão 17626 para compilador Borland:
/*
* $Id: mysql1.prg 9217 2008-08-23 15:02:49Z vszakats $
*/
#include "adordd.ch"

THREAD STATIC t_cTableName
THREAD STATIC t_cEngine
THREAD STATIC t_cServer
THREAD STATIC t_cUserName
THREAD STATIC t_cPassword
THREAD STATIC t_cQuery := ""

REQUEST ADORDD

function Main()

   USE mysql VIA "ADORDD" TABLE "user" MYSQL ;
      FROM "127.0.0.1" USER "root" PASSWORD ""

   Browse()

   USE

return nil

#include "adordd.prg"


No final do código fiz inclusão do ADORDD.PRG que tenho com data de 01/03/2013 com tamanho 51.801. O executável é gerado e um browse é apresentado com os registros da tabela user do database mysql.

Pelo fato desta tabela ser parte integrante do MySQL o aplicativo será executado conforme a programação acima.

download

Os exemplos passados pelo JoséQuintas seguem a programação via automação OLE e se voce analisar o código ADOxB, o mesmo está neste mesmo esquema.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

Pedido de ajuda simples no MySql

Mensagempor cjp » 03 Abr 2014 01:19

Rochinha,

Compilando o teu exemplo (trocando apenas o nome da base de dados no USE), compila, mas dá o seguinte erro na execução:

Imagem

Ao executar o mysql1 que está no teu download, dá o seguinte erro:

Imagem

Quintas,

O teu exemplo está dando o seguinte erro na compilação:

Imagem
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

Pedido de ajuda simples no MySql

Mensagempor alxsts » 03 Abr 2014 01:26

Olá!

Creio que o que o colega realmente precisa para resolver o seu problema é o comando para compilação, mostrando as libs necessárias.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Pedido de ajuda simples no MySql

Mensagempor rochinha » 03 Abr 2014 02:47

Amiguinho,

Primeiro: o erro apresentando ODBC indica que voce precisa baixar e instalar o MySQL ODBC Driver. A maioria dos databases possuem seu próprio driver ODBC diferentemente dos da microsoft que já vem embutidos no Windows.

Em relação as bibliotecas necessárias inclua nas chamadas de seu script de compilação algo como HBWIN.LIB.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes

Pedido de ajuda simples no MySql

Mensagempor cjp » 04 Abr 2014 02:33

Amigo, acresci a lib, mas ainda está dando o mesmo erro na compilação.

Por favor, veja se estou fazendo errado. Fiz o seguinte .bat:

cd\hb32\bin
del *.prg
del *.tds
del *.c
del *.ppo
del *.obj
del *.map
del teste.exe*
copy \prg\teste.prg
copy \agenda\teste.hbp
copy ..\extras\rddado\.

hbmk2 teste.hbp

pause
pause

teste.exe


O teste.hbp está assim:

# coloque aqui suas libs, precedidas pela letra "l" (minúscula):
-lxhb
-lhbwin
-lhbtip
-lhbct

# coloque aqui os parâmetros de compilação:
-quiet
-oTESTE.EXE

# coloque aqui seus arquivos PRGs:
TESTE.PRG


Falta alguma coisa?

Quanto ao drive, eu instalei um drive do site da Oracle no início. Não tenho certeza se fiz certo. Fui tentar verificar agora, mas não estou achando o local para baixar. Por favor, veja se é neste link: http://www.oracle.com/technetwork/datab ... 58347.html.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

Pedido de ajuda simples no MySql

Mensagempor Toledo » 04 Abr 2014 07:37

cjp escreveu:Quanto ao drive, eu instalei um drive do site da Oracle no início. Não tenho certeza se fiz certo.


rochinha escreveu:voce precisa baixar e instalar o MySQL ODBC Driver


Amigo, entre no google e procure por: MySQL ODBC Driver

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Pedido de ajuda simples no MySql

Mensagempor cjp » 04 Abr 2014 15:54

Foi o que eu fiz, caro Toledo.

Resultado da busca: https://www.google.com.br/search?q=MySQ ... 3&ie=UTF-8.

Clicando no item Download Conector ODBC (o que me pareceu mais adequado), cai nesta tela: http://dev.mysql.com/downloads/connector/odbc/5.1.html.

Cliquei na opção de Download Windows 32 bits (primeira), caí nesta tela: http://dev.mysql.com/downloads/file.php?id=415028.

Fiz login e caí na tela antes copiada (post acima).

Como disse, salvo engano, eu já havia baixado esse drive, mas não tenho certeza. E agora não acho mais onde baixar.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

Pedido de ajuda simples no MySql

Mensagempor Toledo » 04 Abr 2014 16:41

No final da página tem:
No thanks, just start my download.


http://dev.mysql.com/get/Downloads/Connector-ODBC/5.1/mysql-connector-odbc-5.1.13-win32.msi

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Pedido de ajuda simples no MySql

Mensagempor cjp » 05 Abr 2014 01:06

Obrigado, Toledo, e desculpe pela desatenção. Depois que vc falou, lembrei que foi nesse mesmo link que eu tinha instalado.

Instalei novamente o drive, mas continua dando o mesmo erro de OBDC.

Não sei se bastaria instalar, ou se eu teria que fazer mais alguma coisa.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

Anterior Próximo



Retornar para SQL

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 14 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro