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

Comandos DIM e SET


Duduh_Capixaba

Pergunta

senhores, tenho uma dúvida quanto a esses dois comandos: DIM e SET

qual a diferença entre eles? esses dois comandos parecem ter a mesma função, ou eu estou falando besteira? é porque eu só uso o DIM em minhas aplicações e nunca precisei do SET. mas sempre vejo nos códigos do pessoal o comando SET. gostaria de saber qual a função dele. vlw!

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

nossa, um é bem diferente do outro. o dim serve pra declarar variaveis. experimenta tentar declarar com set pra você ver o q acontece.

o set serve pra trabalhar com objetos. quando você quer igualar um objeto a outro você usa o set.

por exemplo:

Dim rs As ADODB.RecordSet 'Aqui você declara. use o DIM
Set rs = New ADODB.RecordSet 'Aqui você inicializa o RecordSet[/code] note q quando você declara um objeto é esta completamente vazio e você não conseguiria utiliza-lo. você então tem q atribuir alguma coisa para ele. no caso, o New vai inicalizar o objeto, setando suas propriedades para o estado inicial (quando você for criar uma classe você vai ver, o new chama a sub Initialize()). agora olha esse exemplo:
[code]Set rs = cn.Execute(sql)
o metodo execute do sql retorna um objeto RecordSet. ou seja é como se eu estivesse igualando um RecordSet a outro. tipo assim:
Set rs1 = rs2
o q pra variaveis comuns seria isso:
v1 = v2

mas como o RecordSet é um objeto, tenho q usar o Set.

Link para o comentário
Compartilhar em outros sites

  • 0

é, o DIM eu já conheço bem, sei pra quê serve. estou començando a entender melhor a idéia do SET. fiz um programa aqui que exibe e esconde os dados de um grid, assim:

Private Sub Command1_Click()
    Set DataGrid1.DataSource = Nothing
End Sub

Private Sub Command2_Click()
    Set DataGrid1.DataSource = Adodc1
End Sub
um botão exibe os dados, o outro esconde. outra coisa que eu faço aq em meus projetos é declarar uma variável já com o comando NEW, assim:
Dim Dados As New ADODB.Recordset

pode ser feito assim tb, certo?!

Link para o comentário
Compartilhar em outros sites

  • 0

é, olha q a propriedade DataSource do Grid é do tipo RecordSet (ou DataSet, ou qualquer coisa assim, mas da no mesmo). ai nesse codigo você estaria atribuindo um RecordSet com o valor de outro. pra isso você usa o Set.

quando você poe o Nothing, ele zera completamente o DataSource. tipo, ele passa um RecordSet totalmente vazio, como se você tivesse acabado de criar sem ter inicializado (sem ter atribuido um New RecordSet).

outra coisa que eu faço aq em meus projetos é declarar uma variável já com o comando NEW, assim:

Dim Dados As New ADODB.Recordset

pode ser feito assim tb, certo?!

pode, ai nesse caso ele cria o objeto já inicializado.

Link para o comentário
Compartilhar em outros sites

  • 0

Vamos lembrar também sobre o DIM que ele declara a variável que será usanda dentro de um comando, ou seja, variavel Local, exemplo:

Private Sub Command2_Click()

Dim RS as New ADODB.Recordset
Dim vSOMA as Long

' Aqui posso fazer comandos para este recordset RS ou esta variavel SOMA

End Sub
As variáveis declaradas neste botão de comando serão usadas apenas neste botão de comando com o DIM, mas se declaramos dentro do General Declarations o comando DIM é local, porém as variaveis poderão ser usadas ou chamadas em qualquer outro objeto do Form, pois serão variáveis locais do Form:
General Declarations

Dim RS_outro as New ADODB.Recordset


Private Sub preencher_combo()

'Posso usar o RS_outro AQUI nesta Sub, mas não posso usar a variavel SOMA nem o Recordset RS declarados dentro do Command_Buton mostrado acima

End Sub

Private Sub DataGrid1_Click

'Posso usar o RS_outro AQUI também, mas não posso usar a variavel SOMA nem o Recordset RS declarados dentro do Command_Buton mostrado acima

End Sub

Correto Kuroi ?

Link para o comentário
Compartilhar em outros sites

  • 0
Correto Kuroi ?

deixa que eu respondo essa: corretíssimo! :) isso eu faço sempre, hehe. acho que entendi bem o conceito do SET. agora é praticar pra dominar bem. vlw pelas respostas!

Editado por Duduh_Capixaba
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...