Con la misma filosofía se puede proceder a crear la tablas de la base de datos.
La sintaxis mínima puede ser esta.
"CREATE TABLE IF NOT EXISTS Tipo_Socio " & _
"( " & _
"Codigo VARCHAR(2) PRIMARY KEY," & _
"Denominacion VARCHAR(12) " & _
")"
Solo hay que ceñirse a la sintaxis de SQL.
Un ejemplo algo más complejo
"CREATE TABLE IF NOT EXISTS Serv_Realiz " & _
"( " & _
"Socio VARCHAR(5)," & _
"Fecha VARCHAR(8), " & _
"Reserva VARCHAR(6), " & _
"Servicio VARCHAR(3) REFERENCES Servicios ON DELETE NO ACTION " & _
"ON UPDATE NO ACTION, " & _
"Numero VARCHAR(2) REFERENCES Serv_Exist ON DELETE NO ACTION " & _
"ON UPDATE NO ACTION, " & _
"Hora VARCHAR(5), " & _
"PRIMARY KEY (Socio, Fecha, Reserva)," & _
"FOREIGN KEY (Socio) REFERENCES Socios ON DELETE NO ACTION " & _
"ON UPDATE NO ACTION, " & _
"UNIQUE (Socio, Fecha, Reserva) " & _
")"
El código puede ser el que sigue:
Private Sub CreaTabla(ByVal Conexion As MySql.Data.MySqlClient.MySqlConnection, _
ByVal Comando As MySql.Data.MySqlClient.MySqlCommand, _
ByVal CadenaSQL As String)
Comando = New MySql.Data.MySqlClient.MySqlCommand(CadenaSQL)
Comando.Connection = Conexion
Comando.CommandType = CommandType.Text
Try ' capturamos si hay errores
Select Case Comando.ExecuteNonQuery
Case 0
MsgBox("No se ha creado " & CadenaSQL, MsgBoxStyle.Critical, Me.Text)
Case 1
' Creada la tabla
Case Else
MsgBox("A saber que ha pasado")
End Select
Catch ex As Exception
' si hay errores retornamos el mensaje de error
MsgBox(ex.Message, MsgBoxStyle.Critical, Me.Text)
' con Finally que es parte de TRY CATCH y END TRY
' ponemos el código que se ejecutará se produzca o no un error
Finally
Comando = Nothing ' lo eliminamos de la memoria
End Try
End Sub
La creación de la tabla se basa en el mismo sistema que antes, el uso de un objeto command.
El objeto connection se supone ya configurado.
Comando = New MySql.Data.MySqlClient.MySqlCommand(CadenaSQL)
Comando.Connection = Conexion
Comando.CommandType = CommandType.Text
Select Case Comando.ExecuteNonQuery
Case 0
MsgBox("No se ha creado " & CadenaSQL, MsgBoxStyle.Critical, Me.Text)
Case 1
' Creada la tabla
Case Else
MsgBox("A saber que ha pasado")
End Select
Este procedimiento se llama pasando como parámetros un objeto Connection, un objeto Command, que se podría crear en el mismo procedimiento, no es imprescindible, y la instrucción SQL con la descripción de la tabla.
CreaTabla(Conexion, Comando, CadenaSQL)
Este procedimiento se puede basar en un array que contenga todas las tablas y un sistema adjunto de checkbox que habilite las que deseamos crear, en la fase de pruebas de la aplicación es cómodo, después no tiene sentido.
' Tablas de apoyo
V(1).Nombre = "Tipos de socios"
V(1).Create = "CREATE TABLE IF NOT EXISTS Tipo_Socio " & _
"( " & _
"Codigo VARCHAR(2) PRIMARY KEY," & _
"Denominacion VARCHAR(12) " & _
")"
Síguenos en: Facebook Sobre aulaClic Política de Cookies