Jump to content
Fórum Script Brasil
  • 0

salva.Update (Tempo de execução)


evertonviana

Question

Bom dia!

Galera, por favor analisem o codigo que colocarei abaixo e me digam onde existe algo de incorreto. Já comparei, revisei e não encontro nada que justifique o erro Exceção: 'salva.Update' na linha 82.

<%
'-----------------------------------------------
'Recupera sessions
codigo = session("codigo")
nome = session("nome")
telefone1 = session("telefone1")
telefone2 = session("telefone2")
telefone3 = session("telefone3")
cnpj =  session("cnpj")
endereco =  session("endereco")
resp_contrato = session("resp_contrato")
email = session("email")
tipo_contrato = session("tipo_contrato")
data_inicio = session("data_inicio")
custo_equipamento = session("custo_equipamento")
Equipamento = session("Equipamento")
valor_inicial = session("valor_inicial")
encarregado = session("encarregado")
cod_encarregado = session("cod_encarregado")
Equipamentos_todos = session("Equipamentos_todos")
objetivo = session("objetivo")
servicos = session("servicos")
cobertura = session("cobertura")
atendimento = session("atendimento")
horas = session("horas")
prazos = session("prazos")
comp_cobertos = session("comp_cobertos")
valor = session("valor")
programas = session("programas")
inventario = session("inventario")
gestao_ti = session("gestao_ti")
responsabilidades = session("responsabilidades")
foro = session("foro")
n_contrato = session("n_contrato")
operador = session("login_user")
'-----------------------------------------------

'Conexão MYSQL - Cadastro de contratos
Set Conex = Server.CreateObject("ADODB.Connection")
Conex.ConnectionString = "DSN=contratos"
Conex.Open

'Salva no Banco de Dados
Set salva = Server.CreateObject("ADODB.Recordset")
sql = "select * from contratos"
salva.open sql, Conex, 3,3

salva.AddNew
salva("cod_cli") = codigo
salva("nome") = nome
salva("tel1") = telefone1
salva("tel2") = telefone2
salva("tel3") = telefone3
salva("cnpj") = cnpj
salva("endereco") = endereco
salva("resp_contrato") = resp_contrato
salva("email") = email
salva("tipo_contrato") = tipo_contrato
salva("data_inicio") = data_inicio
salva("custo_equipamento") = custo_equipamento
salva("qnt_equipamentos") = Equipamento
salva("valor_inicial") = valor_inicial
salva("encarregado") = encarregado
salva("cod_encarregado") = cod_encarregado
salva("lista_equipamentos") = Equipamentos_todos
salva("objetivo") = objetivo
salva("servicos") = servicos
salva("cobertura") = cobertura
salva("atendimento") = atendimento
salva("horas") = horas
salva("prazos") = prazos
salva("comp_cobertos") = comp_cobertos
salva("valor") = valor
salva("programas") = programas
salva("inventario") = inventario
salva("gestao_ti") = gestao_ti
salva("responsabilidades") = responsabilidades
salva("foro") = foro
salva("n_contrato") = n_contrato
salva("status") = "Pendente"
salva("operador") = operador
salva.Update

salva.close
set salva = nothing 

'-----------------------------------------------
'Depois de salvar no BD, limpa a session que contem o valor por maquina, para limpar p/ o próximo cadastro

session("custo_equipamento") = 0

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

'Redireciona
Response.Redirect"imprime_contrato_11101.asp"

conex.close
%>

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0
como você não faz a verificação contra registros duplicados. por que não usar insert ?

sql="insert into tabela (campo,campo) values ('"&var1&"','"&var2&"')"

Fala bareta!

Ok, posso tentar aqui, mas até mesmo para não aconter isso no futuro, porque do erro? O que me causa estranhesa, é o fato de todos os outros arquivos que fazem as mesmas operações em minha aplicação, estão exatamente dessa maneira, eu verifiquei minuciosamente cada parte do arquivo e não notei nada diferente...

Vou testar e aviso, mas se puder me explciar o motivo, fico grato!

Link to comment
Share on other sites

  • 0
mas qual a mensagem do erro?? somente "excecao"??

Boa tarde, Amigo!

Sim, o erro é somente esse. Tem um codigo de erro acima, mas tenho quase que 100% de certeza que não serviria de nada:

Erro de tempo de execução do Microsoft VBScript erro '800a01fb'

Exceção: 'salva.Update'

Link to comment
Share on other sites

  • 0

hum... mas se você diz q os outros codigos funcionaram, então imagino q nesse arquivo, algum dado invalido esteja sendo passado pra algum campo do recordset, por isso o erro. por exemplo, num campo q for data você não esta passando uma data valida. ou você esta passando texto num valor numerico. ou você não esta preenchendo algum campo q esteja setado como obrigatorio. ou você esta passando um texto maior q o tamanho do campo.

o problema vai ser descobrir qual o campo exatamente q esta com problema, já q são mtos...

Link to comment
Share on other sites

  • 0
hum... mas se você diz q os outros codigos funcionaram, então imagino q nesse arquivo, algum dado invalido esteja sendo passado pra algum campo do recordset, por isso o erro. por exemplo, num campo q for data você não esta passando uma data valida. ou você esta passando texto num valor numerico. ou você não esta preenchendo algum campo q esteja setado como obrigatorio. ou você esta passando um texto maior q o tamanho do campo.

o problema vai ser descobrir qual o campo exatamente q esta com problema, já q são mtos...

É tentei o procedimento passado pelo Bareta, mas não rolou!

Vou tentar identificar o que você falou acima, vlw pela ajuda...

Link to comment
Share on other sites

  • 0

Galera, desculpe a demora...

Hoje, pude retomar meu projeto e como na ultima postagem, fui tentando esmiuçar tanto o BD quanto a pagina em ASP e realmente não identifiquei problemas, que foram sugeridos pelo KUROI.

Porem notei um ponto muito estranho, vejam o teste que fiz:

Deletei a Tabela que estou tentando operar>Criei novamente e fui criando campo a campo e cada vez que criava um novo campo, fazia um novo teste de inserção, utilizando o mesmo codigo com o .addnew e .Update.

Consegui ir bem até a linha salva("atendimento") = atendimento, porem após ela o erro novamente é apresentado.

Pensei "Opa, achei o problema!", porem não foi assim que aconteceu, notei logo depois que seja qual for o campo após salva("cobertura") = cobertura, o erro acontece.

O que me leva a seguinte duvida(na qual acho que talvez o tópico será mudado de Forum), Será que o MySQL tem um limite de operações como essa?

O que acham?

Edited by evertonviana
Link to comment
Share on other sites

  • 0
O que me leva a seguinte duvida(na qual acho que talvez o tópico será mudado de Forum), Será que o MySQL tem um limite de operações como essa?

hum... é possivel... se você já verificou mesmo os tipos de campos, então acho q você vai ter q fazer mesmo uma string de insert como disse o bareta. exemplo:

'Conexão MYSQL - Cadastro de contratos
Set Conex = Server.CreateObject("ADODB.Connection")
Conex.ConnectionString = "DSN=contratos"
Conex.Open

sql = "Insert Into contratos (campo1, campo2) Values ('" & valor1 & "', '" & valor2 & "')"
Conex.Execute(sql)[/code]

Link to comment
Share on other sites

  • 0
sql = "Insert Into contratos (campo1, campo2) Values ('" & valor1 & "', '" & valor2 & "')"
Conex.Execute(sql)
Fala Kuroi! Pois é ontem no final do expediente, fiz esse teste, porem dessa vez o resultado foi outro(Não sei se pelo fato de ter mudado recentemente de servidor, pois agora estou operando em um IIS7). Recebi o seguinte erro:
[MySQL][ODBC 5.1 Driver][mysqld-5.1.51-community]Incorrect date value: '19/01/2011' for column 'data_inicio' at row 1

E sinceramente começo a pensar: "Cara, não tem outro jeito vou ter que fazer um curso de MySql pra entender essas doideiras...", pois realmente é doideira isso pra mim, pois tenho sei lá, 100 arquivos que fazem esse procedimento de inserção na BD, todos então identicos a esse arquivo e não sei porque o valor '19/01/2011' esta incorreto...

Ta brabo esse problema!

Link to comment
Share on other sites

  • 0

esse erro aparece usando o codigo anterior com o salva.Update(), ou com a string do insert?? o campo esta como data mesmo no banco (datetime, timestamp, etc)??

se for no salva.Update(), use a funcao CDate() pra convertar o texto pra data, assim ele tera certeza de q é uma data:

salva("data_inicio") = CDate(data_inicio)

se for na string do insert, eu recomendo sempre, não importa qual banco de dados q você esteja usando, q grave a data no formato YYYY-MM-DD (com tracinho mesmo em vez de barra), nunca vi esse formato dar problemas.

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
      152.2k
    • Total Posts
      652k
×
×
  • Create New...