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

conexão com sql Server


Alex Mauricio

Pergunta

Estou fazendo um teste com ODBC, SQL Server e Store Procedure, conforme o código abaixo:

Option Explicit

Dim area As Workspace
Dim conexao As Connection
Dim resultado As Recordset
Dim consulta As QueryDef

Dim gSql As String
Dim aspa As String

Private Sub cmdIncluir_Click()
    If Trim(txtNome.Text) = "" Then
        MsgBox "Informe o nome"
        Exit Sub
    End If
    
    Set consulta = conexao.CreateQueryDef("")
  consulta.Prepare = dbQUnprepare
    gSql = "sp_insert_Pessoa1" & aspa & txtNome & aspa & ","
    
    If Trim(txtNaturalidade.Text) = "" Then
        gSql = gSql & "null,"
    Else
        gSql = gSql & aspa & txtNaturalidade.Text & aspa & ","
    End If
    
    If cboEstado.ListIndex = -1 Then
        gSql = gSql & "null,"
    Else
        gSql = gSql & cboEstado.ItemData(cboEstado.ListIndex) & ","
    End If
    
    If IsNull(dtpNascimento) Then
        gSql = gSql & "null,"
    Else
        gSql = gSql & aspa & dtpNascimento & aspa & ","
    End If
    
    gSql = gSql & aspa & dtpEmissao & aspa
    
    consulta.SQL = gSql
    consulta.Execute
    ListaPessoa
    cboPessoa.SetFocus
End Sub

Private Sub Form_Load()
    Set area = CreateWorkspace("NovaArea", "admin", "", dbUseODBC)
    Set conexao = area.OpenConnection("Conexao", dbDriverNoPrompt, , "ODBC;DATABASE=Exemplo;UID=public;PWD=;DSN=UserSQL")
    
    ListaPessoa
    
    gSql = "select * from Estado"
    Set resultado = conexao.OpenRecordset(gSql, dbOpenSnapshot)
    
    Do Until resultado.EOF
        cboEstado.AddItem resultado!sigla
        cboEstado.ItemData(cboEstado.NewIndex) = resultado!IdEstado
        resultado.MoveNext
    Loop
    
    resultado.Close
    aspa = """"
End Sub

Private Sub ListaPessoa()
    cboPessoa.Clear
    gSql = "select * from Pessoa"
    Set resultado = conexao.OpenRecordset(gSql, dbOpenSnapshot) 'o dbopenSnapshot indica que a consulta é somente leitura e consequentemente mais rápida
    
    Do Until resultado.EOF
        cboPessoa.AddItem resultado!nome
        cboPessoa.ItemData(cboPessoa.NewIndex) = resultado!IdPessoa
        resultado.MoveNext
    Loop
    resultado.Close
End Sub

Porém está dando o seguinte erro:

Run-time erro '3146'

ODBC-call failed

Onde eu salvo uma stored procedure?

Obrigado

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Porém está dando o seguinte erro:

Run-time erro '3146'

ODBC-call failed

em qual linha ocorre o erro?? na consulta.Execute mesmo??

o erro so ocorre na hora de chamar a procedure?? se você tentar executar otras querys, roda normal??

a mensagem é so "ODBC-call failed"?? não fala mais nd alem disso??

Onde eu salvo uma stored procedure?

o q você quer dizer com essa pergunta??

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

  • 0

o erro é só este mesmo...

preciso fazer estes testes que solicitou...

referente a pergunta "onde salvo uma stored procedure" eu quis dizer se tem um local padrão para fazer isso... e se não é por causa disso que o sistema "não está achando a stored procedure".

No final do dia eu envio onde está o erro exatamente.

OBrigado

Link para o comentário
Compartilhar em outros sites

  • 0
o erro é só este mesmo...

tem mesmo certeza q não aparece falando nd mais alem de "ODBC-call failed"??

referente a pergunta "onde salvo uma stored procedure" eu quis dizer se tem um local padrão para fazer isso... e se não é por causa disso que o sistema "não está achando a stored procedure".

não sei qual versao do sql você usa, mas quando você cria a procedure, ela fica gravada dentro do seu banco de dados. pelo manager, você pode ve-la na opcao Stored Procedures.

a sua procedure existe mesmo e esta salva la??

se você tentar chama-la pelo Query Analyzer, ela funciona??

Link para o comentário
Compartilhar em outros sites

  • 0

fiz isso... apertei o F5 e executou minha stored procedure sem erros....

porém preciso salvar essa SP... certo??????????

onde salvo??????????

talvez esse erro que está dando na aplicação seja porque a aplicação não está achando a SP...

Porque quando crio a conexão com a base de dados no ODBC para SQL Server ele mostra que os TESTES FORAM CONCLUÍDOS COM ÊXITO...

Obrigado

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,2k
    • Posts
      652k
×
×
  • Criar Novo...