Ir para conteúdo

POWERED BY:

Arquivado

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

AspAL

Erro com UPDATE!!

Recommended Posts

Estou com um probleminha quando tento rodar esse update! Preciso atualizar 3 campos em um soh update.. mas tá dando erro

 

SET CONEXAO = SERVER.CREATEOBJECT("ADODB.CONNECTION")

CONEXAO.OPEN "PROVIDER = MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & SERVER.MAPPATH("users.mdb")

SET RS = CONEXAO.EXECUTE("UPDATE users set dia="&dia&",mes="&mes&",ano="&ano&" where id=" & Session("id")"")

 

tb não sei se essa "separação" entre dia mês e ano está certa!

o erro que está dando eh esse:

 

Erro de compilação do Microsoft VBScript erro '800a03ee'

 

')' esperado

 

/beta/adm/pag.asp, line 37

 

SET RS = CONEXAO.EXECUTE("UPDATE users...... etc etc!

 

alguém ajuda??? vlwwwwwwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

fal um & no fim de sua string apenas

Compartilhar este post


Link para o post
Compartilhar em outros sites

fal um & no fim de sua string apenas

hum... realmente véi, era só isso! Mas agr ele está dando um erro na hr de atualizar que é o seguinte:

 

Microsoft JET Database Engine erro '80040e10'

 

Nenhum valor foi fornecido para um ou mais parâmetros requeridos.

 

/beta/adm/pag.asp, line 37

 

linha 37 é a linha do UPDATE

o que poderia ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

printa na tela o que ta vinda na string de atualizaçãota informando que tem algo em branco

Compartilhar este post


Link para o post
Compartilhar em outros sites

printa na tela o que ta vinda na string de atualização

 

ta informando que tem algo em branco

nao = "nao"

SET RS = CONEXAO.EXECUTE("UPDATE users set pagamento_efetuado="&nao&" where id="&RS("id")&"")

 

No banco de dados o campo "pagamento_efetuado" está definido como Texto e 3 caracteres! pq tá dando erro???

 

Microsoft JET Database Engine erro '80040e10'

 

Nenhum valor foi fornecido para um ou mais parâmetros requeridos.

 

/beta/adm/atualiza_lista.asp, line 34

 

 

qual o erro aí pelamordeDeus!!!!!!!!!!! kkkkkkkkkkkkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

se o campo está como texto você deve passar na string um texto e não número, faltou a aspas simples

 

SET RS = CONEXAO.EXECUTE("UPDATE users set pagamento_efetuado='"&nao&"' where id="&RS("id")&"")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agr funcionou!!!!!!!! VALEU!!! Masssssssssssss..............

 

Mas deu outro problema... no final do arquivo, ele solicita um loop e move para o próximo registro. Mas está dando um erro quando se tenta executar o comando:

 

rs.movenext

 

dá esse erro:

 

ADODB.Recordset erro '800a0e78'

 

Operação não permitida quando o objeto está fechado.

 

/beta/adm/atualiza_lista.asp, line 47

 

abaixo vai o código completo:

 

<%

SET CONEXAO = SERVER.CREATEOBJECT("ADODB.CONNECTION")

CONEXAO.OPEN "PROVIDER = MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & SERVER.MAPPATH("users.mdb")

SET RS = CONEXAO.EXECUTE("SELECT * FROM users")

 

i_nao = 0

i_sim = 0

sim = "Sim"

nao = "Não"

while not RS.eof

id = RS("id")

if rs("pagamento_venc_ano") > year(date) then

SET RS = CONEXAO.EXECUTE("UPDATE users set pagamento_efetuado='"∼&"' where id="&RS("id")&"")

i_sim = i_sim + 1

else

if rs("pagamento_venc_ano") = year(date) then

if rs("pagamento_venc_mes") > month(date) then

SET RS = CONEXAO.EXECUTE("UPDATE users set pagamento_efetuado='"∼&"' where id="&RS("id")&"")

i_sim = i_sim + 1

else

if rs("pagamento_venc_mes") = month(date) then

if day(date) < rs("pagamento_venc_dia") then

SET RS = CONEXAO.EXECUTE("UPDATE users set pagamento_efetuado='"∼&"' where id="&RS("id")&"")

i_sim = i_sim + 1

else

if day(date) = rs("pagamento_venc_dia") then

else

if day(date) > rs("pagamento_venc_dia") then

SET RS = CONEXAO.EXECUTE("UPDATE users set pagamento_efetuado='"&nao&"' where id="&RS("id")&"")

i_nao = i_nao + 1

end if

end if

end if

else

if rs("pagamento_venc_mes") < month(date) then

SET RS = CONEXAO.EXECUTE("UPDATE users set pagamento_efetuado='"&nao&"' where id="&RS("id")&"")

i_nao = i_nao + 1

end if

end if

end if

else

if rs("pagamento_venc_ano") < year(date) then

SET RS = CONEXAO.EXECUTE("UPDATE users set pagamento_efetuado='"&nao&"' where id="&RS("id")&"")

i_nao = i_nao + 1

end if

end if

end if

RS.movenext

wend

 

response.write "Dados atualizados com sucesso!"

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

if not rs.eof then while not RS.eof 'seu códigoloopelseresponse.write("nenhum registro para atualizar")end if

desculpe a pergunta, mas porque tanto update na mesma tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

if not rs.eof then while not RS.eof 'seu códigoloopelseresponse.write("nenhum registro para atualizar")end if
desculpe a pergunta, mas porque tanto update na mesma tabela?
Na verdade é uma página que serve para atualizar dados no campo pagamentos_efetuados. Quando eu chamar essa página, ele sairia comparando as datas de pagamentos efetuados, com a data atual.Seria como uma verificação de quais usuários estão com os pagamentos em dia, e quais não estão. Os usuários que não estiverem, ele atualiza o campo "pagamentos_efetuados" com o valor "Não", e vice-versa.A idéia é fazer com que esse "script" execute essa operação automaticamente, sem precisar que se vá "manualmente" de usuário por usuário para atualizar esse registro. Dessa forma, ele atualiza todos sozinho.O problema acontece pq quando vou mover para o próximo registro, o sistema dá esse problema que eu expliquei acima.O que posso fazer pra melhorar isso?

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.