como listar tabelas de um banco de dados com a RDD

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

como listar tabelas de um banco de dados com a RDD

Mensagem por cjp »

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
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

como listar tabelas de um banco de dados com a RDD

Mensagem por rochinha »

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 [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

como listar tabelas de um banco de dados com a RDD

Mensagem por cjp »

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):

Código: Selecionar todos

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
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

como listar tabelas de um banco de dados com a RDD

Mensagem por rochinha »

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ódigo: Selecionar todos

...
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 [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

como listar tabelas de um banco de dados com a RDD

Mensagem por JoséQuintas »

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:

Código: Selecionar todos

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 mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

como listar tabelas de um banco de dados com a RDD

Mensagem por cjp »

Eu uso em modo console mesmo.

Estou usando com a RDD, algo assim:

Código: Selecionar todos

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

Código: Selecionar todos

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:

Código: Selecionar todos

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
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

como listar tabelas de um banco de dados com a RDD

Mensagem por Toledo »

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
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

como listar tabelas de um banco de dados com a RDD

Mensagem por cjp »

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

Obrigado a todos.
Inacio de Carvalho Neto
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

como listar tabelas de um banco de dados com a RDD

Mensagem por alxsts »

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)
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

como listar tabelas de um banco de dados com a RDD

Mensagem por cjp »

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
Responder