Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera desenvolvi essas Classes para facilitar meu trabalho na hora de fazer Select, Insert e Update no banco de dados.
Está me ajudando bastante e espero que ajude vocês também. Se alguém tiver uma solução melhor e mais prática, por favor adicione :D
Arquivo classes.asp
' Classe para Seleção de dados no bancoCLASS SELECIONAR PUBLIC TABELA ' NOME DA TABELA PUBLIC CAMPOS ' CAMPOS QUE SERÃO PESQUISADOS PUBLIC CRITERIO ' CRITÉRIOS DA PESQUISA. EX: CAMPO = 1 PUBLIC CONDICAO ' CONDIÇÃO ENTRE UM CRITÉRIO E OUTRO. EX: AND PUBLIC ORDENAR ' CAMPOS QUE SERÃO UTILIZADOS PARA ORDENAR A PESQUISA PUBLIC ORDEM ' ORDEM DA PESQUISA (ASC OU DESC) PUBLIC AGRUPAR ' CAMPOS PARA AGRUPAR A PESQUISA PUBLIC RS_MOSTRA ' MOSTRA OS CAMPOS RETORNADOS PELA STRING SQL PRIVATE SQL ' FORMARÁ A STRING SQL SUB MONTA_SQL CAMPOSX = SPLIT(CAMPOS,"|") CRITERIOX = SPLIT(CRITERIO,"|") CONDICAOX = SPLIT(CONDICAO,"|") ORDENARX = SPLIT(ORDENAR,"|") AGRUPARX = SPLIT(AGRUPAR,"|") SQL = "SELECT " FOR I = LBOUND(CAMPOSX) TO UBOUND(CAMPOSX) IF I <> UBOUND(CAMPOSX) THEN SQL = SQL & CAMPOSX(I) & ", " ELSE SQL = SQL & CAMPOSX(I) END IF NEXT SQL = SQL & " FROM " & TABELA ' IF para verificar se o comando SQL vai possuir alguma condição. Caso possua executa o código interno IF ISEMPTY(CRITERIO) = FALSE THEN SQL = SQL & " WHERE " FOR I = LBOUND(CRITERIOX) TO UBOUND(CRITERIOX) IF I <> UBOUND(CRITERIOX) THEN SQL = SQL & CRITERIOX(I) & " " & CONDICAOX(I) & " " ELSE SQL = SQL & CRITERIOX(I) END IF NEXT END IF ' IF para verificar se o comando SQL vai possuir Ordem pré-estabelecida. Caso possua executa o código interno IF ISEMPTY(ORDENAR) = FALSE THEN SQL = SQL & " ORDER BY " FOR I = LBOUND(ORDENARX) TO UBOUND(ORDENARX) IF I <> UBOUND(ORDENARX) THEN SQL = SQL & ORDENARX(I) & ", " ELSE SQL = SQL & ORDENARX(I) END IF NEXT SQL = SQL & " " & ORDEM END IF ' IF para verificar se o comando SQL vai ser agrupado. Caso sim executa o código interno IF ISEMPTY(AGRUPAR) = FALSE THEN SQL = SQL & " GROUP BY " FOR I = LBOUND(AGRUPARX) TO UBOUND(AGRUPARX) IF I <> UBOUND(AGRUPARX) THEN SQL = SQL & AGRUPARX(I) & ", " ELSE SQL = SQL & AGRUPARX(I) END IF NEXT END IF END SUB ' SUB que escreve a string SQL. Ela é bastante útil caso seja necessário, em algum teste do sistema, que seja mostrada a string que está sendo retornada antes de executar o comando. SUB ESCREVE_SQL RESPONSE.WRITE SQL RESPONSE.END() END SUB ' SUB que executa o comando SQL SUB GO ' Verifica a presença de erros na execução do comando SQL ON ERROR RESUME NEXT ' Executa o comando SQL SET RS_MOSTRA = SERVER.CREATEOBJECT("ADODB.RECORDSET") RS_MOSTRA.OPEN SQL, CONEXAO IF ERR.NUMBER <> 0 THEN RESPONSE.WRITE("<script>alert('OCORREU UM ERRO NA SELEÇÃO DOS DADOS!\n\nTENTE NOVAMENTE MAIS TARDE!');</script>") END IF END SUBEND CLASS' Classe para inserção de dados no bancoCLASS INSERIR ' Declarações PUBLIC CAMPOS PUBLIC VALORES PUBLIC TABELA PRIVATE SQL ' SUB que monta a string SQL SUB MONTA_SQL CAMPOSX = SPLIT(CAMPOS,"|") VALORESX = SPLIT(VALORES,"|") SQL = "INSERT INTO " & TABELA & " (" FOR I = LBOUND(CAMPOSX) TO UBOUND(CAMPOSX) IF I <> UBOUND(CAMPOSX) THEN SQL = SQL & CAMPOSX(I) & ", " ELSE SQL = SQL & CAMPOSX(I) END IF NEXT SQL = SQL & ") VALUES (" FOR I = LBOUND(VALORESX) TO UBOUND(VALORESX) IF I <> UBOUND(VALORESX) THEN SQL = SQL & VALORESX(I) & ", " ELSE SQL = SQL & VALORESX(I) END IF NEXT SQL = SQL & ")" END SUB ' SUB que escreve a string SQL. Ela é bastante útil caso seja necessário, em algum teste do sistema, que seja mostrada a string que está sendo retornada antes de executar o comando. SUB ESCREVE_SQL RESPONSE.WRITE SQL RESPONSE.END() END SUB ' SUB que executa o comando SQL SUB GO ' Verifica a presença de erros na execução do comando SQL ON ERROR RESUME NEXT ' Abre o processo de transição dos dados. CONEXAO.BEGINTRANS ' Executa o comando SQL CONEXAO.EXECUTE(SQL) ' Se ocorreu algum erro na execução do SQL IF ERR.NUMBER <> 0 THEN ' Volta o processo de transição dos dados. CONEXAO.ROLLBACKTRANS ' Mensagem RESPONSE.WRITE("<script>alert('OCORREU UM ERRO NA INSERÇÃO DOS DADOS!\n\nTENTE NOVAMENTE MAIS TARDE!');</script>") RESPONSE.WRITE("<a href='java script:history.back();'>CLIQUE AQUI PARA VOLTAR</a>") RESPONSE.END() ' Se não ocorreu nenhum erro na execução do SQL ELSE ' Transmite os dados de forma definitiva para o banco CONEXAO.COMMITTRANS ' Mensagem RESPONSE.WRITE("<script>alert('DADOS INSERIDOS COM SUCESSO!');</script>") END IF END SUBEND CLASS' Classe para atualização de dadosCLASS ATUALIZAR ' Declarações PUBLIC CAMPOS PUBLIC VALORES PUBLIC TABELA PUBLIC CRITERIO PUBLIC CONDICAO PRIVATE SQL ' SUB que monta o comando SQL SUB MONTA_SQL CAMPOSX = SPLIT(CAMPOS,"|") VALORESX = SPLIT(VALORES,"|") CRITERIOX = SPLIT(CRITERIO,"|") CONDICAOX = SPLIT(CONDICAO,"|") SQL = "UPDATE " & TABELA & " SET " FOR I = LBOUND(CAMPOSX) TO UBOUND(CAMPOSX) IF I <> UBOUND(CAMPOSX) THEN SQL = SQL & CAMPOSX(I) & " = " & VALORESX(I) & ", " ELSE SQL = SQL & CAMPOSX(I) & " = " & VALORESX(I) END IF NEXT ' IF para verificar se o comando SQL vai possuir alguma condição. Caso possua executa o código interno IF ISEMPTY(CRITERIO) = FALSE THEN SQL = SQL & " WHERE " FOR I = LBOUND(CRITERIOX) TO UBOUND(CRITERIOX) IF I <> UBOUND(CRITERIOX) THEN SQL = SQL & CRITERIOX(I) & " " & CONDICAOX(I) & " " ELSE SQL = SQL & CRITERIOX(I) END IF NEXT END IF END SUB ' SUB que escreve a string SQL. Ela é bastante útil caso seja necessário, em algum teste do sistema, que seja mostrada a string que está sendo retornada antes de executar o comando. SUB ESCREVE_SQL RESPONSE.WRITE SQL RESPONSE.END() END SUB ' SUB que executa o comando SQL SUB GO ' Verifica a presença de erros na execução do comando SQL ON ERROR RESUME NEXT ' Abre o processo de transição dos dados. CONEXAO.BEGINTRANS ' Executa o comando SQL CONEXAO.EXECUTE(SQL) ' Se ocorreu algum erro na execução do SQL IF ERR.NUMBER <> 0 THEN ' Volta o processo de transição dos dados. CONEXAO.ROLLBACKTRANS ' Mensagem RESPONSE.WRITE("<script>alert('OCORREU UM ERRO NA ATUALIZAÇÃO DOS DADOS!\n\nTENTE NOVAMENTE MAIS TARDE!');</script>") ' Se não ocorreu algum erro na execução do SQL ELSE ' Transmite os dados de forma definitiva para o banco CONEXAO.COMMITTRANS ' Mensagem RESPONSE.WRITE("<script>alert('DADOS ATUALIZADOS COM SUCESSO!');</script>") END IF END SUBEND CLASS
Arquivo chamaClasses.asp
<!--#INCLUDE FILE="classes.asp"--><%' Seleção de DadosSET SELECIONA = NEW SELECIONARSELECIONA.TABELA = "NOME_TABELA"SELECIONA.CAMPOS = "CAMPO_1|CAMPO_2|CAMPO_3" ' Para selecionar todos basta colocar *SELECIONA.CRITERIO = "CAMPO_1 = 3|CAMPO_3 = 'Carro'"SELECIONA.CONDICAO = "OR" ' Nesse caso vai ficar CAMPO_1 = 3 OR CAMPO_3 = 'Carro'SELECIONA.ORDENAR = "CAMPO_2"SELECIONA.ORDEM = "DESC"SELECIONA.MONTA_SQL' O Método a seguir é para que o sistema escreva a string SQL gerada na tela e pare a execução do programa.'SELECIONA.ESCREVE_SQLSELECIONA.GO ' Executa a string SQL%>
Carregando comentários...