Ir para conteúdo
Fórum Script Brasil
  • 0

salva.Update (Tempo de execução)


evertonviana

Pergunta

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 para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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?

Editado por evertonviana
Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...