Estrutura de tabelas nativas MySql

03/02/2006

0

Saudações,
estou com um problema cabeludo que vou passar aqui de modo que seja fácil de compreender porém não sei se vai ser fácil responder (eu pelo menos já to há um tempão apanhando). Seguinte: Estou criando no delphi um gerenciador de backups (Delphi 5.0 Pro, MySql 5.0, Paleta MyDAC)de todos os databases MySql (Lê cada database, cada tabela, cada campo e cada registro da tabela e transforma em código Sql, tipo um Dump). Exemplo do resultado final:
CREATE DATABASE /*!32312 IF NOT EXISTS*/ educ;
USE educ;
DROP TABLE IF EXISTS tipo_analise;
CREATE TABLE IF NOT EXISTS ´tipo_analise´(
´tipo´ char(1) ,
´descricao´ varchar(50) ,
´detalhes´ varchar(255) ,
PRIMARY KEY tipo(´tipo´));
LOCK TABLES tipo_analise WRITE;
INSERT INTO tipo_analise (tipo, descricao, detalhes) VALUES (´D´, ´TOTAL / VALOR PADRAO´, ´HISTORICO DOS ALUNOS(PERMANENCIA, SAIDA E/OU RETORNO DE ALUNOS);´);
UNLOCK TABLES;

Isso o sistema faz sozinho, tudo isso, o meu problema é na criação da estrutura da tabela (campos). No código eu dou um ´Show Fields´ para capturar os campos e suas características e o MySql me retorna as colunas (Field, Type, Null, Key, Default, Extra). Aí é que está, eu só consigo criar a estrutura de uma tabela com as colunas Field, Type e Key. Sempre que eu ponho as outras colunas no fonte e uma delas está nula acontece erro (Ex: o campo Descrição mostrado acima ainda possui informações Null, Default e Extra porém só copio Nome do campo e Tipo/Tamanho). E não posso fazer um ´If Coluna Null = ´´ ou Coluna Default is null ou = null´ porque ele dá erro de sintaxe. Agora a pergunta principal: Existe como capturar a estrutura da Tabela que exibe a estrutura de cada tabela? Melhor ainda: Cada Database ao ser criado deve ter embutido uma tabelinha com os campos Field, Type, Null...Como eu capturo essa tabela...Como dar um Show Fields na tabela de resultados do próprio Show Fields? Ufa...Se alguém conhecer MySql a fundo...Taí o desafio...Obrigado

[quote:d9afa7458f=´Moderação´][b:d9afa7458f][color=blue:d9afa7458f]Título do tópico editado por Vinicius2K:[/color:d9afa7458f][/b:d9afa7458f]
[b:d9afa7458f][color=red:d9afa7458f][list:d9afa7458f][*:d9afa7458f]Título com conotação desafiadora. Removido: ´Quem realmente sabe?´[/list:u:d9afa7458f][/color:d9afa7458f][/b:d9afa7458f]
Peço que leia atentamente as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] e se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].[/quote:d9afa7458f]


Zooropa

Zooropa

Responder

Posts

04/02/2006

Fx|hand

Bom, eu tava tentando intender o q q vc keria aki... até agora eu naum consegui.... mais no MySql 5 tem um banco base do MySql...

aki ele mostra as infos completas dos bancos, e tabelas, campos... e coisas do tipo...

bom... aki eu consegui ver mais algumas coisas da Minha tabela de exemplo q eu fiz aki !!! dah uma olhadinha ai e vê o q q serve pra vc !

o banco se chama ´INFORMATION_SCHEMA´.

intaum ficaria assim:

select * from columns where table_schema = ´BANCO´ and table_name = ´table1´;


Selecionar todas as colunas onde o Banco de dados é ´BANCO´ e a tabela é a ´TABLE1´;

e ai vai ao seu gosto, dah um Select * from columns, q ele vai mostrar todas as colunas de todos os bancos q existe no MySql... *(Claro, bancos criados e/ou cadastrados !).


Responder

06/02/2006

Zooropa

Saudações Hand,
em primeiro lugar, peço desculpas pelo título da minha mensagem, não tive intenção alguma de desafiar ou coisa do tipo...postei dessa forma apenas para chamar a atenção de quem realmente poderia me ajudar. Bom, sobre o seu post, eu tentei fazê-lo mas com o código do jeito que está deu erro (lógico que mudei o banco e a tabela :-P). O que eu queria Hand, é o seguinte: se vc digitar ´Show fields´ em qualquer banco ou qualquer tabela, o MySql retorna a estrutura dos campos desta tabela...o que eu queria era saber de onde vem esta tabelinha (a tabelinha do ShowFields, que vem com os campos Field, Type, Null, Key, Default e Extra). Ou então, se for mais fácil....é que no delphi ao criar o Dump existem algumas tabelas que os campos Null e Default estão Nulos aí quando eu tento colocar algo do tipo: If Fieldbyname(´Default´).value = Null o delphi acusa erro de Sintaxe apenas nestes campos (Null, Default e Extra) vc poderia me ajudar nisso? Obrigado.


Responder

07/02/2006

Zooropa

Saudações Hand,
amigo, agradeço a ajuda mas consegui resolver o meu problema. Agora está tudo ok. Muito obrigado.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar