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

Update


BurnOS

Pergunta

Galera, tenho o seguinte código na numa página:

case "Alterar"
        mstrSQL = "UPDATE VisitasMedicas"
        mstrSQL = mstrSQL & vbCrLf & "SET "
        mstrSQL = mstrSQL & vbCrLf & "tipo = '" & mstrTipo & "'"
        mstrSQL = mstrSQL & vbCrLf & ",crm_medico = '" & mstrCrmMedico & "'"
        mstrSQL = mstrSQL & vbCrLf & ",especialidade = '" & mstrEspecialidade & "'"
        mstrSQL = mstrSQL & vbCrLf & ",nome = '" & mstrNome & "'"
        mstrSQL = mstrSQL & vbCrLf & ",endereco = '" & mstrEndereco & "'"
        mstrSQL = mstrSQL & vbCrLf & ",obs = '" & mstrObs & "'"
        mstrSQL = mstrSQL & vbCrLf & ",situacao = '" & mstrSituacao & "'"
        mstrSQL = mstrSQL & vbCrLf & ",data = cast('" & mstrAno & "-" & mstrMes & "-" & mstrDia & "' as datetime)"
        mstrSQL = mstrSQL & vbCrLf & "WHERE"
        mstrSQL = mstrSQL & vbCrLf & "territorio = '" & Session("codigo_brick1") & "'"
        mstrSQL = mstrSQL & vbCrLf & "AND crm_medico='" & mstrCrmMedico & "'"
        mstrSQL = mstrSQL & vbCrLf & "AND codvisitas = '" & mstrVisita & "'"
        
'        Response.Write mstrSQL
        set mobjRegistros = mobjConexao.Execute(mstrSQL)

O problema é que, ele não grava nada no banco... ele roda beleza, até escreve na tela uma confirmação se deseja ou não alterar os dados, mas depois quando faço uma consulta, não alterou nada... teve uma hora que alterou e em seguida não alterou mais, mesmo sem mexer no código...

Vlewwww

Abraços

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Só por curiosidade, tem alguma "maneira" de confirmar?

De qualquer forma, está caindo sim, pois se na útima linha do comando SQL ao invés de colocar o campo "codvisitas", colocar o data, a alteração funciona, mas só altera a observação, e o que eu quero é alterar a data...

Link para o comentário
Compartilhar em outros sites

  • 0
Só por curiosidade, tem alguma "maneira" de confirmar?

o q a gente costuma fazer (desda epoca do clipper) é tipo isso:

case "Alterar"
        Response.Write("Chegou Aqui!!") '<-- ISSO AQUI PRA TESTAR

        mstrSQL = "UPDATE VisitasMedicas"
        ...
        mstrSQL = mstrSQL & vbCrLf & "AND codvisitas = '" & mstrVisita & "'"
        
        set mobjRegistros = mobjConexao.Execute(mstrSQL)[/code] ai se aparecer escrtio "Chegou Aqui" é porque chegou ali. quanto a sua consulta, la onde você pos Response.Write mstrSQL, tenta descomentar essa linha e veja o q ele retorna. ai veja se existe algum registro q atenda as condicoes do WHERE como ele ta ficando. tipo, você pode acessar esse banco no Query Analyzer, certo?? então tenta executar o codigo tipo:
[code]Select * From VisitasMedicas WHERE ...

ai no lugar do WHERE copie o WHERE do codigo q ele vai mostrar no Response.Write e veja se ele não retorna nenhum registro. se não voltar, de uma olhada no seu WHERE e tente descobrir qual dos valores q não existe no banco.

Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi, entendi que está acontecendo o seguinte:

UPDATE VisitasMedicas SET tipo = 'Relatorio' ,crm_medico = '36745' ,especialidade = 'CIR P' ,nome = 'MARIO FRANCISCO JORGE ALVES' ,endereco = 'AV. BELO HORIZONTE, 630 - ITU - SP' ,obs = 'Diz que receita pouco, apenas pós operatório, e passou nome de medicamentos de uso contínuo que compra em outra drogaria, porque recebe grande desconto. Vou retornar para ele com os valores.' ,situacao = 'EF' ,data = cast('2007-11-05' as datetime) WHERE territorio = '003' AND crm_medico='36745' AND codvisitas = ''
(Essa informação apareceu depois que descomentei a linha Response.Write mstrSQL, ela aparece no topo página e embaixo aparece a página normal, se eu descomentar a linha debaixo, ele dá erro de ASP) (Maior cabeçada, só agora entendi que o response.write é pra mostrar na tela dados ele está pegando, mas foi muito útil pra ver que ele naõ está trazendo a string, que até então é o maior problema) Onde na última consulta, é uma variável setada como request.QueryString, e todas as outras são request.Form... Então no primeiro select da página, ele busca essa variável dá página anterior para trazer essas informações de acordo com o código da visita, mas na hora de alterar ele não traz o código da visita... O primeiro select funciona assim:
mstrVisita = Request.QueryString("Visita")

    mstrSituacao = Request.Form("situacao")
    mstrTipo = Request.Form("tipo")    
    mstrDia = Request.Form("dia") 
    mstrMes = Request.Form("mes") 
    mstrAno = Request.Form("ano") 
    mstrCrmMedico = Request.Form("crm_medico") 
    mstrEspecialidade = Request.Form("especialidade") 
    mstrNome = Request.Form("nome") 
    mstrEndereco = Request.Form("endereco") 
    mstrObs = Request.Form("obs") 

    if mstrVisita <> "" then
        mstrSQL = "SELECT TOP 1 * FROM VisitasMedicas"
        mstrSQL = mstrSQL & vbCrLf & "WHERE"
        mstrSQL = mstrSQL & vbCrLf & "codvisitas=" & mstrVisita

Abraços

Editado por BurnOS
Link para o comentário
Compartilhar em outros sites

  • 0

Então... quando eu entro na página pela primeira vez, o topo da página está assim...

http://www.meusite.com.br/pagina.asp?Visita=123

depois, ele pega a ação...

http://www.meusite.com.br/pagina.asp?Acao=Alterar

dai eu não consigo manter a string para essa ação... funciona assim, depois de acessar os dados, eu altero o que quero alterar e beleza, quando clico no botão alterar, ele chama uma função para verificação dos campos, se tudo tiver ok, ele chama o case Alterar, que é onde tá o select, até ele vai normal, o que não vai é a string, não consigo fazer o selec do case alterar chamar a string da visita....

Vlewww

Abraços...

Link para o comentário
Compartilhar em outros sites

  • 0

você tem mtas opcoes pra resolver isso. por exemplo, você pode redirecionar pra pagina, em vez de http://www.meusite.com.br/pagina.asp?Acao=Alterar você faria http://www.meusite.com.br/pagina.asp?Acao=Alterar&Visitas=123, entendeu??

ai tipo, pelo q entendi você ta redirecionando pelo post do formulario, certo?? ai você faria assim:

<form id="xxx" method="post" action="http://www.meusite.com.br/pagina.asp?Acao=Alterar&amp;Visitas=<% = Request.QueryString("Visitas") %>">
ai na outra pagina você pega por querystring. ou ainda você pode por um campo hidden no formulario, tipo:
<input type="hidden" name="Visitas" id="Visitas" Value="<% = Request.QueryString("Visitas") %>" />

ai na outra pagina você pegaria por Request.Form, entendeu??

ainda tem otras opcoes, tipo você poderia gravar na Session e etc.

Link para o comentário
Compartilhar em outros sites

  • 0

eaewwwwwwwwwwwwww vlewwwwwwww kuroi!!!!!

Daqui a pouco vira adoção hein... hehehe

ó... funfou beleza!!! usei a segunda opção, o input hidden com request.form...

no segundo deixou dúvidas... estou colocando aqui só por curiosidade.. já que o primeiro funfou beleza...

window.forBody.action = "DSP_CadVisitaMed.asp?Acao=Alterar";
window.forBody.submit();
a acao que o form realizará vem dessa função em javascript... consegui levar a string até o endereço assim:
window.forBody.action = "DSP_CadVisitaMed.asp?Acao=Alterar&Visita=<%=Request.QueryString("Visita")%>";
window.forBody.submit();

Mas não consegui pegar de volta na hora de fazer o select... nem como request.form, nem como request.querystring...

Abraços

Vlewwwwwww

Flowww

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...