Consulta Parametrizada no DELPHI 2005
Galera, Estou tentando realizar uma consulta com vários parâmetros, por exemplo uma tabela de funcionários onde tenho uma página com vários campos da tabela, se o usuário informar um ou mais campos tenho que alterar minha SQL colocando os ANDs relacionados aos campos que contem algum tipo de informação... ou seja estou querendo editar a minha SQL igual posso fazer nas Querys (QryFuncionario.SQL.Add(‘...’)).
Como posso fazer isso utilizando o Delphi 2005?
P.s: não consegui fazer isso utilizando BdpDataAdapter, existe outro componente que posso adicionar linhas na SQL ou alguma dica para meu problema?
Agradeço..
Abraços...
Alexandre Máximo
Como posso fazer isso utilizando o Delphi 2005?
P.s: não consegui fazer isso utilizando BdpDataAdapter, existe outro componente que posso adicionar linhas na SQL ou alguma dica para meu problema?
Agradeço..
Abraços...
Alexandre Máximo
Alexandre.maximo
Curtidas 0
Respostas
Rjun
21/09/2005
Voce da usando BDPConnection e BDPCommand? Qual banco de dados você esta usando?
Eu uso SQL Server e utilizo o SQLConnection e SQLCommand. Você pode passar seu comando SQL em uma string pelo SQLCommand.
Eu uso SQL Server e utilizo o SQLConnection e SQLCommand. Você pode passar seu comando SQL em uma string pelo SQLCommand.
GOSTEI 0
Alexandre.maximo
21/09/2005
banco: Interbase
estou usando o BDPConnection e o BdpDataAdapter... ainda nao utilizei o BDPCommand...
P.s: ok.. monto a minha SQL na mao e como fica os parametros? pois vai depender da seleção, pode ser 1 ou 10 parametros... como trabalho com isso com esse componente?
estou usando o BDPConnection e o BdpDataAdapter... ainda nao utilizei o BDPCommand...
P.s: ok.. monto a minha SQL na mao e como fica os parametros? pois vai depender da seleção, pode ser 1 ou 10 parametros... como trabalho com isso com esse componente?
GOSTEI 0
Rjun
21/09/2005
Então. Você tem que montar seu SQL de acordo com os parâmetros que você irá processar. Eu não entendi muito bem o que você quer fazer. Se você puder explicar mais detalhadamente acho que poderia te ajudar mais.
GOSTEI 0
Alexandre.maximo
21/09/2005
Obrigado Rjun, resolvi o problema da seguinte forma...
utilizei BDPConnection e o BdpDataAdapter. Criei uma variavel String e montei a minha consulta SQL dentro dessa varivel, dependendo das informacoes contidas no formulario no final passei a Varialvel String para o CommandText do BdpDataAdapter, Ativei e funcionou perfeitamente..
Dessa maneira vai dar um pouco mais de trabalho pq tenho que fazer verificações de WHERE e AND na montagem da SQL...
obrigado...
abraços...
utilizei BDPConnection e o BdpDataAdapter. Criei uma variavel String e montei a minha consulta SQL dentro dessa varivel, dependendo das informacoes contidas no formulario no final passei a Varialvel String para o CommandText do BdpDataAdapter, Ativei e funcionou perfeitamente..
Dessa maneira vai dar um pouco mais de trabalho pq tenho que fazer verificações de WHERE e AND na montagem da SQL...
obrigado...
abraços...
GOSTEI 0
Rjun
21/09/2005
Dessa maneira vai dar um pouco mais de trabalho pq tenho que fazer verificações de WHERE e AND na montagem da SQL...
Mas acho que não tem outro jeito...
GOSTEI 0
Paulo Trajano
21/09/2005
Alexandre, tente assim:
No final da sua instrução sql digite normalmente ´WHERE CAMPO LIKE ?´
Ao dar OK na caixa de diálogo aparecerá um erro, dê ok e crie seu parâmetro na mão (que pena que não é como em win32). Vá no seu BDPDataAdapter, propriedade SelectCommand, Parameters(Colection). Crie seu parâmetro, dando seu nome e configurando o subtype para String.
O código é o seguinte:
É isso.
Espero ter ajudado.
No final da sua instrução sql digite normalmente ´WHERE CAMPO LIKE ?´
Ao dar OK na caixa de diálogo aparecerá um erro, dê ok e crie seu parâmetro na mão (que pena que não é como em win32). Vá no seu BDPDataAdapter, propriedade SelectCommand, Parameters(Colection). Crie seu parâmetro, dando seu nome e configurando o subtype para String.
O código é o seguinte:
BdpDataAdapter1.Active:= False; BdpDataAdapter1.SelectCommand.Parameters[´Parametro´].Value:= TextBox1.Text + ´¬´; BdpDataAdapter1.Active:= True;
É isso.
Espero ter ajudado.
GOSTEI 0