CRIACAO DE TABELAS NO MY SQL POR TEMPO DE EXECUCAO

SVINCENZO 02/03/2012 07:25:12
#396229
Bom dia Pessoal.


Estou precisando cria um código onde o meu sistema verifica que a tabela no banco de dados está criada. Caso não esteja ele cria antes de entrar na tela de consulta de dados.

Alguem tem alguma documentação ou até um exemplo para compartilhar.


Desde já agradeço

SVINCENZO
MARCELO.TREZE 02/03/2012 08:32:03
#396235
Você faz tudo via query mesmo é basicamente simples.

você pode criar desde o banco de dados

CNN.Execute [Ô]CREATE DATABASE IF NOt EXISTS nome_bd[Ô]


e criar as tabelas

CNN.Execute [Ô]CREATE TABLES IF NOT EXISTS nome_tabela (id int(10) unsigned not null auto_increment,titulo varchar(80) not null,ano int(4) unsigned not null, diretor varchar(80) not null, primary key (id))[Ô]



e é isso, simples, código acima só criará a tabela se ela não existir.
SVINCENZO 02/03/2012 09:12:16
#396239
Marcelo, bom dia!

Obrigado pela ajuda. Vou me virando por aqui.

Abraços.


At.,

SVINCENZO
NALDOXD 02/03/2012 11:49:24
#396264
Resposta escolhida
Citação:

:
OPA

Para verificar se existe o campo na tabela e caso nao exista ele cria o campo e depois entra no sistema

Set Rs = New ADODB.Recordset
SQL = [Ô]SELECT * FROM SYSCOLUMNS WHERE ID = (SELECT id FROM sysobjects WHERE name=[ô]PRODUTOS[ô]) and name = [ô]NUMERO[ô][Ô]
Rs.Open SQL, Cnn, adOpenStatic, adLockOptimistic
If Rs.EOF Then
Cnn.Execute [Ô]ALTER TABLE PRODUTOS add NUMERO INT default 0[Ô]
Cnn.Execute [Ô]update produtos set numero = [ô]0[ô] where numero is null[Ô]
End If

Para verificar se existe a tabela - caso nao exista ele cria a tabela e depois entra no sistema

Set Rs = New ADODB.Recordset
SQL = [Ô]SELECT * FROM SYSOBJECTS WHERE NAME = [ô]VENDA_CONSIG[ô][Ô]
Rs.Open SQL, Cnn, adOpenStatic, adLockOptimistic
If Rs.EOF Then
Cnn.Execute [Ô]CREATE TABLE [dbo].[VENDA_CONSIG]([NRO_VENDA] [int] NOT NULL,[CLIENTE] [int] not NULL,[DATA_HORA] [SMALLDATETIME] not NULL,[VALOR] [MONEY] not NULL) ON [PRIMARY][Ô]
End If

veja se isso te ajuda ...e coloque no seu projeto onde voce for usar ... no meu caso eu coloquei a funcao na tela de login do sistema.



Sim, isso funciona, mas seria o mesmo caso de colocar apenas um IF NOT EXISTS na desclaração de criação do SQL que seria mais rápido e não consumiria tanto tempo em uma consulta SQL para retorna... bom, creio eu rsrs!!

Conexao.Execute [Ô]Declaração SQL[Ô]
Ou, o que acho melhor com uma identação
dim sSQL as string
sSQL = Empty
sSQL = sSQL & [Ô]Declaração SQL[Ô]
Conn.Execute sSQL,,128+1
Tópico encerrado , respostas não são mais permitidas