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

Erro De Consulta Ao Usar Between


ldrwebsite

Pergunta

wink.gif Olá galera é o seguinte.

Fiz uma consulta em que o usuário entra com dois valores para cada item para consulta de peças e um campo para definir o material da peça. Para fazer isto usei o BETWEEN no comando SELECT. Mas eu não sei se é erro ao criar o BD ou na hora de indicar o tipo de dado no select.

Bom, criei um BD no Access com os campos cod, material, de e di (todos campos tipo texto) e cadastrei seis itens para testar o comando com BETWEEN, os registros são:

cod - material - de - di

disco1 - aço - 90 - 20

disco2 - aço - 90 - 25

disco3 - aço - 93 - 22

disco4 - aço - 95 - 30

disco5 - aço - 92 - 35

disco6 - aço - 100 - 21

Ao fazer um pesquisa definindo que o material é aço, o valor de DE é de 90 à 99 e o valor de DI é de 20 á 35, a consulta mostra somente os cinco primeiros registros. Até aí tudo bem. Mas se eu mudar o valor de DE para 90 à 100, a consulta mostra o primeiro, o segundo e o sexto registro!? O que deve estar acontecendo? Eu acho que definindo a consulta para 90 à 100 deveria mostrar os seis registros. Veja o meu código:

<%Option Explicit

Response.Expires=0

Dim objConn, objRS, strQuery

Set objConn=Server.CreateObject("ADODB.Connection")

objConn.Open "DBQ=c:/teste/disco_between.mdb;Driver={Microsoft Access Driver (*.mdb)}"

dim T1,T2,T3,T4,T5

T1=request.querystring("T1")

T2=request.querystring("T2")

T3=request.querystring("T3")

T4=request.querystring("T4")

T5=request.querystring("T5")

strQuery="SELECT * FROM produto WHERE material='"&T1&"' AND de BETWEEN '"&T2&"' AND '"&T3&"' AND di BETWEEN '"&T4&"' AND '"&T5&"'"

Set objRS=objConn.Execute(strQuery)

%>

Eu acho que é porque no BD o tipo do campo é texto. Tentei mudar o tipo de campo para número, mas na hora de executar a consulta da erro falando que o tipo de campo tá errado. Como eu faço para resolver isto? Como indicar na consuta (SELECT) que os valores são numéricos e não textos comuns?

Se alguém souber, posta aí!

Valeu!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

você está tratando as variáveis DE e DI como texto sendo que você precisa compara-las, então não use texto e sim número.

Mude no seu banco de dados os tipos de dados dessas duas variaveis, e na sua SQL mude:

strQuery="SELECT * FROM produto WHERE material='"&T1&"' AND de BETWEEN "&T2&" AND "&T3&" AND di BETWEEN "&T4&" AND "&T5&""

Tenta ae.

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