Ir para conteúdo

POWERED BY:

Arquivado

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

davisvasconcellos

asp+mysql+recordset fantasma

Recommended Posts

galera to com um problema meio doido.

 

quando faço uma pesquisa no mysql e não encontro o registro, não consigo testar no asp , é como se o rs tivesse alguma coisa dentro.

 

tipo. tem uma tabela com o campo data. por ex quero o dia 01-10-2000 (que não existe)

 

dai testo para jogar em uma var

 

if rs.bof then

dia="inexistente"

else

dia=rs("dia")

end if

 

kra. não testa, já tentei de tudo.

to fazendo uma gambiarra , mas nao to gostando pq pra frente vai dar trabalho quando trabalhar com muitas variáveis.

gambiarra:

if rs("dia")<>"" then

...

 

imagina se a tabela tiver 200 colunas... :(

 

dei um response com vartype no rs saca a doideira:

 

response.write "tipo de var: " & vartype(rspontoretro("data")) & "<br>" <<com rs OK = 7 com rs doido = 9 >>

response.write "nome: " & typename(rspontoretro("data")) << ambos retornam Field >>

 

 

alguem já viu isso. to achando q é bug do mysql

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

poderia posta uma parte do codigo, de preferencia onde você seta os objetos e abre o recordset???

 

me parece que coê não setou o recordset corretamente ou até mesmo o cursos da conexao

Compartilhar este post


Link para o post
Compartilhar em outros sites

onde eu faço o select

set rsPontoretro = conn.execute("SELECT * FROM ponto where data ='" & data_retro & "' and cod_func ='" & cod_func & "'")

(é um sistema de ponto. data_retro=data()-1, isso entra quando o funcionário vai bater o ponto entre 00:00 e 06:00. da ele vai bater no outro dia a saída)

(dai vem o slect pra e udepois testar se o funcionario tem registro no dia anterior.se tiver faço um monte de crítica pra proíbir dele tentar burlar o sistema e só bater na saída... se não eu proíbo ele de bater.

 

já testei de várias formas

 

if rsPontoretro.eof then ...

if rsPontoretro.bof then ...

if rsPontoretro("s3")<>"" then (geralmente funciona, mas é o oposto. e imagina se tiver 200 campos....)
xe3=rspontoretro("s3")
else
xe3=""
end if
se encontra registro funciona na boa, mas se nao encontrar dá excessão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente....você está tratando a data no formato do mysql?

você definiu algum cursor location no objeto conn?

qual versão do mysql?

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiramente....você está tratando a data no formato do mysql?

você definiu algum cursor location no objeto conn?

qual versão do mysql?

to tratando a data no formato do mysql sim, tanto que me traz os registros certos se eu trocar a data e, se eu fizer o critério como outro campo dá no mesmo where e1=xxx por ex.

 

nao tem cursor location, nada. só a colexão e o select direto.

 

a versão é a ultima que tem. 5.3

 

eu to achando que deve ter alguma configuração do mysql que você ajusta esse retorno.

tipo. tinha um sisteminha antigo aqui em delphi q se conectava a um bd. quando passei pro mysql tive que altera o mysql para aceitar senha como se fosse nas versões anteriores. tipo senha simples.

 

acho q deve ter alguma coisa nele q se configure para quando não encontrar nenhum registro ele retornar NULL e não simplesmente um objeto.

 

 

sei lá.

já vi nego com essa dúvida na net mas sem resposta.

 

se puder ajudar...

abs

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.