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

Duvida com conexão


Marco Canhoto

Pergunta

Olá a todos!

Estou criando uma aplicação que tem diversas funções como cadastro de produtos, fornecedores, registro de entrada, controle de estoque, saída desses materiais, livro fiscal, etc.

Eu criei um módulo para a conexão que contém o seguinte código para a conexão:

Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public rs2 As New ADODB.Recordset
Public cmd As New ADODB.Command
Public cmd2 As New ADODB.Command
Public sql As String
_____________________________________________________________________

Public Sub carrega()
If Not cn.State = adStateOpen Then cn.Open "DSN=local"

'produto
sql = "SELECT * FROM produto"
With cmd
      Set .ActiveConnection = cn
      .CommandType = adCmdText
      .CommandText = sql
End With

With rs
   .LockType = adLockPessimistic
   .CursorType = adOpenKeyset
   .CursorLocation = adUseClient
   .Open cmd
End With

'grupo
sql = "select * from grupo"
With cmd2
      Set .ActiveConnection = cn
      .CommandType = adCmdText
      .CommandText = sql
End With

With rs2
   .LockType = adLockPessimistic
   .CursorType = adOpenKeyset
   .CursorLocation = adUseClient
   .Open cmd2
End With
Vejam que para cada tabela, eu criei um recordset e um command. Gostaria de saber se há como eu acessar várias tabelas sem ter que ficar criando tanto recordset e command ou se existe algum modo de conexão mais simples, porém que não dê conflitos na hora de lidar com valores nulos. Por exemplo:
Public cn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public sql As String
_____________________________________________________________

cn.Open "DSN=local"
sql = "select * from produtos"
rs.Open sql, cn, 2, 3

O problema é que quando eu uso dessa segunda forma, ele passa direto por uam condição de valores nulos que eu criei, tentando pegar os dados da tabela, e dando erro, uma vez que não encontra nada.

No fim das contas, estou usando a primeira opção, mas gostaria de saber se existe alguma forma mais simples, sem declarar tantos recodsets, commands, etc.

Desde já muito obrigado.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Dá pra diminuir um pouco o codigo

Public Sub carrega()
If Not cn.State = adStateOpen Then cn.Open "DSN=local"

'produto
sql = "SELECT * FROM produto"
With cmd
      .ActiveConnection = cn
      .CommandType = adCmdText
      .CommandText = sql
      Set rs = .execute
End With

'grupo
sql = "select * from grupo"
With cmd2
      .ActiveConnection = cn
      .CommandType = adCmdText
      .CommandText = sql
     Set rs2 = .Execute
End With

End Sub

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,4k
×
×
  • Criar Novo...