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).

  Duduh_Capixaba disse:
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
  Macêdo disse:
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.

×
×
  • Criar Novo...