Ir para conteúdo

POWERED BY:

Arquivado

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

Jefferson_227

Decisão (if, else) na página de upload

Recommended Posts

Iae galera, beleza?

 

Possuo uma página em ASP onde faço um upload de um arquivo txt que contém dados a serem importados para o banco de dados.

 

Antes de inserir os dados no banco, a conexão verifica se já tem dados na tabela. Se tiver, o usuário escolhe se a tabela vai receber os dados do txt ou não. Se não tiver, os dados são automaticamente inseridos no banco.

 

O problema é quando a tabela já tem informação e o usuário tem que decidir se a importação continua ou não. Já tentei fazer um pop-up de decisão em javascript, mas os dados são importados pra tabela independente de clicar em "Ok" ou "Cancelar".

 

Existe alguma outra forma de pegar uma resposta do usuário antes dos dados serem importados pro banco?

 

O upload é feito através do ASPSmartUpload.

 

Vlws.

Compartilhar este post


Link para o post
Compartilhar em outros sites

na hora do user decidir se a importação continua ou não, caso ele escolha que não irá importar, você deve executar uma outra string SQL, no caso, você poderia apenas dar um SELECT para exibir os dados, e se ele escolher imporatar dae você executa sua SQL que provavelmente é um INSERT

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está esse trecho de seu code? Poste para podermos verificar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A conexão que eu uso para inserir os dados é um RecordSet. Fiz um teste básico numa página separada simulando a importação usando uma tabela TESTE com duas colunas (Col1 e Col2). Ao rodar a página, o pop-up aparece perguntando se deseja sobrepor os dados, mas independente de clicar em "Ok" ou "Cancelar", os dados são inseridos na tabela.

 

PS. Eu consegui resolver o problema de outra forma um pouco mais trabalhosa, mas se funcionasse dessa maneira seria bem mais fácil pra codificar e pro usuário visualizar uma janela de pop-up.

 

<%
sql = "SELECT Col1, Col2 FROM TESTE"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, strConexao, 2, 3

If not rs.EOF then
%>
<script language="javascript">
	if(confirm('Deseja sobrepor os dados?')){
		<%
			rs("Col1") = "Informação 1"
			rs("Col2") = "Informação 2"
			rs.Update
		%>
	}else{
		alert('Importação abortada.');
		history.go(-1);
	}
</script>
<%
Else
	rs.AddNew
	rs("Col1") = "Informação 1"
	rs("Col2") = "Informação 2"
	rs.Update
End if	
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é possível fazer dessa forma, misturando ASP com JavaScript assim. O ASP é todo processado no servidor ANTES de enviar o HTML ao browser, então seu pop JavaScript só aparece DEPOIS dos dados serem inseridos (ou ter gerado um erro).

 

A "forma mais trabalhosa" está lhe atendendo de forma total? Acrescentou muitos "passos" a mais? Dependendo de como você já fez é possível usar AJAX para deixar as coisas um pouco menos "traumáticas" se for o caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer como citei acima, dependendo da ação redirecionar para determinada SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites
você pode fazer como citei acima, dependendo da ação redirecionar para determinada SQL
Por Query SQL ou usando RecordSet daria no mesmo Xan.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado, obrigado pelo esclarecimento, eu havia esquecido desse detalhe do javascript executar depois do ASP. A minha solução foi redirecionar o usuário para uma página que exibe uma mensagem perguntando se deseja sobrepor os dados ou não, fiz dois botões em HTML "Sim" e "Não" que no caso de clicar em "Sim" seria redirecionado para a página que executava o código em ASP armazenando os dados no banco; clicando em "Não", simplesmente retornava pra página anterior. Não conhecia o AJAX, mas agora tou vendo que preciso dar uma estudada no assunto heheheh.

 

Xanburzum, o problema de imeplementar essa sua solução é que eu teria 2 códigos de conexão com o banco na mesma página. Eu não teria como obter uma resposta do usuário para escolher o que fazer (o que tentei com o código javascript que postei) e daí todos os dois códigos, tanto o de SELECT como o de INSERT, seriam executados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por Query SQL ou usando RecordSet daria no mesmo Xan.

 

 

você executando direto na string Sql, você gaha uma aumento de performance no BD, do que usar o método Update ou AddNew do objeto recordset.

 

você não terá 2 códigos de conexão com o banco na mesma página.apenas uma conexão, porém 2 string SQL um SELECT e outra INSERT, conforme o user selecionar você apenas executa a SQL atraves do IF.

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.