Se puede crear un instalador de unos scripts sql?

Iniciado por _CrisiS_, 12 Febrero 2011, 06:07 AM

0 Miembros y 1 Visitante están viendo este tema.

_CrisiS_

Holas Bueno tengo mi BD y unos procedimientos pero todo lo tengo en un script de sql, mi duda era si se podia crear desde visual net u otro lado un "instalador del script" cosa que cuando vaya a otra maquina no sea nesesario tener que abrir el sql y ejecutar mi script o cuando distribuya mi aplicacion no vean el codigo de mi script

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

‭‭‭‭jackl007

hazlo por consola...

yo tambien tuve la misma necesidad, pero para crear un asistente de importacion / exportacion de copias de seguridad de la bd de la aplicacion.

la idea es ejecudar la consola y ejecutar el mysql dandole los parámetros (usuario, password, bd, y la ruta del fichero a importar).

El codigo tambien detecta cuando se ha finalizado de importar, esto lo hace monitoreando si está abierta la consola o no...


te pongo aqui el codigo
Código (vb) [Seleccionar]

        Dim pid As Long
        On Error Resume Next
        Kill sFile
        pid = Shell("cmd.exe /c mysql --user=" & db_user & " --password=" & db_pass & " " & db_nombre & " < " & Chr(34) & sFile & Chr(34), vbHide)
        While Proceso_abierto(pid) = True
            DoEvents
            Sleep (100)
        Wend
        Sleep 1000
        MsgBox "El archivo ha sido importado Exitosamente, vuelva a ejecutar el programa.", vbInformation, "Copia de Seguridad Restablecida"



Código (vb) [Seleccionar]

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function EnumProcesses Lib "PSAPI.DLL" ( _
     ByRef lpidProcess As Long, _
     ByVal cb As Long, _
     ByRef cbNeeded As Long) As Long
Private Function Proceso_abierto(ByVal pid As Long) As Boolean
    'Nos dice si un PID esta abierto, para saber si finalizo el proceso
    Dim Array_Procesos() As Long
    Dim i_Procesos As Long
    Dim t_cbNeeded As Long
    Dim i As Long
    Dim ret As Long
    ReDim Array_Procesos(250) As Long
    ret = EnumProcesses(Array_Procesos(1), 1000, t_cbNeeded)
    i_Procesos = t_cbNeeded / 4
    For i = 1 To i_Procesos
        If pid = Array_Procesos(i) Then
            Proceso_abierto = True
        End If

    Next
End Function



SALUDOS