Ir para conteúdo

POWERED BY:

Arquivado

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

rbaccaro

Upload no Asp e MySQL não grava, mas no Access grava

Recommended Posts

Venho transformando meu banco do Access para o MYSQL 3.51, só que quando faço a alteração de fotos

o MySQL não grava no banco, mas o Upload acontece e a foto vai para a pasta do servidor.

 

Testei no Access e tudo funciona perfeito, só no MySQL que dá esse erro

-------------------------------------

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

 

[Microsoft][ODBC Driver Manager] Invalid string or buffer length

 

AltFotos.asp, line 304

---------------------------------------

 

A linha 304 é onde esta o Update()

Já mudei o campo de da tabela pra text, longtext, e inclui na conexão do banco de dados a Opção=3; e mesmo assim

nada funcionou.

 

Alguém tem alguma idéia de que pode estar acontecendo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conforme foi pedido posta a linha do erro pois nao temos como ajudar so com o que foi postado

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!-- #include file="Includes/Topo.asp" -->

<!-- #include file="Travar.asp" -->

<!-- #include file="Includes/Upload.asp" -->

 

<%

Dim VarAct

Dim VarAnuncio

Dim Foto

Dim VarPlano

Dim VarFoto

Dim VarFoto1

Dim VarFoto2

Dim VarFoto3

Dim VarFoto4

Dim VarFoto5

Dim VarConfFoto1

Dim VarConfFoto2

Dim VarConfFoto3

Dim VarConfFoto4

Dim VarConfFoto5

 

 

VarAct = Request.QueryString("Act")

VarAct2 = Request.Querystring("Act2")

VarAnuncio = Request.QueryString("Anuncio")

 

 

Set DelAnuncio = Conn.Execute("Select * From Anuncios Where CodAnuncio="& VarAnuncio)

vDelFoto1 = DelAnuncio("Foto1")

vDelFoto2 = DelAnuncio("Foto2")

vDelFoto3 = DelAnuncio("Foto3")

vDelFoto4 = DelAnuncio("Foto4")

vDelFoto5 = DelAnuncio("Foto5")

 

 

Set objAnuncio = Conn.Execute("SELECT * FROM Anuncios WHERE CodAnuncio = "& VarAnuncio &" AND CodAnunciante = "& Session("Usuario") &"")

Set objPlanos = Conn.Execute("SELECT * FROM Planos WHERE Cod <> "&objAnuncio("CodPlano")&" ORDER BY Cod ASC")

Set PlanoSel = Conn.Execute("SELECT * FROM Planos WHERE Cod="&objAnuncio("CodPlano"))

 

'----------------------------------------------------------------------------------------------------------------

 

%>

 

<script LANGUAGE="Javascript">

<!--

//

 

function MM_openBrWindow(theURL,winName,features) { //v2.0

window.open(theURL,winName,features);

}

//-->

</SCRIPT>

 

 

<tr>

<td valign="top">

<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="150" align="center" valign="top" bgcolor="#F9F9F9"><!-- #include file="Includes/Esq.asp" --></td>

<td align="center" valign="top" bgcolor="#FFFFFF"><br><!--#include file="Includes/busca.asp"-->

<table width="468" border="0" cellspacing="0" cellpadding="0">

<tr>

<td height="10"><img src="Imagens/Blank.gif" width="1" height="1"></td>

</tr>

<tr>

<td align="center" class="TituloCinzaMedio">ALTERAÇÃO DE ANÚNCIO </td>

</tr>

<tr>

<td align="center"> </td>

</tr>

<tr>

<td align="center">

<% If VarAct <> "Alterar" AND VarAct <> "Confirma" Then %>

<table align="center">

<form action="AltFotos.asp?Act=Alterar&Act2=<%=VarAct%>&Anuncio=<%=objAnuncio("CodAnuncio")%>" method="Post" name="Alterar" enctype="multipart/form-data">

 

 

 

 

<%=LinhaHorizontal%>

<tr>

<td height="20" colspan="2" align="center" class="TituloCinzaEscuro" bgcolor="#DDDDDD">Fotos</td>

</tr>

<%

With Response

.Write LinhaHorizontal

If VarAct = "AltFoto1" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 1: </td><td><input name=Foto1 type=file class='Form28019'></td></tr>"

Else

.Write "<tr><td class='TituloCinzaEscuro'>Foto 1: </td><td class='TituloCinzaEscuro'><img src='"&LocalFoto & vDelFoto1&"' width='150'> ( <a href='AltFotos.asp?Act=AltFoto1&Anuncio="&objAnuncio("CodAnuncio")&"' class='TituloCinzaEscuro'>alterar imagem</a> )</td></tr>"

End If

.Write LinhaHorizontal

If VarAct = "AltFoto2" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 2: </td><td><input name=Foto2 type=file class='Form28019'></td></tr>" Else

.Write "<tr><td class='TituloCinzaEscuro'>Foto 2: </span></td><td class='TituloCinzaEscuro'><img src='"&LocalFoto & vDelFoto2&"' width='150'> ( <a href='AltFotos.asp?Act=AltFoto2&Anuncio="&objAnuncio("CodAnuncio")&"' class='TituloCinzaEscuro'>alterar imagem</a> )</td></tr>"

End If

.Write LinhaHorizontal

If VarAct = "AltFoto3" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 3: </td><td><input name=Foto3 type=file class='Form28019'></td></tr>" Else

.Write "<tr><td class='TituloCinzaEscuro'>Foto 3: </span></td><td class='TituloCinzaEscuro'><img src='"&LocalFoto & vDelFoto3&"' width='150'> ( <a href='AltFotos.asp?Act=AltFoto3&Anuncio="&objAnuncio("CodAnuncio")&"' class='TituloCinzaEscuro'>alterar imagem</a> )</td></tr>"

End If

.Write LinhaHorizontal

If VarAct = "AltFoto4" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 4: </td><td><input name=Foto4 type=file class='Form28019'></td></tr>" Else

.Write "<tr><td class='TituloCinzaEscuro'>Foto 4: </span></td><td class='TituloCinzaEscuro'><img src='"&LocalFoto & vDelFoto4&"' width='150'> ( <a href='AltFotos.asp?Act=AltFoto4&Anuncio="&objAnuncio("CodAnuncio")&"' class='TituloCinzaEscuro'>alterar imagem</a> )</td></tr>"

End If

.Write LinhaHorizontal

If VarAct = "AltFoto5" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 5: </td><td><input name=Foto5 type=file class='Form28019'></td></tr>" Else

.Write "<tr><td class='TituloCinzaEscuro'>Foto 5: </td><td class='TituloCinzaEscuro'><img src='"&LocalFoto & vDelFoto5&"' width='150'> ( <a href='AltFotos.asp?Act=AltFoto5&Anuncio="&objAnuncio("CodAnuncio")&"' class='TituloCinzaEscuro'>alterar imagem</a> )</td></tr>"

End If

End With

%>

<%=LinhaHorizontal%>

<tr>

<td height="20" colspan="2" align="center" class="TituloCinzaEscuro"> </td>

</tr>

 

<%

With Response

.Write "<tr><td colspan=2 align='center'><input type=submit value=Atualizar class='BotaoSubmit' /></td></tr>" End With

%>

<tr>

<td height="30" colspan="2" align="center" valign="bottom"><%=Voltar%></td>

</tr>

</form>

</table>

<%

 

ElseIf VarAct = "Alterar" Then

 

'-------------------------------------------------------------

Dim Uploader, File

Set Uploader = New FileUploader

Uploader.Upload()

 

If Uploader.Files.Count > 0 Then

For Each File In Uploader.Files.Items

File.SaveToDisk CaminhoFoto

VarFoto = VarFoto &"|"& File.FileName

Next

VarFoto = Right(VarFoto, Len(VarFoto)-1)

VarFoto = Split(VarFoto, "|")

End If

 

If Session("FotoTemp") <> "" Then

Set rsFSO = Server.CreateObject("Scripting.FileSystemObject") ' cria o objeto FSO

If rsFSO.FileExists(CaminhoFoto & Session("FotoTemp")) = 1 AND Session("FotoTemp") <> "SemFoto.gif" Then ' Se o arquivo especificado existir e for diferente da foto (s/ foto) então:

rsFSO.DeleteFile (CaminhoFoto & Session("FotoTemp")) ' Apaga o arquivo especificado com o caminho e nome

End If

Session("FotoTemp") = VarFoto(0) ' Cria a session da foto temporária

Else

If Uploader.Files.Count > 0 Then

Session("FotoTemp") = VarFoto(0) ' Cria a session da foto temporária

End If

End If

 

If VarAct2 = "AltFoto1" AND (Uploader.Files.Count = 0 OR vDelFoto1 = "SemFoto.gif") Then : vDelFoto1 = "SemFoto.gif" : Else : vDelFoto1 = vDelFoto1 : End If

If VarAct2 = "AltFoto2" AND (Uploader.Files.Count = 0 OR vDelFoto2 = "SemFoto.gif") Then : vDelFoto2 = "SemFoto.gif" : Else : vDelFoto2 = vDelFoto2 : End If

If VarAct2 = "AltFoto3" AND (Uploader.Files.Count = 0 OR vDelFoto3 = "SemFoto.gif") Then : vDelFoto3 = "SemFoto.gif" : Else : vDelFoto3 = vDelFoto3 : End If

If VarAct2 = "AltFoto4" AND (Uploader.Files.Count = 0 OR vDelFoto4 = "SemFoto.gif") Then : vDelFoto4 = "SemFoto.gif" : Else : vDelFoto4 = vDelFoto4 : End If

If VarAct2 = "AltFoto5" AND (Uploader.Files.Count = 0 OR vDelFoto5 = "SemFoto.gif") Then : vDelFoto5 = "SemFoto.gif" : Else : vDelFoto5 = vDelFoto5 : End If

 

 

With Response

.Write "<table align='center' width='90%'>"

.Write "<form action='AltFotos.asp?Act=Confirma&Act2="&VarAct2&"&Anuncio="&VarAnuncio&"' method='post' name='Inserir'>"

 

 

If Uploader.Files.Count <= 0 Then

VarFoto1 = vDelFoto1

VarFoto2 = vDelFoto2

VarFoto3 = vDelFoto3

VarFoto4 = vDelFoto4

VarFoto5 = vDelFoto5

Else

If VarAct2 = "AltFoto1" Then

VarFoto1 = VarFoto(0)

VarFoto2 = vDelFoto2

VarFoto3 = vDelFoto3

VarFoto4 = vDelFoto4

VarFoto5 = vDelFoto5

ElseIf VarAct2 = "AltFoto2" Then

VarFoto1 = vDelFoto1

VarFoto2 = VarFoto(0)

VarFoto3 = vDelFoto3

VarFoto4 = vDelFoto4

VarFoto5 = vDelFoto5

ElseIf VarAct2 = "AltFoto3" Then

VarFoto1 = vDelFoto1

VarFoto2 = vDelFoto2

VarFoto3 = VarFoto(0)

VarFoto4 = vDelFoto4

VarFoto5 = vDelFoto5

ElseIf VarAct2 = "AltFoto4" Then

VarFoto1 = vDelFoto1

VarFoto2 = vDelFoto2

VarFoto3 = vDelFoto3

VarFoto4 = VarFoto(0)

VarFoto5 = vDelFoto5

ElseIf VarAct2 = "AltFoto5" Then

VarFoto1 = vDelFoto1

VarFoto2 = vDelFoto2

VarFoto3 = vDelFoto3

VarFoto4 = vDelFoto4

VarFoto5 = VarFoto(0)

End If

End If

 

 

 

.Write "<input type=hidden value='"&VarFoto1&"' name='Foto1'>"

.Write "<input type=hidden value='"&VarFoto2&"' name='Foto2'>"

.Write "<input type=hidden value='"&VarFoto3&"' name='Foto3'>"

.Write "<input type=hidden value='"&VarFoto4&"' name='Foto4'>"

.Write "<input type=hidden value='"&VarFoto5&"' name='Foto5'>"

.Write "<tr><td colspan='2' class='TituloCinzaEscuro' align='center'>Confira seus dados abaixo: </td></tr>"

.Write LinhaHorizontal

 

.Write LinhaHorizontal

If VarFoto1 = "SemFoto.gif" OR Varfoto1 = "" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 1: </td><td class='TituloAzulEscuro'>Nenhuma</td></tr>"

Else

.Write "<tr><td class='TituloCinzaEscuro' colspan='2'>Foto 1: </td></tr>"

.Write "<tr><td colspan='2' align='center'><img src='"&LocalFoto&VarFoto1&"' width='250'></td></tr>"

End If

.Write LinhaHorizontal

If VarFoto2 = "SemFoto.gif" OR Varfoto2 = "" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 2: </td><td class='TituloAzulEscuro'>Nenhuma</td></tr>"

Else

.Write "<tr><td class='TituloCinzaEscuro' colspan='2'>Foto 2: </td></tr>"

.Write "<tr><td colspan='2' align='center'><img src='"&LocalFoto&VarFoto2&"' width='250'></td></tr>"

End If

.Write LinhaHorizontal

If VarFoto3 = "SemFoto.gif" OR Varfoto3 = "" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 3: </td><td class='TituloAzulEscuro'>Nenhuma</td></tr>"

Else

.Write "<tr><td class='TituloCinzaEscuro' colspan='2'>Foto 3: </td></tr>"

.Write "<tr><td colspan='2' align='center'><img src='"&LocalFoto&VarFoto3&"' width='250'></td></tr>"

End If

.Write LinhaHorizontal

If VarFoto4 = "SemFoto.gif" OR Varfoto4 = "" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 4: </td><td class='TituloAzulEscuro'>Nenhuma</td></tr>"

Else

.Write "<tr><td class='TituloCinzaEscuro' colspan='2'>Foto 4: </td></tr>"

.Write "<tr><td colspan='2' align='center'><img src='"&LocalFoto&VarFoto4&"' width='250'></td></tr>"

End If

.Write LinhaHorizontal

If VarFoto5 = "SemFoto.gif" OR Varfoto5 = "" Then

.Write "<tr><td class='TituloCinzaEscuro'>Foto 5: </td><td class='TituloAzulEscuro'>Nenhuma</td></tr>"

Else

.Write "<tr><td class='TituloCinzaEscuro' colspan='2'>Foto 5: </td></tr>"

.Write "<tr><td colspan='2' align='center'><img src='"&LocalFoto&VarFoto5&"' width='250'></td></tr>"

End If

.Write LinhaHorizontal

.Write FCampos(46) 'Confirmar / Corrigir

.Write "</form></table>"

End With

End If

-------------------------------------------------------------------------------------

--------- > Até aqui o codigo mostra e envia as fotos para a pasta no site

--------------------------------------------------------------------------------------

 

If VarAct = "Confirma" Then

 

 

VarConfFoto1 = Request.Form("Foto1")

VarConfFoto2 = Request.Form("Foto2")

VarConfFoto3 = Request.Form("Foto3")

VarConfFoto4 = Request.Form("Foto4")

VarConfFoto5 = Request.Form("Foto5")

 

 

Dim AltBd

Set AltBd = Server.CreateObject("ADODB.Recordset")

AltBd.CursorLocation = adUseServer

AltBd.CursorType = adOpenForwardOnly

AltBd.LockType = adLockOptimistic

AltBd.Open "SELECT * FROM Anuncios WHERE CodAnuncio="&VarAnuncio, Conn, , , adCmdText

 

AltBd("Foto1") = VarConfFoto1

AltBd("Foto2") = VarConfFoto2

AltBd("Foto3") = VarConfFoto3

AltBd("Foto4") = VarConfFoto4

AltBd("Foto5") = VarConfFoto5

 

 

ERRO Linha 304---------------------> AltBd.Update

AltBd.Close

Set AltBd = Nothing

 

 

 

'-------------------' Apaga as imagens referentes ao dado excluído via FSO ------------------------------------------------------------

 

If VarAct2 = "AltFoto1" Then

Set rsFSO = Server.CreateObject("Scripting.FileSystemObject") ' cria o objeto FSO

If rsFSO.FileExists(CaminhoFoto & vDelFoto1) = True AND vDelFoto1 <> "SemFoto.gif" Then ' Se o arquivo especificado existir e for diferente da foto (s/ foto) então:

rsFSO.DeleteFile (CaminhoFoto & vDelFoto1) ' Apaga o arquivo especificado com o caminho e nome

End If

End If

 

If VarAct2 = "AltFoto2" Then

Set rsFSO = Server.CreateObject("Scripting.FileSystemObject")

If rsFSO.FileExists(CaminhoFoto & vDelFoto2) = True AND vDelFoto2 <> "SemFoto.gif" Then

rsFSO.DeleteFile (CaminhoFoto & vDelFoto2)

End If

End If

 

If VarAct2 = "AltFoto3" Then

Set rsFSO = Server.CreateObject("Scripting.FileSystemObject")

If rsFSO.FileExists(CaminhoFoto & vDelFoto3) = True AND vDelFoto3 <> "SemFoto.gif" Then

rsFSO.DeleteFile (CaminhoFoto & vDelFoto3)

End If

End If

 

If VarAct2 = "AltFoto4" Then

Set rsFSO = Server.CreateObject("Scripting.FileSystemObject")

If rsFSO.FileExists(CaminhoFoto & vDelFoto4) = True AND vDelFoto4 <> "SemFoto.gif" Then

rsFSO.DeleteFile (CaminhoFoto & vDelFoto4)

End If

End If

 

If VarAct2 = "AltFoto5" Then

Set rsFSO = Server.CreateObject("Scripting.FileSystemObject")

If rsFSO.FileExists(CaminhoFoto & vDelFoto5) = True AND vDelFoto5 <> "SemFoto.gif" Then

rsFSO.DeleteFile (CaminhoFoto & vDelFoto5)

End If

End If

 

'-------------------------------------------------------------------------------------------------------------------------------------

 

Session("FotoTemp") = ""

 

 

Response.Write LinhaHorizontal

Response.Write "<tr><td align='center' class='TituloCinzaEscuro'><br>Seu anúncio foi atualizado com sucesso.<br><br><a href='teste.asp' class='TituloCinzaEscuro'>Voltar</a></td></tr>"

End if

 

%>

</td>

 

</tr>

</table>

</td>

<td width="150" align="center" valign="top"><!-- #include file="Includes/B.asp" --></td>

</tr>

</table>

</td>

</tr>

<!-- #include file="Includes/Rodape.asp" -->

Compartilhar este post


Link para o post
Compartilhar em outros sites

todos estes campos

 

AltBd("Foto1") = VarConfFoto1
AltBd("Foto2") = VarConfFoto2
AltBd("Foto3") = VarConfFoto3
AltBd("Foto4") = VarConfFoto4
AltBd("Foto5") = VarConfFoto5

estão recebendo valores?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que sim, pois, no teste feito em Access, tudo ocorreu normal, só não entendi porque no MYSQL não vai.

 

Não existe diferença entre códigos

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce esta sempre fazendo o upload de 5 iamgens?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas o mysql esta aceitando valor nulo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Antes estava como Null, mudei para que fosse gravado como SemFoto.gif, mas mesmo assim continua dando o erro

 

Alterei o final do formulário para o seguinte:

 

-----------------------------

 

If VarAct = "Confirma" Then
					
				
				Foto1 = Request.Form("Foto1")
				Foto2 = Request.Form("Foto2")
				Foto3 = Request.Form("Foto3")
				Foto4 = Request.Form("Foto4")
				Foto5 = Request.Form("Foto5")
				
				
				
strQuery = "UPDATE Anuncios SET Foto1 = '"&Foto1&"',Foto2 = '"&Foto2&"',Foto3 = '"&Foto3&"',Foto4 = '"&Foto4&"',Foto5 = '"&Foto5&"' WHERE CodAnuncio ="&VarAnuncio

		'Caso ocorra um erro esta função de erro será chamada
On error Resume Next
'Executaa inserção no Banco de Dados 
Set objRs = Conn.Execute(strQuery)
'Fecha o Objeto de Conexão
Conn.close
'"APAGA" qualquer instancia que possa ter no objeto objRs e objConn
Set objRs = Nothing
Set Conn = Nothing 
if err = 0 Then
	'Redireciona o usuário caso não tenha ocorrido erro na transação
	response.redirect "MeuAnuncio2.asp"
	
	
	end if
----------------------------------------

 

Dessa Maneira as fotos são gravadas no Banco de Dados

 

Não entendi qual a diferença de uma maneira para a outra que possa dar erro...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo erro que você postou, está na estrutura do banco.

qual é a estrutura do banco access e do mysql? nome e tipo e tamanho

pois o que está acontecendo é que você está tentando inserir um dado maior que o permitido.

 

veja se você tem permissão de alterar no mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi direito,

 

No Banco MySQL esta feio da seguinte maneira

 

Campo Tipo Collation Atributos Nulo Padrão

 

Foto1 varchar(255) latin1_bin Não SemFoto.gif

Foto2 varchar(255) latin1_bin Não SemFoto.gif

Foto3 varchar(255) latin1_bin Não SemFoto.gif

Foto4 varchar(255) latin1_bin Não SemFoto.gif

Foto5 varchar(255) latin1_bin Não SemFoto.gif

 

 

Já Alterei o tipo para LongText(255), Collation para latin1_swedish_ci, como nos demais campos e Nulo para Sim e Padão Null

 

mesmo assim não adiantou

 

Tem algo que póssa ser feito para resolver esse problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estive analisando um outro formulário que dá o mesmo erro no UPDATE, e verifiquei que

toda vez que tento fazer a atualização dos dados, sómente de um item da o erro

-------------------

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)

Falha na atualização baseada em consulta. A linha a ser atualizada não foi encontrada.

 

Essa linha é o UPDATE

-------------------

 

Mas se eu altero todos os campos a atualização ocorre normal.

 

O que pode estar acontecendo, será erro no MYSQL, pois normalmente só é feito a alteração de

um ou dois itens.

 

Alguem tem alguma idéia?

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.