Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/02/2009, 09:40
Avatar de Carlojas
Carlojas
 
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 17 años, 9 meses
Puntos: 49
Duda con objeto OdbcCommand

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.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"