Jump to content
Fórum Script Brasil
  • 0

Atualizar Registro


Steven Tyler

Question

galera, seguinte, tenho uma pagina "editar.asp" e nessa pagina tem o seguinte formulario

<form onSubmit="return valida()" name="form1"  action="edit.asp" method="post">

<input type="hidden" name="codigo" value="<% = rs("codigo") %>">
<input type="hidden" name="nome_foto_bd" value="<% = rs("imagem") %>">


<tr>
<td colspan="2"><font class="texto">Nome:</td>
<td colspan="2"><input type="text" name="nome" size="50" value="<% = rs("nome") %>"></td>
</tr>

<tr>
<td colspan="2"><font class="texto">Setor:</td>
<td colspan="2"><input type="text" name="setor" size="50" value="<% = rs("setor") %>"></td>
</tr>

<tr>
<td colspan="2"><font class="texto">Cargo:</td>
<td colspan="2"><input type="text" name="cargo" size="50" value="<% = rs("cargo") %>"></td>
</tr>

<tr>
<td colspan="2"><font class="texto">Especialidade:</td>
<td colspan="2"><input type="text" name="especialidade" size="50" value="<% = rs("especialidade") %>"></td>
</tr>

<tr>
<td colspan="3">&nbsp;</td>
</tr>

<tr>

<td colspan="3" align="center"><img src="fotos_func/<% =rs("imagem") %>"></td>

</tr>

<tr>
<td colspan="2"><font class="texto">Foto:</td>
<td colspan="2"><input type="file" name="foto" size="40"></td>
</tr>

<tr>
<td colspan="2" width="20%">&nbsp;</td>
<td colspan="2"><INPUT TYPE="submit" name="botao" value="Atualizar Registro">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE="button" value="Voltar" onclick="history.back();"></td>
</tr>
</form>
esse formulario puxa do bd os dados de determinado registro... reparem q tem 2 "hidden" ai, são tipo paramentros para eu usar na pagina "edit.asp" q ta no action do form... então, nesse form tem um campo file q é a foto, nesse formulario, eu já to exibindo a foto do cliente já de cara p usuario, e se ele quiser alterar a foto, basta ele escolher outra atraves do campo "file".... a ideia é essa.... no edit.asp tem a seguinte condicao.... se o campo "file" for vazio faz uma atualizacao simples, q ate agora deu certo p mim, agora se tive preenchido o campo(tipo o ususrio escolheu uma outra foto no caso) dai faz a atualizacao junto de um upload.... dai q n da certo.... eis o código...
<!--#include file="conf.asp"-->
<!--#include file="upload_funcoes.asp"-->
<%
Response.expires = -10
Server.ScriptTimeout = 6000000
%>

<%
dim vnome,vcargo,vsetor,vespecialidade,vfoto_apagar,par_cod,conn,FSO,tipo_foto,caminho_foto,nome_foto,foto,MyFile,ScriptObject,sql_query,rs
%>

<% if request.form("foto") = "" then

	Set conn = Server.CreateObject("ADODB.Connection")

	conn.Open "DBQ=C:\Inetpub\wwwroot\site_asp\bdados.mdb;Driver={Microsoft Access Driver (*.mdb)}"

	par_cod = request.form("codigo")
	nome_foto_bd = request.form("nome_foto_bd")

	sql_query = "Update tbl_func set nome='" & request.form("nome") & "', setor='" & request.form("setor") & "', cargo = '" & request.form("cargo") & "', especialidade='" & request.form("especialidade") & "', imagem='" & nome_foto_bd & "' where codigo =" & par_cod 

	set rs = conn.Execute(sql_query) 


	conn.close
%>

	<script>
  alert("Dados alterados com sucesso!");
  location.href="funcionarios.asp";
	</script>

<%
else
%>

<% 

	'excluindo o arquivo
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")
	FSO.DeleteFile "C:\Inetpub\wwwroot\site_asp\fotos_func\" & nome_foto_bd        


	' Chamando Funções, que fazem o Upload funcionar
	byteCount = Request.TotalBytes
	RequestBin = Request.BinaryRead(byteCount)
	Set UploadRequest = CreateObject("Scripting.Dictionary")
	BuildUploadRequest RequestBin



	vnome = UploadRequest.Item("nome").Item("Value")
	vsetor = UploadRequest.Item("setor").Item("Value")
	vcargo = UploadRequest.Item("cargo").Item("Value")
	vespecialidade = UploadRequest.Item("especialidade").Item("Value")

	par_cod = UploadRequest.Item("codigo").Item("Value")




	' Tipo de arquivo que esta sendo enviado
	tipo_foto = UploadRequest.Item("foto").Item("ContentType")

	' Caminho completo dos arquivos enviados
	caminho_foto = UploadRequest.Item("foto").Item("FileName")

	' Nome dos arquivos enviados
	nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))

	' Conteudo binario dos arquivos enviados
	foto = UploadRequest.Item("foto").Item("Value")

	pasta = Server.MapPath("fotos_func")


	' Fazendo o Upload do arquivo selecionado
	if foto <> "" then
  Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
  Set MyFile = ScriptObject.CreateTextFile(pasta & "\" & nome_foto)
  	
  	For i = 1 to LenB(foto)
    MyFile.Write chr(AscB(MidB(foto,i,1)))
  	Next
  
  MyFile.Close
end if




	'conexao
	Set conn = Server.CreateObject("ADODB.Connection")
	conn.Open "DBQ=C:\Inetpub\wwwroot\site_asp\bdados.mdb;Driver={Microsoft Access Driver (*.mdb)}"


	'atualizando o registro

	sql_query = "Update tbl_func set nome='" & vnome & "', setor='" & vsetor & "', cargo = '" &  vcargo & "', especialidade='" & vespecialidade & "', imagem='" & nome_foto & "' where codigo =" & par_cod 

	set rs = conn.Execute(sql_query) 

	conn.close

%>



	<script>
  alert("Dados alterados com sucesso!");
  location.href="funcionarios.asp";
	</script>


<%
end if
%>

então pessoal, n sei o que ta havendo errado, porque quando atualizo o registro sem fazer upload de outra foto, faz certo, mais a ideia é q se o usuario quiser mudar a foto, ele apague a foto na pasta e coloque esta q ele escolheu, o erro n evidencia nada, só aparece escrito

HTTP 500 - erro interno do servidor

Internet Explorer

alguém pode me ajudar? !!!

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

então, consegui faze funciona, mudei tudo a logica do codigo...

<!--#include file="conf.asp"-->
<!--#include file="upload_funcoes.asp"-->
<%
Response.expires = -10
Server.ScriptTimeout = 6000000
%>

<%
dim vnome,vcargo,vsetor,vespecialidade,vfoto_apagar,par_cod,conn,FSO,tipo_foto,caminho_foto,nome_foto,foto,MyFile,ScriptObject,sql_query,rs,nome_foto_bd

' Chamando Funções, que fazem o Upload funcionar
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin

vnome = UploadRequest.Item("nome").Item("Value")
vsetor = UploadRequest.Item("setor").Item("Value")
vcargo = UploadRequest.Item("cargo").Item("Value")
vespecialidade = UploadRequest.Item("especialidade").Item("Value")
nome_foto_bd = UploadRequest.Item("nome_foto_bd").Item("Value")
par_cod = UploadRequest.Item("codigo").Item("Value")

if UploadRequest.Item("foto").Item("Value") <> "" then
	'excluindo o arquivo
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")
	FSO.DeleteFile "C:\Inetpub\wwwroot\site_asp\fotos_func\" & nome_foto_bd        

	' Tipo de arquivo que esta sendo enviado
	tipo_foto = UploadRequest.Item("foto").Item("ContentType")

	' Caminho completo dos arquivos enviados
	caminho_foto = UploadRequest.Item("foto").Item("FileName")

	' Nome dos arquivos enviados
	nome_foto = Right(caminho_foto,Len(caminho_foto)-InstrRev(caminho_foto,"\"))

	' Conteudo binario dos arquivos enviados
	foto = UploadRequest.Item("foto").Item("Value")

	pasta = Server.MapPath("fotos_func")


	' Fazendo o Upload do arquivo selecionado
	if foto <> "" then
  Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
  Set MyFile = ScriptObject.CreateTextFile(pasta & "\" & nome_foto)
  	
  	For i = 1 to LenB(foto)
    MyFile.Write chr(AscB(MidB(foto,i,1)))
  	Next
  
  MyFile.Close
	'conexao
	Set conn = Server.CreateObject("ADODB.Connection")
	conn.Open "DBQ=C:\Inetpub\wwwroot\site_asp\bdados.mdb;Driver={Microsoft Access Driver (*.mdb)}"


	'atualizando o registro

	sql_query = "Update tbl_func set imagem='" & nome_foto & "' where codigo =" & par_cod 

	set rs = conn.Execute(sql_query) 

	conn.close
	end if
end if

	'conexao
	Set conn = Server.CreateObject("ADODB.Connection")
	conn.Open "DBQ=C:\Inetpub\wwwroot\site_asp\bdados.mdb;Driver={Microsoft Access Driver (*.mdb)}"


	'atualizando o registro

	sql_query = "Update tbl_func set nome='" & vnome & "', setor='" & vsetor & "', cargo = '" &  vcargo & "', especialidade='" & vespecialidade & "' where codigo =" & par_cod 

set rs = conn.Execute(sql_query) 
conn.close
%>
                <script>
  alert("Dados alterados com sucesso!");
  location.href="funcionarios.asp";
	</script>

mais valeu pela dica, n sabia essa ai do ie q você disse, valeu !!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.5k
×
×
  • Create New...