Olá amigos internautas.
Hoje eu presentear os amantes do bom e velho ASP 3.0 com uma classe que cria combos em html com o resultado de uma query no banco de dados.
Neste exemplo eu estou usando o SQL Server como banco de dados, porém, basta você adaptar a ConnectionString para a base de sua preferência. Em connectionstrings.com você encontra diversos exemplos de connectionString.
O objeto utilizado para conectar ao banco de dados é o ADODB.
Vantagem: código estruturado (limpo de sujeiras) e de fácil manutenção.
Então, mãos a obra. Abaixo encontra-se o código da classe que eu chamei de WMCombo.asp:
<%
'===================================================================================================================================
' Autor: Wesley de Menezes Flor
' Descrição: Criar combos (tag SELECT do HTML) a partir de uma query no Banco de Dados.
' Contato: http://wmenezes.blogspot.com/
'===================================================================================================================================
' CREDITOS
Response.AddHeader "keywords", "Este site utiliza a classe WMCombo para geração de combos. http://wmenezes.blogspot.com/"
'===================================================================================================================================
Class WMCombo
' PROPRIEDADES DO SELECT
Private oAttributes
' OPTIONS
Private sOptionText
Private sOptionValue
Private sOptionDefault
' BANCO DE DADOS
Private rsTable
Private sQuery
Private sConnString
' AO INICIAR A CLASSE
Private Sub Class_Initialize()
Set rsTable = Server.CreateObject("ADODB.RecordSet")
Set oAttributes = Server.CreateObject("Scripting.Dictionary")
sOptionDefault = 0
End Sub
' PROPRIEDADES DA CLASSE
Public Property Let setAttribute( attributeName, attributeValue )
oAttributes.Add attributeName, attributeValue
End Property
Public Property Let OptionTextField( optionTextFieldValue )
sOptionText = optionTextFieldValue
End Property
Public Property Let OptionValueField( optionValueFieldValue )
sOptionValue = optionValueFieldValue
End Property
Public Property Let OptionDefaultValue( optionDefault )
sOptionDefault = optionDefault
End Property
Public Property Let Query( queryValue )
sQuery = queryValue
End Property
Public Property Let ConnectionString( connStringValue )
sConnString = connStringValue
End Property
' FUNÇÃO QUE CRIA A COMBO
Public Function Create( selectName )
' TAG SELECT
Response.Write "<select name="""& selectName &""" id="""& selectName &""""
' PROPRIEDADES DA TAG SELECT
Dim sKey
For Each sKey In oAttributes
Response.Write Space(1) & sKey & "="""& oAttributes(sKey) &""""
Next
Response.Write ">" & vbCrLf
' PRIMEIRA OPTION
Response.Write Space(2) & "<option value=""0"""
If sOptionDefault = 0 Then Response.Write " selected=""selected"""
Response.Write ">-- Selecione --</option>" & vbCrLf
' ABRE A TABELA NO BANCO DE DADOS
Const adUseServer = 2
Const adUseClient = 3
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adLockReadOnly = 1
rsTable.CursorLocation = adUseClient
rsTable.CursorType = adOpenForwardOnly
rsTable.LockType = adLockReadOnly
rsTable.Open sQuery, sConnString
' CRIA AS OPTIONS COM AS INFORMAÇÕES DO BANCO
While Not rsTable.EOF
Response.Write Space(2) & "<option value="""& rsTable.Fields(sOptionValue) & """"
If sOptionDefault = rsTable.Fields(sOptionValue) Then Response.Write " selected=""selected"""
Response.Write ">"
Response.Write Server.HTMLEncode( rsTable.Fields(sOptionText) )
Response.Write "</option>" & vbCrLf
rsTable.MoveNext
Wend
rsTable.Close
' FINALIZA A COMBO
Response.Write "</select>" & vbCrLf
' DESTRÓI OBJETOS
Set rsTable = Nothing
Set oAttributes = Nothing
End Function
End Class
%>
Exemplo de utilização da classe:
<!--#include virtual="/includes/class/WMCombo.asp"-->
<%
Set cb = New WMCombo
cb.OptionTextField = "Descricao"
cb.OptionValueField = "Codigo"
cb.OptionDefaultValue = 20
cb.Query = "SELECT Codigo, Descricao FROM Tabela"
cb.ConnectionString = "cole_aqui_a_string_de_conexão_do_seu_banco_de_dados"
cb.setAttribute("class") = "cssCombo"
cb.Create "cbTeste"
Set cb = Nothing
%>
Pronto, agora basta acessar sua página de exemplo, e você terá uma combo preenchida com os dados de uma query no banco de dados.
Agora só falta você opnar. Envie um comentário sobre este post.
Aquele abraço e até +.
Um comentário:
Ae.... valeu pelo código....
muito bom mesmo, vai facilitar pra caramba.
Postar um comentário