Consulta...em SQL
Olá, sou nova por aki..e gostaria de uam ajuda com meu programa
Tenho o seguinte código:
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
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
Curtidas 0
Respostas
Danielrsanches
10/06/2009
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 ....
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 ....
GOSTEI 0
Juli
10/06/2009
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... :(
GOSTEI 0
Danielrsanches
10/06/2009
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 !!
GOSTEI 0
Juli
10/06/2009
SELECT PROD_COD, PROD_NM FORN_COD, FORN_EMP FROM CAD_PRODUTOS INNER JOIN CAD_FORNECEDORES ON (PROD_COD_FORN=FORN_COD)
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
GOSTEI 0
Danielrsanches
10/06/2009
por exemplo ...
se vc colocar esse código no Click de um botao:
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 !!
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 !!
GOSTEI 0
Juli
10/06/2009
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...
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...
GOSTEI 0
Juli
10/06/2009
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...
Tentei usando essa pAlavra msm, depois usando uma variável, e o programa gera um erro, dizendo que o parametro não foi encontrado...
GOSTEI 0
Edilcimar
10/06/2009
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
Este parâmetro é uma variável onde você aloca para a mesma um valor desejado, o o Oquevocequer é o nome do campo da query
GOSTEI 0