Hasta ahora ya nos pudimos conectar a la base de datos, hicimos consultas SQL a través de la conexión creada hicimos r creamos funciones para facilitar la programación, ahora nos toca simplemente maniobrar para crear todo el texto completo.
Como algo nuevo aprendido en este código es que no se pueden usar las comillas ” como escape por ejemplo \” en su lugar simplemente pones dos veces la doble comilla ejemplo “”
También el salto de linea que en gambas3 era gb.CrLf en Visual Basic 2022 es vbCrLf
Bien sin mas reparos les dejo como quedo finalmente el código para crear el código del modelo en PHP
'IMPORTAMOS LAS LIBRERIAS NECESARIAS PARA LA CONEXIÓN A MYSQL/MARIADB
Imports MySqlConnector.MySqlConnection
'EMPIEZA EL MODULO
Module crearModelo
' CON PUBLIC SUB CREAMOS PROCEDIMIENTOS
Public Function generaModelo() As String
' VARIABLES PARA LA CONEXIÓN
Dim strServidor As String
Dim strBaseDeDatos As String
Dim strUsuario As String
Dim strContra As String
'Variables de uso
Dim strCampos As String
Dim strCamposNoLLave As String
Dim strLLavePrimaria As String
Dim strCamposValue As String
Dim strBindingInsert As String
Dim strBindingUpdate As String
Dim strCamposUpdate As String
Dim strModelo As String
'OBTENEMOS LOS DATOS DE CONFIGURACIÖN DEL REGISTRO DE WINDOWS PREVIAMENTE GUARDADAS
If Not My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing) Is Nothing Then
strServidor = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "servidor", Nothing).ToString()
strBaseDeDatos = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "baseDeDatos", Nothing).ToString()
strUsuario = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "usuario", Nothing).ToString()
strContra = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\CREADORMVCPHP", "contra", Nothing).ToString()
Else
MsgBox("No se han capturado la conexión a la base de datos")
Exit Function
End If
' METEMOS LA CADENA DE CONEXIÓN EN UNA VARIABLE
Dim cadenaConexion = "Server=" & strServidor & ";User ID=" & strUsuario & ";Password=" & strContra & ";Database=" & strBaseDeDatos
' CREAMOS LA CONEXIÓN CON LA CADENA DE CONEXIÓN
Dim connection = New MySqlConnector.MySqlConnection(cadenaConexion)
Try
' SI SE ABRE LA CONEXIÓN MANDAMOS MENSAJE
connection.Open()
Dim comando = New MySqlConnector.MySqlCommand("SHOW KEYS FROM " & frmCreaCatalogo.txtTabla.Text & " WHERE Key_name = 'PRIMARY'", connection)
Dim resultado = comando.ExecuteReader
resultado.Read()
'ASIGNAMOS EL CAMPO LLAVE
strLLavePrimaria = resultado.GetString("Column_name")
'OBTENEMOS LOS CAMPOS DE LA TABLA
connection.Close()
connection.Open()
comando = Nothing
comando = New MySqlConnector.MySqlCommand("describe " & frmCreaCatalogo.txtTabla.Text & "", connection)
resultado = Nothing
resultado = comando.ExecuteReader
Dim contador As Integer
contador = 0
While (resultado.Read)
' CAMPOS PARA EL Select
If contador = 0 Then
strCampos = resultado.GetString("Field") & vbCrLf
Else
strCampos = strCampos & "," & resultado("Field") & vbCrLf
End If
'CAMPOS PARA EL INSERT
If resultado("Key") <> "PRI" Then
If contador = 1 Then
strCamposNoLLave = resultado("Field") & vbCrLf
Else
strCamposNoLLave = strCamposNoLLave & "," & resultado("Field") & vbCrLf
End If
End If
' CAMPOS PARA EL VALUE
If resultado("Key") <> "PRI" Then
If contador = 1 Then
strCamposValue = ":" & resultado("Field") & vbCrLf
Else
strCamposValue = strCamposValue & "," & ":" & resultado("Field") & vbCrLf
End If
End If
If resultado("Key") & vbCrLf <> "PRI" Then
strBindingInsert = strBindingInsert & " $stmt -> bindParam("":" & resultado("Field") & """, $datos[""nuevo" & UCase(Mid$(resultado("Field"), 1, 1)) & Mid$(resultado("Field"), 2, 100) & """], PDO::PARAM_STR);" & vbCrLf
End If
' CAMPOS UPDATE
If resultado("Key") <> "PRI" Then
If contador = 1 Then
strCamposUpdate = strCamposUpdate & resultado("Field") & "= :" & resultado("Field")
Else
strCamposUpdate = strCamposUpdate & "," & resultado("Field") & "= :" & resultado("Field")
End If
End If
strBindingUpdate = strBindingUpdate & " $stmt -> bindParam("":" & resultado("Field") & """, $datos[""editar" & utilerias.strPrimeraMayuscula(resultado("Field")) & """], PDO::PARAM_STR);" & vbCrLf
contador = contador + 1
End While
strModelo = ""
strModelo &= "<?php" & vbCrLf
strModelo &= "require_once ""conexion.php"";" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & "Class Modelo" & UCase(Mid$(frmCreaCatalogo.txtTabla.Text, 1, 1)) & Mid$(frmCreaCatalogo.txtTabla.Text, 2, 25) & " {" & vbCrLf
strModelo &= "" & " /* =============================================" & vbCrLf
strModelo &= "" & " MOSTRAR " & UCase(frmCreaCatalogo.txtTabla.Text) & vbCrLf
strModelo &= "" & " ============================================= */" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " Static Public Function mdlMostrar($tabla, $item, $valor) {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " If ($item != Null) {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt = Conexion:: conectar() -> prepare( ""Select " & strCampos
strModelo &= "" & " From " & frmCreaCatalogo.txtTabla.Text & " a WHERE $item =$item"");" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt -> bindParam( "":"" .$item, $valor, PDO::PARAM_STR);" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " Try {" & vbCrLf
strModelo &= "" & " $stmt -> execute();" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " Return $stmt -> fetch();" & vbCrLf
strModelo &= "" & " } Catch (PDOException $e) {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $arr = $stmt -> errorInfo();" & vbCrLf
strModelo &= "" & " $arr[3] = ""Error"";" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " If ($e -> getMessage() == 23000) {" & vbCrLf
strModelo &= "" & " $mensaje = "" El registro esta duplicado, Favor de checar el numero de nomina "";" & vbCrLf
strModelo &= "" & " Return $mensaje;" & vbCrLf
strModelo &= "" & " } Else {" & vbCrLf
strModelo &= "" & " Return $arr[2];" & vbCrLf
strModelo &= "" & " }" & vbCrLf
strModelo &= "" & " }" & vbCrLf
strModelo &= "" & " " & vbCrLf
strModelo &= "" & " " & vbCrLf
strModelo &= "" & " } Else {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt = Conexion:: conectar() -> prepare(""Select * """ & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " " & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " From " & frmCreaCatalogo.txtTabla.Text & " a ""); """ & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt -> execute();" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " Return $stmt -> fetchAll();" & vbCrLf
strModelo &= "" & " }" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt -> close();" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt = Null;" & vbCrLf
strModelo &= "" & " }" & vbCrLf
strModelo &= "" & "" & vbCrLf
' REGISTRO
strModelo &= "" & " /* ==================================================================" & vbCrLf
strModelo &= "" & " REGISTRO" & vbCrLf
strModelo &= "" & " ==================================================================== */" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " Static Public Function mdlIngresar($tabla, $datos) {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt = Conexion:: conectar() -> prepare(""INSERT INTO " & frmCreaCatalogo.txtTabla.Text & "(" & strCamposNoLLave & "" & vbCrLf
strModelo &= "" & " " & vbCrLf
strModelo &= "" & " )" & vbCrLf
strModelo &= "" & " VALUES(" & strCamposValue & ")" & vbCrLf
strModelo &= "" & " " & vbCrLf
strModelo &= "" & " ""); " & vbCrLf
strModelo &= "" & ""
strModelo &= "" & strBindingInsert & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " If ($stmt -> execute()) {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " Return ""ok"";" & vbCrLf
strModelo &= "" & " } Else {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $arr = $stmt -> errorInfo();" & vbCrLf
strModelo &= "" & " $arr[3] = "" Error "";" & vbCrLf
strModelo &= "" & " Return $arr[2];" & vbCrLf
strModelo &= "" & " }" & vbCrLf
strModelo &= "" & " $stmt -> close();" & vbCrLf
strModelo &= "" & " $stmt = Null;" & vbCrLf
strModelo &= "" & " }" & vbCrLf
'EDITAR ACTUALIZAR
strModelo &= "" & " /* ==================================================================" & vbCrLf
strModelo &= "" & " EDITAR " & vbCrLf
strModelo &= "" & " ================================================================== */" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " Static Public Function mdlEditar($tabla, $datos) {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt = Conexion:: conectar() -> prepare("" UPDATE $tabla Set " & strCamposUpdate & "" & vbCrLf
strModelo &= "" & ""
strModelo &= "" & " WHERE id =" & strLLavePrimaria & " ""); " & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & strBindingUpdate
strModelo &= "" & "" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " If ($stmt -> execute()) {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " Return ""ok"";" & vbCrLf
strModelo &= "" & " } Else {" & vbCrLf
strModelo &= "" & ""
strModelo &= "" & " Return ""Error"";" & vbCrLf
strModelo &= "" & " }" & vbCrLf
strModelo &= "" & ""
strModelo &= "" & " $stmt -> close();" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt = Null;" & vbCrLf
strModelo &= "" & " }" & vbCrLf
strModelo &= "" & " " & vbCrLf
strModelo &= "" & " " & vbCrLf & vbCrLf
strModelo &= "" & " /* ===================================================================" & vbCrLf
strModelo &= "" & " BORRAR USUARIO" & vbCrLf
strModelo &= "" & " =================================================================== */" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " Static Public Function mdlBorrar($tabla, $datos) {" & vbCrLf
strModelo &= "" & " $stmt = Conexion:: conectar() -> prepare( "" DELETE From " & frmCreaCatalogo.txtTabla.Text & " WHERE id =:id"");" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " $stmt -> bindParam("":id"", $datos, PDO::PARAM_INT);" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & " If ($stmt -> execute()) {" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & "Return ""ok"";" & vbCrLf
strModelo &= "" & " } Else {" & vbCrLf
strModelo &= "" & " Return ""Error"";" & vbCrLf
strModelo &= "" & " }" & vbCrLf
strModelo &= "" & " $stmt -> close();" & vbCrLf
strModelo &= "" & " $stmt = Null;" & vbCrLf
strModelo &= "" & " }" & vbCrLf
strModelo &= "" & "" & vbCrLf
strModelo &= "" & "}" & vbCrLf
generaModelo = strModelo
Catch ex As Exception
' SI NO SE ABRE LA CONEXIÓN MANDAMOS MENSAJE DE ERROR
MsgBox("ERROR " & ex.Message)
Exit Function
End Try
End Function
End Module
1 pingback