CRIACAO DE TABELAS NO MY SQL POR TEMPO DE EXECUCAO
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
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.
Obrigado pela ajuda. Vou me virando por aqui.
Abraços.
At.,
SVINCENZO
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