Foro de elhacker.net

Programación => 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
  1.        Dim pid As Long
  2.        On Error Resume Next
  3.        Kill sFile
  4.        pid = Shell("cmd.exe /c mysql --user=" & db_user & " --password=" & db_pass & " " & db_nombre & " < " & Chr(34) & sFile & Chr(34), vbHide)
  5.        While Proceso_abierto(pid) = True
  6.            DoEvents
  7.            Sleep (100)
  8.        Wend
  9.        Sleep 1000
  10.        MsgBox "El archivo ha sido importado Exitosamente, vuelva a ejecutar el programa.", vbInformation, "Copia de Seguridad Restablecida"
  11.  
  12.  
  13.  
Código
  1. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  2. Private Declare Function EnumProcesses Lib "PSAPI.DLL" ( _
  3.     ByRef lpidProcess As Long, _
  4.     ByVal cb As Long, _
  5.     ByRef cbNeeded As Long) As Long
  6. Private Function Proceso_abierto(ByVal pid As Long) As Boolean
  7.    'Nos dice si un PID esta abierto, para saber si finalizo el proceso
  8.    Dim Array_Procesos() As Long
  9.    Dim i_Procesos As Long
  10.    Dim t_cbNeeded As Long
  11.    Dim i As Long
  12.    Dim ret As Long
  13.    ReDim Array_Procesos(250) As Long
  14.    ret = EnumProcesses(Array_Procesos(1), 1000, t_cbNeeded)
  15.    i_Procesos = t_cbNeeded / 4
  16.    For i = 1 To i_Procesos
  17.        If pid = Array_Procesos(i) Then
  18.            Proceso_abierto = True
  19.        End If
  20.  
  21.    Next
  22. End Function
  23.  


SALUDOS