Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maykon Silva

Classes para manipulação de DB

Recommended Posts

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
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho legal incentivar a galera a trabalhar com "Classes" no ASP...

 

mas acho q pra ficar mais "OOP" suas propriedades poderiam ficar assim...

 

' ==============================================

private MEMBER_PROPRIEDADE

 

public property let PROPRIEDADE (v)

MEMBER_PROPRIEDADE = v

end property

 

public property get PROPRIEDADE

PROPRIEDADE = MEMBER_PROPRIEDADE

end property

'===============================================

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.