Fórum Consulta...em SQL #371130

10/06/2009

0

Olá, sou nova por aki..e gostaria de uam ajuda com meu programa

Tenho o seguinte código:

procedure TPesquisa.BitBtn1Click(Sender: TObject); Var sql, vDesc: string; begin sql := ´SELECT PROD_COD, PROD_NM´+ ´FORN_COD, FORN_EMP´+ ´FROM CAD_PRODUTOS INNER JOIN CAD_FORNECEDORES ON´+ ´(PROD_COD_FORN=FORN_COD)´+ ´WHERE 1=1´; vDesc := trim(EditDesc.Text); if(vDesc <> ´´)Then sql :=sql +´and(PROD_NM like:PROD_NM)´ ; if(VarIsNull(dbFornecedor.keyvalue)=false)and(VarIsEmpty(dbFornecedor.keyvalue) =false)Then sql :=sql +´and(PROD_COD_FORN=:FORNECEDOR)´ ; DtmProduto.cdsProduto.Close; DtmProduto.cdsProduto.CommandText:=sql; if(vDesc <>´´)Then DtmProduto.cdsProduto.Params.ParamByName(´PROD_NM´).AsString :=´¬´+vDesc+´¬´ ; if(VarIsNull(dbFornecedor.KeyValue)=false)Then DtmProduto.cdsProduto.Params.ParamByName(´FORNECEDOR´).AsInteger :=dbFornecedor.KeyValue ; end;

O problema é que, a cada vez que faço a busa, todos os campos ficam em branco...

Se alguém puder me ajudar, desde já fico grata :D


Juli

Juli

Responder

Posts

10/06/2009

Danielrsanches

SELECT PROD_COD, PROD_NM
FORN_COD, FORN_EMP
FROM CAD_PRODUTOS INNER JOIN CAD_FORNECEDORES ON
(PROD_COD_FORN=FORN_COD)
[color=red:b6d6235cf3]WHERE 1=1[/color:b6d6235cf3]

esse where sempre vai ser Verdadeiro ....


Responder

Gostei + 0

10/06/2009

Juli

SELECT PROD_COD, PROD_NM FORN_COD, FORN_EMP FROM CAD_PRODUTOS INNER JOIN CAD_FORNECEDORES ON (PROD_COD_FORN=FORN_COD) [color=red:123b04e9de]WHERE 1=1[/color:123b04e9de] esse where sempre vai ser Verdadeiro ....


Mais então, como eu faço???

É o único código q eu tenho... :(


Responder

Gostei + 0

10/06/2009

Danielrsanches

SELECT PROD_COD, PROD_NM 
FORN_COD, FORN_EMP 
FROM CAD_PRODUTOS INNER JOIN CAD_FORNECEDORES ON 
(PROD_COD_FORN=FORN_COD) 


com o código acima vc vai ter todos os registros ...

vc utilizando a cláusula where, vc filtrará os dados conforme quiser, porém a sintaxe seria como esta:

where NOME_CAMPO = CONDICAO ...

onde NOME_CAMPO é o nome do campo da tabela que deseja comparar ...
CONDICAO é o valor que deseja filtrar ...


qualquer dúvida post novamente ...

abraço !!


Responder

Gostei + 0

10/06/2009

Juli

SELECT PROD_COD, PROD_NM 
FORN_COD, FORN_EMP 
FROM CAD_PRODUTOS INNER JOIN CAD_FORNECEDORES ON 
(PROD_COD_FORN=FORN_COD) 
com o código acima vc vai ter todos os registros ... vc utilizando a cláusula where, vc filtrará os dados conforme quiser, porém a sintaxe seria como esta: where NOME_CAMPO = CONDICAO ... onde NOME_CAMPO é o nome do campo da tabela que deseja comparar ... CONDICAO é o valor que deseja filtrar ... qualquer dúvida post novamente ... abraço !!


Assim, até ai td bem...

O problema é q essa consulta é por semelhança

Então ao digitar algum nome e selecionar o fornecedor na dblookupcombobox, a pesquisa trará todos os valores semelhantes àquele q o usuario digitou

No caso, qual seria então minha condição para filtrar???
(Esse código foi meu professor que passou, e ele que q todos o usem!!)

Desde já agradeço a ajuda!! :D


Responder

Gostei + 0

10/06/2009

Danielrsanches

por exemplo ...

se vc colocar esse código no Click de um botao:

query.sql.text:= 
´SELECT PROD_COD, PROD_NM 
FORN_COD, FORN_EMP 
FROM CAD_PRODUTOS INNER JOIN CAD_FORNECEDORES ON 
(PROD_COD_FORN=FORN_COD)
where FORN_COD = :PARAM´;

query.parambyname(´PARAM´).value:= DBLookupComboBox1.Text;
query.open;


no caso acima vc vai filtrar todos os dados onde FORN_COD sejam iguais aos selecionados pelo usuário no combobox ...


se tiver mais dúvidas, especifique melhor, postando o código que já fez ...

abraço !!


Responder

Gostei + 0

11/06/2009

Juli

Muito obrigada pela ajuda :D ...

Mais eu ainda continuo encontrando o mesmo problema...

Todos os dados somem quando, o usuário após digitar o valor, clica no botão para pesquisar...


Responder

Gostei + 0

11/06/2009

Juli

Só mais uma coisa..no código que vc passou PARAM, seria oq??

Tentei usando essa pAlavra msm, depois usando uma variável, e o programa gera um erro, dizendo que o parametro não foi encontrado...


Responder

Gostei + 0

12/06/2009

Edilcimar

Where Oquevocequer = :Parametro
Este parâmetro é uma variável onde você aloca para a mesma um valor desejado, o o Oquevocequer é o nome do campo da query


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar