Encontrei-o pesquisando informações on-line, mas encontrei alguns problemas durante a depuração.
Após algumas modificações, ainda existem alguns problemas, mas pode ser utilizado para uso geral.
A questão do tipo de dados e a diferença entre o SQL Server e o acesso não foram consideradas. Vou melhorá-lo quando tiver tempo no futuro, não sei o quão eficiente será.
Se alguém melhorar, por favor me envie uma cópia.
<%
'Classe que gera strings SQL.
'Trabalho original: Anônimo
'Melhoria: aloxy
'E-mail: [email protected]
'OICQ:331622229
classeSQLString
'************************************
'Definição de variável
'************************************
'sTableName ---- nome da tabela
'iSQLType ----Tipo de instrução SQL: 0-add, 1-update, 2-delete, 3-query
'sWhere ---- condição
'sOrder ---- método de classificação
'sSQL ----ValuePrivate
sTableName,iSQLType,sWhere,sOrder,sSQL
'********************************** * ***
'Inicialização/fim da classe
'************************************
Subclasse Privada_Initialize()
nomeDaTabela=""
iSQLType=0
sOnde=""
sOrdem=""
SQL=""
End Sub
Private Sub Class_Terminate()
End Sub
'************************************
'propriedade
'************************************
'Define as propriedades do nome da tabela
Propriedade pública Let TableName(valor)
nomedatabela=valor
Fim da propriedade
'Definir condições
Propriedade Pública Deixe Onde (valor)
sOnde=valor
Fim da propriedade
'Definir método de classificação
Propriedade Pública Deixe Ordem (valor)
sOrdem=valor
Fim da propriedade
'Define o tipo de instrução de consultaPropriedade pública
Let SQLType(valor)
iSQLType=valor
selecione o caso iSQLType
caso 0
sSQL="inserir em #0 (#1) valores (#2)"
caso 1
sSQL="atualização #0 conjunto #1=#2"
caso 2
sSQL="excluir de #0"
caso 3
sSQL="selecione #1 de #0"
final selecionar
Propriedade final
'************************************
'função
'************************************
'Adicionar campo (nome do campo, valor do campo)
Public Sub AddField(sFieldName,sValue)
selecione o caso iSQLType
caso 0
sSQL=replace(sSQL,"#1",sFieldName & ",#1")
sSQL=replace(sSQL,"#2","'" & sValue & "',#2")
caso 1
sSQL=replace(sSQL,"#1",sFieldName)
sSQL=replace(sSQL,"#2","'" & sValue & "',#1=#2")
caso 3
sSQL=replace(sSQL,"#1",sFieldName & ",#1")
Finalizar seleção
End Sub
'Instrução SQL de retorno
Função pública ReturnSQL()
sSQL=replace(sSQL,"#0",sTableName)
selecione o caso iSQLType
caso 0
sSQL=substituir(sSQL,"",#1","")
sSQL=substituir(sSQL,"",#2","")
caso 1
sSQL=substituir(sSQL,"",#1=#2","")
caso 3
sSQL=substituir(sSQL,"",#1","")
final Selecionar
se sWhere<>"" e iSQLType<>0 então
sSQL=sSQL & "onde" & sOnde
terminar se
se sOrder<>"" e iSQLType<>0 então
sSQL=sSQL & "ordenar por" & sOrder
terminar se
RetornoSQL=sSQL
Função final
'Instrução claraPublic
Sub Clear()
nomeDaTabela=""
iSQLType=0
sOnde=""
sOrdem=""
SQL=""
Finalizar sub
Fim da aula
%>
<%
'A seguir está um exemplo de chamada. Para problemas de tipo de dados, continue modificando a definição na classe acima. Se você tiver alguma dúvida, pode me perguntar.
set a =new SQLString 'Criar objeto de classe
a.TableName=" mensagem " 'Defina o nome da tabela como mensagem
'a.where="issend =9"
'a.order="issend desc"
a.SQLType=0 'Defina o tipo de consulta para adicionar registros
a.AddField "incept", "2"
a.AddField "remetente", "3"
a.AddField "título", "4"
a.AddField "remetente", "5"
a.AddField "conteúdo", "6"
a.AddField "hora de envio", "7"
a.AddField "sinalizador", 8
a.AddField " issend ", 9
Response.Write a.ReturnSQl
definir a = nada
%>