Ir para conteúdo
Fórum Script Brasil
  • 0

Problema - Stored Procedure x VB 6


Señor Smoke

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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

Editado por Micon
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...