Ir para conteúdo

POWERED BY:

Arquivado

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

Chakan

Update de Imagem

Recommended Posts

Oi gente.

 

Eu to usando aquele script do lab. de scripts para fazer inserção de imagem. Porém, não to conseguindo fazer com que a função do Update funcione.

 

Ele ta pegando certinho os valores novos digitados na pagina de alteração...porém..na hora do Update da esse erro:

 

Syntax error (missing operator) in query expression

 

Ja dei um response.write e todos os campos tem dados. Segue o código do Update:

 

sql = "Update Agencia SET Hora= '"&Hora&"' Fonte= '"&Fonte&"' Titulo= '"&Titulo&"' Imagem= '"&cfoto&"' WHERE Registro= '"&Registro&"'"Conexao.Execute(sql)

O que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tá faltando as vírgulas para separar os campos não?

 

sql = "Update Agencia SET Hora= '"&Hora&", ' sql = sql & "Fonte= '"&Fonte&", ' sql = sql & "Titulo= '"&Titulo&", ' sql = sql & "Imagem= '"&cfoto&" ' sql = sql & "WHERE Registro= '"&Registro&"'"Conexao.Execute(sql)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hmm as virgulas..eh mesmo.

 

Mas assim, no teu codigo se pois aspas antes do Fonte, Titulo, Imagem e WHERE..ae uns campos ficaram como cinzas sabe?

 

Eu tirei as aspas..e dae deu esse erro agora:

 

Unterminated string constant sql = "Update Agencia SET Hora= '"&Hora&", '--------------------------------------------^

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa desculpa erro meu, veja:

 

sql = "Update Agencia SET Hora= '"&Hora&"', " sql = sql & "Fonte= '"&Fonte&"', "sql = sql & "Titulo= '"&Titulo&"', "sql = sql & "Imagem= '"&cfoto&"' "sql = sql & "WHERE Registro= '"&Registro&"'"Conexao.Execute(sql)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora foi.Mas deu esse novo erro:Data type mismatch in criteria expression. No BD, Hora ta como Texto, Fonte como Texto, Titulo como Texto, Imagem como Texto tb(testei como Objeto OLE e deu o erro tb).O q pode ser dessa vez?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesmo assim o problema continua. Acho que tem a ver com o campo imagem..só nao sei pq.EDIT: Mesmo tirando o campo imagem da o erro. Alias testei com todos os campos e da o erro. Que estranho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então vamos debugar o código, ensira isso no começo do ASP:

 

on error resume next

E dê um response.write do sql, assim:

 

Response.Write sql

o que apareceu na tela???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aparece:

 

Update Agencia SET Hora= '16:12', Fonte= 'Divulgação', Titulo= 'Cadeira', Imagem= '/imagens/123124.jpg' WHERE Registro=

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pronto ai que tá o problema cara, a variável "Registro" tá sem valor!

É bem provavel que ela seja um Número e não uma String.

 

Verifique de onde vem o valor dela e depois tente tirar as aspas(além de ver como está definido o campo no BD), assim:

 

sql = sql & "WHERE Registro= "&Registro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso. Ela eh um numero. No BD ela ta como Numeração Automática.

 

Eu tentei requisitar o valor do Registro assim:

 

Registro = Request.Form("Registro")

Porém, nessa página aonde tem as funções que fazem o upload do arquivo funcionar, rola um conflito:

 

' Chamando Funções, que fazem o Upload funcionarbyteCount = Request.TotalBytes--->>RequestBin = Request.BinaryRead(byteCount)<<---Set UploadRequest = CreateObject("Scripting.Dictionary")BuildUploadRequest RequestBin' Recuperando os Dados Digitados ----------------------Hora = UploadRequest.Item("Hora").Item("Value")Fonte = UploadRequest.Item("Fonte").Item("Value")Titulo = UploadRequest.Item("Titulo").Item("Value")

Num pode usar BinaryRead junto com Request.Form. Existe um meio de chamar o Registro sem o Request.Form? Nesse caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu achei num site que se usa UploadFormRequest ao inves de Request.Form nesse caso..mas soh pode por depois do arquivo ter sido enviado.Daí acaba não ajudando mto ja que preciso do Registro pra cadastrar o Update.Alguem tem uma luz ae? ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que sarro..se eu defino o campo do Registro como Texto na pagina do update:

 

<input name="Registro" type="text" value="<%= Server.HTMLEncode(Registro&"") %>" size="10" maxlength="10">

E na pagina das funções pro upload eu declaro ele:

 

Registro = UploadRequest.Item("Registro").Item("Value")

E tb deixo a linha dele do Update do modo que o Tiago me mostrou:

 

sql = sql & "WHERE Registro= "&Registro

Dae funciona perfeitamente. Problema eh que queria deixar esse campo do Registro na pagina do Update como Hidden e ainda assim puxar ele na pagina das funções. Mas se eu deixo ele como Hidden nao funciona ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa O.oAgora to meio encucado. Eu deixei exatamente o mesmo campo la do Registro em Texto neh..mudando Type pra hidden..e agora funcionou!!!Caramba agora fiquei confuso :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aeeee consegui fazer funcionar o Update de imagem.

 

Abaixo pra qm quiser.

 

Primeiro, criei um campo hidden com o valor da imagem referente ao registro que vai ser alterado. Isso vai na pagina onde tem o formulario pra você fazer as mudanças:

 

<input name="Imagem_ori" type="Hidden" value="<%= Server.HTMLEncode(Imagem_ori&"") %>" size="10" maxlength="10">

Na pagina la upload_form2.asp, você mete essa linha na parte de Recuperando os Dados Digitados:

 

Imagem_ori = UploadRequest.Item("Imagem_ori").Item("Value")

Agora, poe isso na parte que fala "cadastra os dados no banco de dados"

 

' cadastra os dados no banco de dadosif foto = "" thensql = "Update Agencia SET Hora= '"&Hora&"', "sql = sql & "Fonte= '"&Fonte&"', "sql = sql & "Titulo= '"&Titulo&"', "sql = sql & "Imagem= '"&Imagem_ori&"' "sql = sql & "WHERE Registro= "&RegistroConexao.Execute(sql)elsesql = "Update Agencia SET Hora= '"&Hora&"', "sql = sql & "Fonte= '"&Fonte&"', "sql = sql & "Titulo= '"&Titulo&"', "sql = sql & "Imagem= '"&cfoto&"' "sql = sql & "WHERE Registro= "&RegistroConexao.Execute(sql)end if

Se o foto num tiver nada..ele mantem a imagem que ja tava no registro..se tiver algo..dae ele substituí.

 

Rapah depois de 5 dias mechendo nisso ae finalmente consegui fazer. Valeu ae Tiago pela força ^^

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.