Clipper On Line • Ver Tópico - como listar tabelas de um banco de dados com a RDD

como listar tabelas de um banco de dados com a RDD

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

como listar tabelas de um banco de dados com a RDD

Mensagempor cjp » 21 Dez 2014 23:01

Pessoal, estou precisando listar as tabelas existentes em um banco de dados MySQL com a RDD. Como faço isso?

Sei que o comando SHOW TABLES faz isso, mas eu não sei como fazer isso de dentro de minha aplicação em Harbour. Eu preciso pegar numa variável os nomes das tabelas existentes no banco de dados.

Alguém me ajuda?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

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

como listar tabelas de um banco de dados com a RDD

Mensagempor rochinha » 22 Dez 2014 14:43

Amiguinho,

Este comando SHOW TABLES não teria algum parametro estilo TO [arquivo] ou direcionador?

Os comandos SQL dados no console mostram tudo em tela, portanto se você usa algum RDD com certeza este comando aciona alguma função, tipo:

[variavel] = ShowTables()

Verifique.
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: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

como listar tabelas de um banco de dados com a RDD

Mensagempor cjp » 22 Dez 2014 15:01

Eu não tenho certeza, mas acho que não. Veja a sintaxe dele, de acordo com o manual (http://dev.mysql.com/doc/refman/5.0/en/show-tables.html):

SHOW [FULL] TABLES [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]


Como eu poderia pegar o resultado em uma variável?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

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

como listar tabelas de um banco de dados com a RDD

Mensagempor rochinha » 22 Dez 2014 15:45

Amiguinho,

Deixe entender como voce está usando o MySQL e seu sistema. Você usa algum RDD? Este RDD não dá suporte a tal função?

Se está usando seu sistema no modo console, com certeza voce poderia montar uma função para fazer esta captura usando o velho direcionador do MS-DOS para um arquivo TeXTo e recuperá-lo via MemoRead()

Exemplo:
...
C:\mysql\bin\mysql ...comando... > result.txt
...
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: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

como listar tabelas de um banco de dados com a RDD

Mensagempor JoséQuintas » 22 Dez 2014 16:11

Show tables retorna um recordset onde cada tabela é um registro.
Tudo depende de como está acessando o MySql, pra saber o formato de retorno.
No ADO:

oRs := cnMySql:Execute( "SHOW TABLES" )
DO WHILE .NOT. oRs:Eof()
   ? oRs:Fields(0):Value
   oRs:MoveNext()
ENDDO
oRs:Close()
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

como listar tabelas de um banco de dados com a RDD

Mensagempor cjp » 22 Dez 2014 16:14

Eu uso em modo console mesmo.

Estou usando com a RDD, algo assim:

DBUSEAREA( .T.,, "SELECT * FROM ativ WHERE usuario='"+us+"'", "recebftp")


Ou assim:

cQuery:="INSERT INTO onus values (nronus,'"+us+"','"+alltrim(str(year(date())))+"-"+substr(dtoc(date()),4,2)+"-"+substr(dtoc(date()),1,2)+"',20,'N')"
RDDINFO(1003, cQuery)


Então, tentei fazer assim:

cQuery:="SHOW TABLES"
a=RDDINFO(1003, cQuery)


Mas assim eu não consigo pegar o resultado. Tá dando a="SHOW TABLES".
Inacio de Carvalho Neto
cjp
Usuário Nível 6

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

como listar tabelas de um banco de dados com a RDD

Mensagempor Toledo » 22 Dez 2014 16:23

cjp escreveu:Então, tentei fazer assim:
cQuery:="SHOW TABLES"
a=RDDINFO(1003, cQuery)

O correto é "SHOW TABLES FROM NomedoBancodeDados", mas o RDDINFO() não tem suporte para este tipo de Query.

Já o ADODB tem suporte para esta função, mas ai você teria que mudar completamente todos os comandos de conexão com o banco de dados, tudo que você usar com o RDDINFO() não será aproveitado.

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

como listar tabelas de um banco de dados com a RDD

Mensagempor cjp » 22 Dez 2014 22:59

Então não tem jeito. Paciência.

Obrigado a todos.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

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

como listar tabelas de um banco de dados com a RDD

Mensagempor alxsts » 24 Dez 2014 08:36

Olá!

Não conheço nada de RDDINFO pois nunca a utilizei. ADO é uma tecnologia já superada no mundo Microsoft mas é excelente. O Harbour oferece suporte nativo a ADO,através da lib HbWin. Além disso, existem milhares de exemplos disponíveis.

Não vejo razão para você desistir assim, tão facilmente. Tudo bem que o teu sistema está usando RDDINFO. Você pode mesclar ADO com RDDINFO.

No caso da tua necessidade atual, bastaria uma função simples que conectasse no banco desejado, através de ADO, e retornasse um array com os nomes das tabelas deste banco.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

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

como listar tabelas de um banco de dados com a RDD

Mensagempor cjp » 24 Dez 2014 09:46

O problema é que eu não sei nada de ADO. Teria que ter um tutorial ensinando a instalar e usar, como o Toledo fez para a RDD.

Neste caso, como eu quero apenas listar as tabelas de backup, para eventualmente apagá-las, eu vou me virando apagando manualmente.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

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




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 12 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