Unidad 56. Enlazar VB y MySQL (IV)





56.7. Creamos las tablas.

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) " & _

                       ")"

Octubre-2010
Pág. 56.4

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies