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

Estou Com Um Problemao - Deve Ser Facil


rafabom021

Pergunta

huh.gif - estou montando um site em asp e estou com uma duvida bem idiota.... na pagina principal.asp eu tenho um area para realizacao de busca em um BD eu tenho q buscar todos os carros que tem os campos iguais a busca...porem a busca tem 4 texts fields (motor)(ano)(cor)(modelo) ate ai é facil, eu criei uma nova pagina chamada busca_carro.asp e mandei o formulario envias as variaveis pra ela...e fiz um recordset com a seguinte SQL

"select modelo from carros where (loja='" & loja & "') and (modelo='"& modelo &"') and (motor ='" & motor &"') and (ano BETWEEN '"& ano &"' and '" & ano1 &"') and (cor='"& cor & "')"

....mas por exemplo eu quero q o usuario possa deixar qualquer campo em branco

e dai quando faz a busca ele retorna a mesmo de erro, pois nenhum carro tem campo com modelo null

....como resolvo esse problema sem ter obrigar o usuario a preencher?

......não sei se he facil, acredito q sim...eu ainda estou começando com asp plz

me ajudem smile.gif

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

9 respostass a esta questão

Posts Recomendados

  • 0

bom.. antes de mais nada, qual erro dá?

pra não dar erro, antes do sql você faz um IF, se o campo ta vazio..

mas antes.. mostra o erro que dá aí

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Cara o erro que da é esse...na verdade n existe o registro porque o campo esta em branco ... entendeu ???

ADODB.Field error '800a0bcd'

BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

/carro/silvas/busca_carro.asp, line 112

------

Sobre o If, eu não posso utilizar o if dentro do sql ne ???? se puder me de um exemplo plz

Link para o comentário
Compartilhar em outros sites

  • 0

hum..

ele dá oerro porque não achou nada.

você quer executar a busca, mesmo sem ter todos os campos?

Logo depois de criar o SQL.. faz um if, testando se encontrou alguma coisa:

if rs.eof = true then

response.write "não encontrou nada!"

end if

só fazer algo assim.. no lugar do RS, coloca o objeto que executa o SQL..

Link para o comentário
Compartilhar em outros sites

  • 0

Pra ficar mais facil vou dar um exemplo:

modelo: Palio

Motor: 1.0

Cor: prata

Ano:1995

agora a busca

modelo : null

Motor: 1.0

Cor: Prata

Ano: 1995

e a busca vai mostrar o palio porque o modelo esta null... acho q agora você vai entender sera q meu problema tem solucao ???

Link para o comentário
Compartilhar em outros sites

  • 0

ah

acho que captei a vossa mensagem

huauhahua

veja os coloridos:

"select modelo from carros where (loja='" & loja & "') or (modelo='"& modelo &"') and (motor ='" & motor &"') and (ano BETWEEN '"& ano &"' and '" & ano1 &"') and (cor='"& cor & "')"

testa isso aí.. muda o AND para OR.. onde ta vermelho

depois diga se funcionou!

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Vlw em Dark mas o problema é que com esse codigo eu vou buscar qualquer uma delas estiverem corretas e n serve pra mim pois eu tenho q buscar todas q sejam diferente de null e esquecer as que forem null....alguém ai sabe como fazer ??

vlw mesmo em Dark

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim:

Eu num programo em asp faz tempo, vo tenta ...

acum = 0

strsql = "select modelo from carros where "

if trim(loja) <> "" then

    strsql = strsql & "loja=" & loja

    acum = 1

End If

if acum = 1

    strsql = strsql & "and"

    acum = 0

End If

If trim(modelo) <> "" then

    strsql = strsql & "modelo=" & modelo

    acum = 1

End If

if acum = 1

    strsql = strsql & "and"

    acum = 0

End If

if trim(motor) <> "" then

    strsql = strsql & "motor=" & motor

    acum = 1

End If

if acum = 1

    strsql = strsql & "and"

    acum = 0

End If

if trim(ano) <> "" then

    strsql = strsql & "ano BETWEEN '"& ano &"' and '" & ano1

    acum = 1

End If

if acum = 1

    strsql = strsql & "and"

    acum = 0

End If

if trim(cor) <> "" then

    strsql = strsql & "cor=" & cor

    acum = 1

End If

if acum = 1

    strsql = strsql & "and"

    acum = 0

End If

Link para o comentário
Compartilhar em outros sites

  • 0

Cara para o BD aceitar campos Null você tem q configurar dentro do BD na propriedade do campo q você quer q aceite valores NUlls.......e outra coisa não sei se você já reparou....mas pode dar erro.....sua consulta sql tá buscando mais de um campo no bd .....e você só esta declarando um campo na string sql........coloque um * no lugar desse campo....ou coloque o nome das variaveis q você quer buscar seguidos de virgula....

...

select modelo from carros where

select * from carros where ]

espero ter ajudado!!

valeu!

e outra coisa p/ você buscar as diferentes de null..................você tem q colocar uma condição na string sql...................ou se você quiser buscar todas porem exibir apenas as diferentes de null aí você coloca uma condição dentro do while q você fizer!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Você não entendeu a real questão serraventura,

Os campos da busca são opicionais !

Ou seja, em algum momento o modelo digitado pelo usuário pode ser igual a "" ...

E como não existe nenhum registro com esse valor, a query daria errado !

E ele não pode usar OR, por que a pesquisa tem que ser específica !

Assim é nescessário usar um código como esse que eu postei para fazer a busca !

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...