Gerenciamento e veiculação universal de dados usando HTML puro. No entanto, para coletar dados, você precisa de um repositório de dados. Para evitar muitos dos problemas associados ao uso de um servidor de banco de dados, você pode coletar esses dados em XML. Aqui está a estrutura básica do nosso projeto:
Inicialmente limitei os dados ao nome, sobrenome e nome do meio. A ideia básica por trás desta página é que as informações do usuário sejam obtidas nesta página. Depois que as necessidades de informação do usuário forem satisfeitas, o processo deve ser movido para a próxima etapa de coleta lógica. Para simplificar, agruparei a funcionalidade do usuário em uma classe ASP.
Função Coalescer (vVar, vAlt)
Se vVal = "" Ou VarType(vVal) = 1 Ou VarType(vVal) = 0 Então
Coalescer = vAlt
Outro
Coalescer = vVal
Terminar se
Fim
da classe de função CUser
Privado m_SQL, m_DOM
Propriedade pública Obtenha DOM()
Definir DOM = m_DOM
Fim da propriedade
pública Sub saveUser()
m_SQL.save "save_user", m_DOM
Finalizar
função sub-pública validar()
m_DOM.loadXML "
Se não m_DOM.selectSingleNode("//error") não for nada, então
validar=Falso
Outro
validar = Verdadeiro
Terminar se
Função final
Private Sub collectData(dom, oCollection)
Dim nItem, nó, parent_node, n, sKey
Para nItem = 1 Para oCollection.Count
sKey = oCollection.Key(nItem)
Definir parent_node = dom.selectSingleNode("//" & sKey & "s")
Se não parent_node não for nada, então
Para n = 1 Para oCollection(sKey).Count
Definir nó = parent_node.selectSingleNode(sKey & _
"[string(.)='" &
oCollection(sKey)(n) & "']")
Se o nó não for nada, então
Definir nó = dom.createNode(1, sKey, "")
Definir nó = parent_node.appendChild(nó)
Terminar se
node.text = Coalesce(oCollection(sKey)(n), "")
Próximo
Outro
Definir nó = dom.selectSingleNode("//" & sKey)
Se não, o nó não é nada, então _
node.text = Coalesce(oCollection(sKey), "")
Terminar se
Próximo
Fim Sub
Privado Sub Class_Initialize()
Definir m_SQL = Novo CSQL
Definir m_DOM = Server.CreateObject("MSXML2.DOMDocument")
m_DOM.async = Falso
Se VarType(Request ("txtUserXML")) = 0 Ou Request ("txtUserXML") = "" Então
Solicitação m_DOM.loadXML ("txtUserXML")
Outro
m_DOM.load "
Terminar se
coletar dados m_DOM, Request.Form
coletar dados m_DOM, Request.QueryString
Fim Sub
Privado Sub Class_Terminate()
Definir m_SQL = Nada
Definir m_DOM = Nada
Fim Sub
Fim
Classe Classe CSQL
Salvar função pública
m_DAL, m_Stream privada
(sStoredProc, oDOM)
'adVarChar = 200
Matriz m_DAL.RunSP(m_DAL.mp("@xml_param", 200, 8000, oDOM.xml))
Função final
Função pública validUser (oDOM)
Definir m_Stream = m_DAL.RunSPReturnStream("validate_user", Array(_
m_DAL.mp("@xml_param", 200, 8000, oDOM.xml)))
validarUsuário = m_Stream.ReadText(-1)
m_Stream.Fechar
Função final
Private Sub Class_Initialize()
Definir m_DAL = Server.CreateObject("MyPkg.MyDAL")
m_DAL.GetConnection “alguma string de conexão”
Definir m_Stream = Server.CreateObject("ADODB.Stream")
Fim Sub
Privado Sub Class_Terminate()
Definir m_DAL = Nada
Definir m_Stream = Nada
Fim SubFim
Classe
A classe CSQL é construída com base em um componente da camada de acesso a dados (m_DAL) MyPkg.MyDAL. Este componente é construído com base nos componentes DAL Fitch e Mather, que podem ser encontrados no MSDN. Desta forma construímos uma ponte entre o SQL Server e o seu código.
Quando o objeto CUser é inicializado, ele coleta os dados da solicitação e usa a subfunção collectData() para colocar os dados coletados em um nó correspondente no UserDOM. (Não explicarei o código porque é bastante fácil de entender por si só.) Depois de coletar os dados (ou não), usaremos XSL para transformar o conteúdo dos dados em um layout.
*Informações em vermelho são obrigatórias
Primeiro nome:
MI:
Sobrenome:
Esta folha de estilo converterá o conteúdo em um layout. A verificação de erros é importante e os procedimentos armazenados verificam os dados determinando se eles precisam de processamento. Retorna um nó "erros" para cada campo que não pode estar vazio, mas não possui dados preenchidos. A saída deste XML é aproximadamente a seguinte:
Esta folha de estilo transformará o conteúdo em layout. A verificação de erros é importante e os procedimentos armazenados verificam os dados determinando se eles precisam de processamento. Retorna um nó "erros" para cada campo que não pode estar vazio, mas não possui dados preenchidos. A saída deste XML é aproximadamente a seguinte:
Observe que se houver um erro ao corresponder ao nome do nó. a saída produzida será vermelha. Precisamos do seguinte ASP para combinar todas as coisas anteriores.
<%@Idioma=VBScript%>
<%
Opção Explícita
Escurecer o usuário
Definir oUser = NewCUser
Se oUser.validate() Então
Definir oUser = Nada
Servidor.Transfer "NextPage.asp"
Terminar se
%>