Jump to content
Fórum Script Brasil
  • 0

Problema - Stored Procedure x VB 6


Señor Smoke

Question

Olá a todos, é bom estar de volta ao fórum.

Estou fazendo uma aplicacao em VB6 acessando SQL Server 2005. Estou tentando carregar um MsFelxGrid com os dados de um result set.

Se eu colocar somente a query em uma varíavel no VB e submeter ao result set, o VB traz os dados do SQL na boa. Agora se em vez de botar a query, eu mandar executar uma procedure no SQL pelo VB, ele me retorna o seguinte erro: Run time error 40088: no open cursor or cursor closed.

Ele so me retorna esse erro se eu mando executar pela procedure, porque? alguém já teve algum problema parecido?

Andei lendo que tem algum problema com VB e stored procedures, parece que o SQL não mantem o cursor aberto quando retorna a procedure ou algo assim.

Abs

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Olá para rodar uma procedure do SQL no VB eu uso o seguinte código !!!

você precisa abrir uma function.... como por exemplo!!

Private Function Carregagrid_ConsCup() As DataTable

Try

If conexao.State = ConnectionState.Open Then conexao.Close()

conexao.Open()

Dim da_sp As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter("NOME DA PROCEDURE", conexao)

da_sp.SelectCommand.CommandType = CommandType.StoredProcedure

da_sp.SelectCommand.CommandTimeout = 480

'Cria Parâmetro

da_sp.SelectCommand.Parameters.Add(New SqlClient.SqlParameter("@PARAMETRO DA PROCEDURE", SqlDbType.Int))

da_sp.SelectCommand.Parameters.Add(New SqlClient.SqlParameter("@PARAMETRO DA PROCEDURE", SqlDbType.DateTime))

da_sp.SelectCommand.Parameters.Add(New SqlClient.SqlParameter("@PARAMETRO DA PROCEDURE", SqlDbType.DateTime))

da_sp.SelectCommand.Parameters.Add(New SqlClient.SqlParameter("@PARAMETRO DA PROCEDURE", SqlDbType.Int))

'Informa Parâmetro

da_sp.SelectCommand.Parameters("@PARAMETRO DA PROCEDURE").Value = Me.Cbox_loja.Text.ToString

da_sp.SelectCommand.Parameters("@PARAMETRO DA PROCEDUREd").Value = Me.Data_ini.Text.ToString

da_sp.SelectCommand.Parameters("@PARAMETRO DA PROCEDURE").Value = Me.Data_fin.Text.ToString

da_sp.SelectCommand.Parameters("@PARAMETRO DA PROCEDURE").Value = Me.txt_cx.Text

Dim sourceDataSet As New DataSet

da_sp.Fill(sourceDataSet, "NOME DA PROCEDURE")

Dim table As New DataTable

table = sourceDataSet.Tables(0)

Dim dtt As New DataTable

For Each col As DataColumn In table.Columns

Dim colString As DataColumn = New DataColumn(col.ColumnName)

If col.DataType.ToString = "System.Object" Then

colString.DataType = System.Type.GetType("System.Double")

Else

colString.DataType = col.DataType

End If

dtt.Columns.Add(colString)

Next

da_sp.Fill(dtt)

da_sp.Dispose()

table.Dispose()

dtt.Dispose()

sourceDataSet.Dispose()

conexao.Close()

Return dtt

Catch strErro As Exception

conexao.Close()

MessageBox.Show("Erro ao Carregar Dados no Grid", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error)

Return Nothing

Exit Function

End Try

End Function

''''''''''''''' E DEPOIS É SÓ CHAMAR ELA NO BACKGROUNDWORKER OU COMO você QUISER........

SEGUE ABAIXO O EXEMPLO DO MEU CÓDIGO!!!!

Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted

Me.GridControl1.DataSource = Nothing

Me.GridView1.Columns.Clear()

Me.GridControl1.DataSource = Carregagrid_ConsCup()

SubFormataGrid(Me.GridView1)

Ctrl_MsgEspera1.Visible = False

Ctrl_MsgEspera1._Executar()

End Sub

Edited by Micon
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...