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

Como trabalhar com classes no asp


ANDRE_GUSTAVO

Pergunta

Galera gostaria de saber como utilizar classes utilizando o ASP

Criei meu arquivo de classe mas não estou sabendo como utiliza-lo.

Peguei como base um exemplo que encontrei na net, mas nesse exemplo a classe apenas inseria os dados no banco.

Tentei uma adaptação para o que necessito, porém sem sucesso!!!

Como eu utilizo as funções da classe??????

Por favor me ajudem.

Segue abaixo meu arquivo com a classe e suas funçoes

<%
'definição do nome da sua classe
Class Noticias
'===================================================FUNÇOES ADMINISTRATIVAS====================================================
Dim Categoria, Categoria_coluna, Titulo, Texto, Reporter, Fotografo 'definição de variáveis que serão utilizadas para guardar as informações que serão digitadas.
Dim var_Id_Noticia, var_Id_Categoria, var_Categoria, var_Categoria_coluna, var_Titulo, var_Texto, var_Reporter, var_Fotografo, var_Foto, var_Nome_Foto, ExibeData

Private ConexaoDB 'variáel que fará a conexão com banco.
Private RS_incluirnoticias , RS_ExibeCat_colunas, RS_ExibirConteudoPagina, RS_ExibirFotosNoticias, RS_AlteraNoticia , RS_UPLOAD'variável do recordset.
Private SQL_incluirnoticias, SQL_ExibeCat_colunas, SQL_ExibirConteudoPagina, SQL_ExibirFotosNoticias, SQL_AlteraNoticia, SQL_UPLOAD 'variável que terá o retorno do que foi gravado.

'Criei variáveis privadas, porque só serão usadas aqui na classe.
Private sub AbreConexao
    Set Conexaodb = Server.CreateObject("ADODB.Connection")
    Conexaodb.open "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=revistahoje; User=user;Password=senha;Option=3;"
end sub
'função que fecha a conexão com o banco.
Private Sub FechaConexao
    Conexaodb.close
    set Conexaodb = nothing
end sub

'função que chamarei para fazer a inclusão dos dados.
Sub IncluirNoticia
'chama a função que faz a conexão com banco. 
Call AbreConexao
SQL_incluirnoticias = "Insert into tbl_noticias (categoria, categoria_coluna, titulo, texto, reporter, fotografo) values ('" & categoria & "', '"&categoria_coluna&"', '"&titulo&"', '"&texto&"', '"&reporter&"', '"&fotografo&"')" 
set RS_incluirnoticias = ConexaoDB.Execute(SQL)
Call FechaConexao
End Sub 

'Função para UPLOAD DAS FOTOS
Sub EnviarFotos
Set objUpload = server.CreateObject("Dundas.Upload.2")
objUpload.MaxFileSize = 500
objUpload.UseVirtualDir = false
objUpload.UseUniqueNames = TRUE

objUpload.Save("E:\vhosts\revistahoje.com.br\httpdocs\sgc\imgs_noticias\")
For Each objUploadedFile in objUpload.Files 
path=objUploadedFile.Path
var_Foto = objUpload.GetFileName(path)
var_Nome_Foto = objUpload.GetFileName(objUpload.Files(0).Path)
Call AbreConexao 

SQL_UPLOAD = "INSERT INTO fotos (id_noticia, foto) values ('"&var_Id_Noticia&"','"&var_Nome_Foto&"')"
set RS_UPLOAD = ConexaoDB.Execute(SQL_UPLOAD)
next
Call fechaConexao
set RS_UPLOAD = NOTHING
Set objUpload = nothing
End Sub

'FUNÇÃO PARA ALTERAÇÃO DE NOTÍCIAS Categoria, Categoria_coluna, Titulo, Texto, Reporter, Fotografo
Sub AlteraNoticia
Call AbreConexao
SQL_AlteraNoticia = "UPDATE tbl_noticias SET categoria = '"&var_Categoria&"', categoria_coluna = '"&var_Categoria_coluna&"', titulo = '"&var_Titulo&"', texto = '"&var_Texto&"', reporter = '"&var_Reporter&"', fotografo = '"&var_Fotografo&"' WHERE id =  = '"&var_Id_Noticia&"'"
set RS_AlteraNoticia = ConexaoDB.Execute(SQL_AlteraNoticia)
Call FechaConexao
End Sub

'FUNÇÃO PARA EXCLUSÃO DE NOTICIA
Sub ExcluirNoticia
'-----------------------EXCLUIR FOTO------------------------------------
On Error Resume Next
  If Mid(var_Foto, 2, 1) <> ":" Then
    var_Foto = Server.MapPath("../imgs_noticias/"&var_Foto)
  End If
  If Err Then Err.Clear
  On Error GoTo 0

Dim FSO
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(var_Foto) Then
FSO.DeleteFile var_Foto
End If
Set FSO = Nothing
'=======================================================================
Call AbreConexao
SQL_ExcluirNoticia = "DELETE FROM tbl_noticias where id = '"&var_Id_Noticia&"'"
set RS_ExcluirNoticia = ConexaoDB.Execute(SQL_ExcluirNoticia)
SQL_EXCLUIR_FOTO = "DELETE FROM tbl_noticias where id_noticia = '"&var_Id_Noticia&"'"
set RS_EXCLUIR_FOTO = ConexaoDB.Execute(SQL_EXCLUIR_FOTO)
Call FechaConexao
End Sub

'FUNÇÃO PARA EXIBIR CATEGORIA DE DAS COLUNAS
Sub ExibirCategoriasColunas
Call AbreConexao
SQL_ExibeCat_colunas = "SELECT * FROM cat_colunas"
set RS_ExibeCat_colunas = ConexaoDB.Execute(SQL_ExibeCat_colunas)
End Sub

'FUNÇÃO PARA EXIBIR CATEGORIAS DE NOTICIAS(CAPA-ENTREVISTA-POLITICA-ECONOMIA-SAUDE....)
Sub ExibirConteudoPagina
Call AbreConexao
SQL_ExibirConteudoPagina = "SELECT * FROM tbl_noticias where categoria = '"&var_Id_Categoria&"' and categoria_coluna ='"&var_Categoria_coluna&"' order by id desc limit 3"
set RS_ExibirConteudoPagina = ConexaoDB.Execute(SQL_ExibirConteudoPagina)
End Sub

'FUNÇÃO PARA EXIBIR FOTOS RELACIONADAS A CADA NOTICIA
Sub Exibir_Foto
Call AbreConexao
SQL_ExibirFotosNoticias = "SELECT * FROM fotos where id_categoria = '"&var_Id_Categoria&"'"
set RS_ExibirFotosNoticias = ConexaoDB.Execute(SQL_ExibirFotosNoticias)
End Sub

Sub ResizeFotos
Set Jpeg = Server.CreateObject("Persits.Jpeg")
'Set JpegLogo = Server.CreateObject("Persits.Jpeg")
Jpeg.PreserveAspectRatio = True
caminho = "sgc/imgs_noticias/"&var_Foto&""
'JpegLogoPath = Server.MapPath("sgw/img/logo_divulga.png")

'Open source file
Jpeg.Open (server.mappath(caminho))
'JpegLogo.Open JpegLogoPath
'Jpeg.DrawImage Jpeg.Width-295, Jpeg.Height-100, JpegLogo

Jpeg.Width = 245
Jpeg.Height = Jpeg.OriginalHeight * Jpeg.Width / Jpeg.OriginalWidth
Response.BinaryWrite(Jpeg.SendBinary)

End Sub

'=======================================================FIM FUNÇÕES ADMINISTRATIVAS=============================================
'-------------------------------------------------------------------------------------------------------------------------------
'===========================================================FUNÇÕES AUXILIARES==================================================
'FUNÇÃO DATA
Sub Exibe_Data
Dim nDia, nMes, nAno, nDiaSemana, ExibeData
Dim sDiaSemana, sMes

nDia = day(Date)
nMes = month(Date)
nAno = year(Date)
nDiaSemana = weekday(Date)

select case nDiaSemana
case 1 sDiaSemana = "Domingo"
case 2 sDiaSemana = "Segunda-Feira"
case 3 sDiaSemana = "Terça-Feira"
case 4 sDiaSemana = "Quarta-Feira"
case 5 sDiaSemana = "Quinta-Feira"
case 6 sDiaSemana = "Sexta-Feira"
case 7 sDiaSemana = "S&aacute;bado"
end select

select case nMes
case 1 sMes = "Janeiro"
case 2 sMes = "Fevereiro"
case 3 sMes = "Mar&ccedil;o"
case 4 sMes = "Abril"
case 5 sMes = "Maio"
case 6 sMes = "Junho"
case 7 sMes = "Julho"
case 8 sMes = "Agosto"
case 9 sMes = "Setembro"
case 10 sMes = "Outubro"
case 11 sMes = "Novembro"
case 12 sMes = "Dezembro"
end select
ExibeData = nDia & " de " & sMes & " de " & nAno 
End Sub

'FUNÇÃO ANTI-INJECTION
Sub LimparTexto(str)
str = trim(str)
str = replace(str,"'","")
str = replace(str,"""""","")
str = replace(str," or ","")
str = replace(str," and ","")
str = replace(str,"update","")
str = replace(str,"-shutdown","")
str = replace(str,"--","")
str = replace(str,"'","")
str = replace(str,"#","")
str = replace(str,"$","")
str = replace(str,"%","")
str = replace(str,"","")
str = replace(str,"&","")
str = replace(str,"'or'1'='1'","")
str = replace(str,"--","")
str = replace(str,"insert","")
str = replace(str,"drop","")
str = replace(str,"delete","")
str = replace(str,"xp_","")
str = replace(str,"select","")
str = replace(str,"*","")
LimparTexto = str
end Sub


'========================================================FIM FUNÇÕES AUXILIARES==================================================
'-------------------------------------------------------------------------------------------------------------------------------
End Class 
%>
Como devo proceder, por exemplo na pagina index, para exibir uma foto de determinada categoria, exibir o titulo de determinada noticia? Enfim, quem puder me ajudar a endender classes no ASP ficarei muito grato!!! Estou tentando exibir as informações na minha pagina princial da seguinte forma, porem esta dando erro. Segue abaixo a forma que estou tentando chamar a função que exibe as informações do banco:
<%
                      Dim CAPA, RS_ExibirConteudoPagina
                      Set CAPA = new Noticias
                    CAPA.var_Categoria = "Capa"
                    CAPA.ExibirConteudoPagina
                  %>
                    <% Do While Not CAPA.ExibirConteudoPagina(RS_ExibirConteudoPagina).Eof %>
                    <div align="left" class="style2"><%= CAPA.ExibirConteudoPagina(RS_ExibirConteudoPagina("titulo")) %></div><br>
                     <div align="left" class="style2"><%= CAPA.ExibirConteudoPagina(mid(CAPA.RS_ExibirConteudoPagina("titulo"), 1, 35 ))%>...</div>
                     <%
                    CAPA.ExibirConteudoPagina(RS_ExibirConteudoPagina).MoveNext
                    Loop
                    call fechaconexao
                    %>

Quando executo a pagina, é exibido o seguinte erro:

Microsoft VBScript runtime error '800a01c2'

Wrong number of arguments or invalid property assignment: 'ExibirConteudoPagina'

É possivel realizar com o asp isso que estou tentando fazer?

Alguém me ajuda?????

Obrigado a todos!!!

ate mais

Editado por quintelab
Removido Caixa Alta do Título
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Seguinte:

Sub ExibirConteudoPagina
Call AbreConexao
SQL_ExibirConteudoPagina = "SELECT * FROM tbl_noticias where categoria = '"&var_Id_Categoria&"' and categoria_coluna ='"&var_Categoria_coluna&"' order by id desc limit 3"
set RS_ExibirConteudoPagina = ConexaoDB.Execute(SQL_ExibirConteudoPagina)
End Sub
A sub "ExibirConteudoPagina" não pede paramêtro e você esta tentando passar com o tal.
ExibirConteudoPagina(RS_ExibirConteudoPagina)

Abços.

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...