Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => Bases de Datos => Mensaje iniciado por: _CrisiS_ en 12 Febrero 2011, 06:07 AM

Título: Se puede crear un instalador de unos scripts sql?
Publicado por: _CrisiS_ en 12 Febrero 2011, 06:07 AM
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
Título: Re: Se puede crear un instalador de unos scripts sql?
Publicado por: Shell Root en 12 Febrero 2011, 19:04 PM
:http://www.elguille.info/NET/ADONET/Crear_una_base_de_datos_de_SQL_Server_mediante_codigo_de_Visual_Basic.htm
Título: Re: Se puede crear un instalador de unos scripts sql?
Publicado por: ‭‭‭‭jackl007 en 12 Febrero 2011, 21:27 PM
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