Como montaria essa SQL?

Delphi

06/01/2005

Bom dia!
Estou com um grande problema e necessito de ajuda.
Bom o lance é o seguinte, tenho que realizar uma pesquisa, no form tenho 3 listbox.
A primeira contém três variaveis(Existe uma tabela no banco para elas): 1-Tijolo; 2-Adobe; 3-Taipa
A segunda contém três variaveis(Existe uma tabela no banco para elas): 1-Limpo; 2-Lixo orgânico; 3-Lixo inorgânico
A Terceira contém 2 variaveis(Existe uma tabela no banco para elas):
1-Lote escriturado; Lote não escriturado.

Como montaria uma SQL: O usuario pode selecionar uma variavel de uma listbox ou varias variaveis de varias varias listbox.

Espero não ter sido confuso, desde já agradeço.


00seth

00seth

Curtidas 0

Respostas

Rafael Santana

Rafael Santana

06/01/2005

bom dia, amigo

qual banco de dados que vc usa? Quais os componentes de acesso TTable ou TQuery... responda isso pois assim fica melhor pra eu te ajudar...


GOSTEI 0
Lucas Silva

Lucas Silva

06/01/2005

Colega,
Seu título, não está de acordo com as regras de conduta.

Leia as regras antes de postar!


GOSTEI 0
00seth

00seth

06/01/2005

Desculpe-me pelo título Lucas,
Estou os Componentes da Paleta ADO.


GOSTEI 0
00seth

00seth

06/01/2005

Me esqueci de lhe dizer estou usando a Access mesmo


GOSTEI 0
Rafael Santana

Rafael Santana

06/01/2005

amigo, me desculpe, mas com esses componentes eu nunca trabalhei...
infelizmente eu não vou poder te ajudar...

vc não tem interesse em aprender um banco de dados mais sofisticado? eu só mexia com paradox aí resolvi mudar para interbase, foi um sucesso...rsrsr... uso componentes BDE e IBX


GOSTEI 0
Vprates

Vprates

06/01/2005

Kra tenta isso aqui:

Var StrSQL, Field : String;
Cont : Integer;
Begin
StrSQL := ´SELECT CAMPOS FROM TABELA1, TABELA2, TABELA3´;

Field := ´´´I´´´ ;
for Cont:=0 to (Listbox.items.Count - 1) do
begin
If Listbox.Selected[Cont] then
field := field + ´, ´ + QuotedStr(Listbox.items.Strings[VlCont]);
End;

StrSQL := StrSQL + ´ WHERE CAMPO IN (´ + Field + ´)´;

ADOQuery.close;
ADOQuery.SQL.Text := StrSQL;
ADOQuery.open;
End;

qualquer duvida manda uma MP


GOSTEI 0
00seth

00seth

06/01/2005

Obrigado.

Funciona mas ele seleciona todas que estão no intervalo de escolha,
mas eu preciso do seguinte:

Caso o usuario escolha a opçõe 1-Tijolo;
Quero que lista todas as casas de tijolos

Mas caso o usuario escolha as opções 1-Tijolo; 2-Adobe
Quero que liste todas as casas de tijolos e de adobe (AND)

preciso que a Query busque somente as casas de tijolos e adobe ao mesmo tempo, e não as casas que são de tijolo ou adobe

Grato!


GOSTEI 0
00seth

00seth

06/01/2005

up!


GOSTEI 0
Sydhnney

Sydhnney

06/01/2005

essa é a lógica o resto é com vc

with ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add(´select * from tabela where campoID like ¬´);
if ComboBox1.Text´´ then //diferente vazio
begin
Sql.Add(´and campo2 = ´tijolo´´)
end;

if ComboBox2.Text´´ then //diferente vazio
begin
Sql.Add(´and campo2 = ´adobe´´)
end;

if ComboBox3.Text´´ then //diferente vazio
begin
Sql.Add(´and campo3 = ´taipa´´)
end;

Sql.Add(´order by campo asc´)
open;
end;


GOSTEI 0
POSTAR