Ir para conteúdo

POWERED BY:

Arquivado

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

Filipe Poiato

[Resolvido] Problemas com IsNull

Recommended Posts

Bom dia,

Estou com um problema para utilizar o IsNull com o banco Access, tenho várias páginas onde utilizo ele normalmente para banco ORACLE, mas quando tento utilizá-lo no Access me retorna o erro " Wrong number of arguments used with function in query expression 'ISNULL(COUNT(dia),0)'."

Alguém sabe o que pode estar errado?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá um response.write na string SQL, para ver o k esta sendo passado

response.write(SQL)

response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

response.end()

 

trava a pagina justamente pra isso :)

 

ponha logo anaixo do select

 

 

 

 

select...

 

response.end()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas é no select que da o erro. Colocando o Response.end abaixo dele não adianta nada pq a página não chega nem nele.

Meu select esta na linha 31, dando um Response.end na 32 não muda nada pq o erro ainda aponta na 31.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso nao tem nada a ver, o .end justamente trava a pagina no ponto.

 

se seu execute estiver apos o .end, ele nao será executado

 

 

 

 

posta o seu bloco do cod

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema é no select e não no execute.

Mas consegui arrumar o problema fazendo "SELECT ISNULL(dia) FROM..." sem tentar colocar o ",0" que eu estava acostumado no ORACLE para colocar 0 quando fosse nulo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não precisa desistir, como eu disse consegui resolver.

O problema é que quando o banco é ORACLE eu utilizo assim "SELECT ISNULL(COUNT(meucampo),0) FROM..." Fazendo isso quando o valor retornado do SELECT for vazio ele troca por 0(zero) evitando erros na minha página. Quando o banco é ACCESS não se pode usar o ",0" que não é reconhecido neste caso, deve-se usar somente "SELECT ISNULL(COUNT(meucampo)) FROM..." e tentar evitar o erro de outra forma, a forma que eu encontrei foi fazer um "IF meuRS.bof THEN" e colocar o que eu quero que apareça caso retorne nulo "ELSE" e o que eu quero que retorne caso não seja nulo "END IF".

Mas obrigado pelas tentativas de ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

desisti pq você nao respondeu o que perguntei, e justamente fiz uma pergunta pra ajudar a descobrir o erro... enfim, sempre que da erro em sql usa-se .end pra saber qual erro, as vezes uma virgula, um nome errado...

 

 

 

 

todos concordamos que isso executa o sql, certo?

 

sql = "select SQL_CACHE coluna from tbl"

Set rs = conn.execute(sql)

 

 

 

agora nao executa mais por causa do .end, no lugar antes de executar

 

sql = "select SQL_CACHE coluna from tbl"

 

 

response.write sql

 

response.end()

 

Set rs = conn.execute(sql)

 

 

 

 

 

 

 

 

independente de você ter um sql errado => sql = "selectA coluna fromO tbl"

 

o .end antes do execute nao permite a execução do sql, logo trava antes do erro

 

 

 

 

 

era isso que queria fazer com você pra ver o seu erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom... se resolveu, parabens...

 

Tópico encerrado.. =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

até onde sei o ACCESS não aceita o isnull como os d+ banco, se não me engano o correto seria

 

Select If(IsNull(nome_da_coluna), 0, nome_da_coluna) as novo_nome_coluna from nome_da_tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

No Access, a função IsNull retorna um valor booleano que indica se ou não uma expressão não contém dados válidos (Nulo).

 

A sintaxe para a função IsNull é:

IsNull (expressão)

 

No Access, o argumento de expressão pode ser qualquer expressão numérica ou string. A função IsNull retorna True (-1) se a expressão contém o valor nulo, caso contrário, ele retorna False (0). Nulo não é o mesmo que uma seqüência de comprimento zero, que é muitas vezes referida como uma string nula.

 

Importante: Utilizando a função IsNull é a única forma de dentro do Access para determinar se existe ou não uma expressão contiver um valor nulo.

 

 

você pode fazer assim para SQL Server / MS Access

SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Products

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.