Buenos dias compañeros mi inquietud es la siguiente:
Estoy desarrollando un aplicación en VB 2005 y BD SQL Server 2005, estoy utilizando una función como esta para ejecutar scripts o cualquier consulta que se le pase por parametro(No necesariamente debe ser la ruta a un script.sql)
Código:
Public Function Ejecutar(ByVal cScriptSQL As String) As String
Dim Activo As Boolean
If cScriptSQL <> vbNullString Then
Conexion.Open()
Comando = New Odbc.OdbcCommand(cScriptSQL, Conexion)
Try
Comando.CommandText = cScriptSQL
Comando.ExecuteNonQuery()
Activo = True
MessageBox.Show("Consulta Script OK")
Catch ex As Exception
MessageBox.Show("Error al ejecutar el script SQL:" & vbCrLf & ex.Message)
Activo = False
End Try
End If
Return Activo
End Function
Ahora la forma de utilizarla es la siguiente:
Código:
Ejecutar("WITH MExplosion (PARPRT_02, COMPRT_02, nivel, Referencia) AS (SELECT r.PARPRT_02, r.COMPRT_02,0 AS nivel, PARPRT_02 as Referencia FROM Product_Structure as r UNION ALL SELECT r.PARPRT_02, r.COMPRT_02, nivel + 1, Referencia FROM Product_Structure as r INNER JOIN MExplosion AS d ON r.PARPRT_02 = d.COMPRT_02 ) SELECT Referencia, COMPRT_02, nivel, PMDES1_01 FROM MExplosion INNER JOIN Part_Master ON MExplosion.COMPRT_02 = Part_Master.PRTNUM_01 INNER JOIN Part_Sales ON Part_Sales.PRTNUM_29 = Referencia WHERE COMPRT_02 LIKE '" & Me.partes.SelectedRows(0).Cells(0).Value.ToString & "%'")
Esta ejecución me devuelve 4 datos que son Referencia, COMPRT_02, nivel, PMDES1_01, aqui es donde radica mi duda al ejecutarla en el SQL Server me devuelve los resultados, obviamante cuando la ejecuto en mi aplicación me devuelve el mensaje de Script OK, mi pregunta es teniendo en cuenta la estructura de mi función como hago para rescatar los datos que me devuelve la ejecución teniendo en cuenta que el objeto
Comando.ExecuteNonQuery() solo me devuelve le numero de filas afectadas al ejecutar el script??? o de que otra manera podría plantear mi función para ejecutar scripts Sql y poder rescatar los datos que me devuelve la ejecución del mismo???
Agradesco sus comentarios al respecto desde ya muchas gracias.
Saludos.