Ir para conteúdo
Fórum CódigoFonte.net
PERNALONGA

Problema na hora de inserir

Recommended Posts

For i = 1 To Session("Linhas")

If (Session("CA_EXAME"&i) <> "") Then

var_cod = Mid(Session("CA_EXAME"&i), 1, 2) & Mid(Session("CA_EXAME"&i), 4, 2) & Mid(Session("CA_EXAME"&i), 7, 3) & Mid(Session("CA_EXAME"&i), 11, 1)

var_qtd = Session("NR_QTD"&i)

If (Session("CA_LIBERACAO"&i) = "0") Then

var_liber = ""

Else

var_liber = LimpaLixo(Session("CA_LIBERACAO"&i))

End If

If (Session("CA_PERC"&i) = "") Then

var_perc = "NULL"

Else

var_perc = Session("CA_PERC"&i)

End If

var_obs =LimpaLixo(Session("CA_OBS"&i))

var_lado =LimpaLixo( Session("CA_LADO"&i))

Cmd_Cod = "INSERT INTO T205_COD_ANALISE (T200_NR_VMH,T200_DT_PENDENCIA,T021_CA_EXAME, "

Cmd_Cod = Cmd_Cod + "T205_NR_QTD,T205_CA_LIBERADO,T205_NR_PERC,T205_CA_OBS,T205_CA_LADO) "

Cmd_Cod = Cmd_Cod + "VALUES ("+Session("NR_VMH")+",'"&var_dt_pendencia&"','"+var_cod+"', "

Cmd_Cod = Cmd_Cod + ""+var_qtd+",'"+var_liber+"',"+var_perc+", "

Cmd_Cod = Cmd_Cod + "'"+var_obs+"','"+var_lado+"')"

objConn.Execute Cmd_Cod

erroBD = erroBD + objConn.errors.count

End If

Next

Estou com problema neste for só que não conseguindo achar o problema!!Gostaria que alguém pudesse me ajudar, é urgente!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

Se detalhasse melhor o que está acontecendo, como qual é a msg de erro e qual linha está apontando, ficaria mais fácil ajudar

Danilo ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só ali que esta inicializando a session("Linhas"),já procurei em tudo se algum outro lugar que estava gerando e não achei!

dai oq vc acha?

Flw

Sugiro que verifique o código onde está gerando a -- Session("Linhas").

Danilo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pernalonga,

Essa session tem que estar recebendo um valor em algum lugar, senão não tem o porque estar aí.

O porque seu sisstema só exibe o 1º registro é por isso.

Veja:

For i = 1 To Session ("linhas")

Você está pedindo que o loop aconteça enquanto o valor da session não acabar, acontece que tua session tá vazia, então ele só exibe o registro 1.

Em alguma arquivo deve ter uma linha com a sintaxe:

Session("Linhas") = VALORPARAASESSION

Até mais...

Danilo

Compartilhar este post


Link para o post
Compartilhar em outros sites

danilo,

kra ela nao esta recebendo valor algum

dai modifiquei o codigo sera q assim da certo:

if erroBD = 0 then

cont = 1

Session("Linhas") = cont

For i = 1 To Session("Linhas")

If (Session("CA_EXAME"&i) <> "") Then

var_cod = Mid(Session("CA_EXAME"&i), 1, 2) & Mid(Session("CA_EXAME"&i), 4, 2) & Mid(Session("CA_EXAME"&i), 7, 3) & Mid(Session("CA_EXAME"&i), 11, 1)

var_qtd = Session("NR_QTD"&i)

If (Session("CA_LIBERACAO"&i) = "0") Then

var_liber = ""

Else

var_liber = LimpaLixo(Session("CA_LIBERACAO"&i))

End If

If (Session("CA_PERC"&i) = "") Then

var_perc = "NULL"

Else

var_perc = Session("CA_PERC"&i)

End If

var_obs =LimpaLixo(Session("CA_OBS"&i))

var_lado =LimpaLixo( Session("CA_LADO"&i))

Cmd_Cod = "INSERT INTO T205_COD_ANALISE (T200_NR_VMH,T200_DT_PENDENCIA,T021_CA_EXAME, "

Cmd_Cod = Cmd_Cod + "T205_NR_QTD,T205_CA_LIBERADO,T205_NR_PERC,T205_CA_OBS,T205_CA_LADO) "

Cmd_Cod = Cmd_Cod + "VALUES ("+Session("NR_VMH")+",'"&var_dt_pendencia&"','"+var_cod+"', "

Cmd_Cod = Cmd_Cod + ""+var_qtd+",'"+var_liber+"',"+var_perc+", "

Cmd_Cod = Cmd_Cod + "'"+var_obs+"','"+var_lado+"')"

objConn.Execute Cmd_Cod

erroBD = erroBD + objConn.errors.count

End If

cont = cont + 1

Next

end if

FLW

Compartilhar este post


Link para o post
Compartilhar em outros sites

danilo,

kra ela nao esta recebendo valor algum

dai modifiquei o codigo sera q assim da certo:

if erroBD = 0 then

cont = 1

Session("Linhas") = cont

For i = 1 To Session("Linhas")

If (Session("CA_EXAME"&i) <> "") Then

var_cod = Mid(Session("CA_EXAME"&i), 1, 2) & Mid(Session("CA_EXAME"&i), 4, 2) & Mid(Session("CA_EXAME"&i), 7, 3) & Mid(Session("CA_EXAME"&i), 11, 1)

var_qtd = Session("NR_QTD"&i)

If (Session("CA_LIBERACAO"&i) = "0") Then

var_liber = ""

Else

var_liber = LimpaLixo(Session("CA_LIBERACAO"&i))

End If

If (Session("CA_PERC"&i) = "") Then

var_perc = "NULL"

Else

var_perc = Session("CA_PERC"&i)

End If

var_obs =LimpaLixo(Session("CA_OBS"&i))

var_lado =LimpaLixo( Session("CA_LADO"&i))

Cmd_Cod = "INSERT INTO T205_COD_ANALISE (T200_NR_VMH,T200_DT_PENDENCIA,T021_CA_EXAME, "

Cmd_Cod = Cmd_Cod + "T205_NR_QTD,T205_CA_LIBERADO,T205_NR_PERC,T205_CA_OBS,T205_CA_LADO) "

Cmd_Cod = Cmd_Cod + "VALUES ("+Session("NR_VMH")+",'"&var_dt_pendencia&"','"+var_cod+"', "

Cmd_Cod = Cmd_Cod + ""+var_qtd+",'"+var_liber+"',"+var_perc+", "

Cmd_Cod = Cmd_Cod + "'"+var_obs+"','"+var_lado+"')"

objConn.Execute Cmd_Cod

erroBD = erroBD + objConn.errors.count

End If

cont = cont + 1

Next

end if

FLW

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo,

Me corrija se eu estiver errado, mas você está querendo exibir os registros do banco de dados, não é?

Se for, o valor dessa session tem que ser o retorno de uma consulta dos registros do banco, e não de um valor fixo.

Para você usar a instrução FOR você precisa saber o numero exato a ser testado, por ex

FOR i = 1 TO 10

Da forma como colocou, se funcionar, pode demorar uma eternidade para processar, pois vai ser criado um for a cada vez que for executado.

Aconselho fazer uma consulta para ter o valor de registros a ser exibido.

Até,

Danilo

Compartilhar este post


Link para o post
Compartilhar em outros sites

É isto mesmo amigo Danilo estou qerendo trazer os registros do banco

Kra se eu fosse utilizar temporariamente um valor fixo no FOR, aonde alem do lugar q vc mostrou q eu deveria mudar o codigo?

como ficaria meu codigo??

FLW

Cristiano

Amigo,

Me corrija se eu estiver errado, mas você está querendo exibir os registros do banco de dados, não é?

Se for, o valor dessa session tem que ser o retorno de uma consulta dos registros do banco, e não de um valor fixo.

Para você usar a instrução FOR você precisa saber o numero exato a ser testado, por ex

FOR i = 1 TO 10

Da forma como colocou, se funcionar, pode demorar uma eternidade para processar, pois vai ser criado um for a cada vez que for executado.

Aconselho fazer uma consulta para ter o valor de registros a ser exibido.

Até,

Danilo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cristiano,

Se você estiver utilizando esta Session apenas para isso, troque por uma variável onde será armazenado o resultado de uma consulta.

Imaginando que esteja utilizando ADO, crie um recordset selecionando os registros com critério de busca.

EX: rsBusca = "SELECT * FROM suatabela WHERE coloqueaquiacondição

Daí no código, troque o FOR por Do While

Do while not rsBusca.EOF then

Continua seu código...

Boa Sorte..

Danilo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Danilo,

veja como ficou meu codigo

É assim que deveria ficaar?

if erroBD = 0 then

rsBusca = "SELECT T200_NR_VMH, convert(varchar(23),T200_DT_PENDENCIA,21) T200_DT_PENDENCIA "

rsBusca = rsBusca + "FROM T200_VMH WHERE T200_NR_VMH = "+Session("NR_VMH")+" "

rsBusca = rsBusca + "AND CONVERT(VARCHAR(10),T200_DT_PENDENCIA,103) + ' ' + CONVERT(VARCHAR(10),T200_DT_PENDENCIA,108) = '" + Session("DT_PENDENCIA") + "'"

rsBusca = rsBusca + "AND T200_DT_VMH IS NULL "

objConn.Execute rsBusca

Do while not rsBusca.EOF then

If (Session("CA_EXAME"&i) <> "") Then

var_cod = Mid(Session("CA_EXAME"&i), 1, 2) & Mid(Session("CA_EXAME"&i), 4, 2) & Mid(Session("CA_EXAME"&i), 7, 3) & Mid(Session("CA_EXAME"&i), 11, 1)

var_qtd = Session("NR_QTD"&i)

If (Session("CA_LIBERACAO"&i) = "0") Then

var_liber = ""

Else

var_liber = LimpaLixo(Session("CA_LIBERACAO"&i))

End If

If (Session("CA_PERC"&i) = "") Then

var_perc = "NULL"

Else

var_perc = Session("CA_PERC"&i)

End If

var_obs =LimpaLixo(Session("CA_OBS"&i))

var_lado =LimpaLixo( Session("CA_LADO"&i))

Cmd_Cod = "INSERT INTO T205_COD_ANALISE (T200_NR_VMH,T200_DT_PENDENCIA,T021_CA_EXAME, "

Cmd_Cod = Cmd_Cod + "T205_NR_QTD,T205_CA_LIBERADO,T205_NR_PERC,T205_CA_OBS,T205_CA_LADO) "

Cmd_Cod = Cmd_Cod + "VALUES ("+Session("NR_VMH")+",'"&var_dt_pendencia&"','"+var_cod+"', "

Cmd_Cod = Cmd_Cod + ""+var_qtd+",'"+var_liber+"',"+var_perc+", "

Cmd_Cod = Cmd_Cod + "'"+var_obs+"','"+var_lado+"')"

objConn.Execute Cmd_Cod

erroBD = erroBD + objConn.errors.count

End If

rsBusca.next

End if

Cristiano,

Se você estiver utilizando esta Session apenas para isso, troque por uma variável onde será armazenado o resultado de uma consulta.

Imaginando que esteja utilizando ADO, crie um recordset selecionando os registros com critério de busca.

EX: rsBusca = "SELECT * FROM suatabela WHERE coloqueaquiacondição

Daí no código, troque o FOR por Do While

Do while not rsBusca.EOF then

Continua seu código...

Boa Sorte..

Danilo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso, essa é a lógica pelo que entendi da sua necessidade.

Caso não esteja funcionando, vai ter que verificar as condições dentro do loop.

Danilo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×
×
  • Criar Novo...