SQLQUERY
Tenho um banco de dados em paradox.e estou comecando a usar o sql.tentei fazer uma consulta com o sql query mas nao esta dando certo.
quero que apareça só os nomes que contenham MARIA por exemplo em um DBGRID,consultando pelo edit (Edit1.text)
a rotina que fiz foi essa dentro do editchange, e no sql query tstrings somente coloque SELECT * FROM CLIENTES
A TABELA É TBCLIENTES E O DATASOURCE É DSCLIENTES.
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´Select * FROM CLIENTES´);
Query1.SQL.Add(´where NOME like ´´+Edit1.Text+´¬´´);
Query1.Open;
GRATO
quero que apareça só os nomes que contenham MARIA por exemplo em um DBGRID,consultando pelo edit (Edit1.text)
a rotina que fiz foi essa dentro do editchange, e no sql query tstrings somente coloque SELECT * FROM CLIENTES
A TABELA É TBCLIENTES E O DATASOURCE É DSCLIENTES.
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(´Select * FROM CLIENTES´);
Query1.SQL.Add(´where NOME like ´´+Edit1.Text+´¬´´);
Query1.Open;
GRATO
Andsantos
Curtidas 0
Respostas
Leufmt
17/07/2009
Dentro da Query deixe a consulta:
Select * FROM CLIENTES
where NOME like :c
No evento change do edite coloque:
Query1.Close;
Query1.Params[0].Value := (´¬´ + Edit1.Text + ´¬´);
Query1.Open;
Select * FROM CLIENTES
where NOME like :c
No evento change do edite coloque:
Query1.Close;
Query1.Params[0].Value := (´¬´ + Edit1.Text + ´¬´);
Query1.Open;
GOSTEI 0
Andsantos
17/07/2009
SÓ UMA DUVIDA ESSE ´c´ SERIA O PARAMETRO ?
OBRIGADO PELA AJUDA.VALEU!!!
OBRIGADO PELA AJUDA.VALEU!!!
GOSTEI 0
Leufmt
17/07/2009
o c é um parametro.
GOSTEI 0
Andsantos
17/07/2009
ENTAO, QUANDO VOU ATIVAR O SQLQUERY DA UMA MENSAGEM TABLE1 FIELD ´C´ NOT FOUND. PRECISO APONTAR O DATASOURCE TB?
GRATO
GRATO
GOSTEI 0
Leufmt
17/07/2009
esta com os dois pontos antes.
assim :c
assim :c
GOSTEI 0
Andsantos
17/07/2009
ENTAO, O ERRO CONTINUA! QUANDO VOU ATIVAR O SQLQUERY APARECE A MENAGEM TABLE : FIELD ´C´ NOT FOUND.
GRATO
GRATO
GOSTEI 0
Leufmt
17/07/2009
se tu for ativar em modo de projeto dá erro mesmo. agora se for quando o sistema estiver sendo executado ai é estranho
GOSTEI 0
Andsantos
17/07/2009
E ISSO MESMO, MAS QUANDO COLOCO NO EDIT POR EXEMPLO MARIA ELE NAO RETORNA NO DBGRID ESSES REGISTROS.
GRATO
GRATO
GOSTEI 0
Leufmt
17/07/2009
tem que ver como esta no banco esta informação. Pois se no banco estiver tudo maiusculo e tu estiver mandando para o parametro em minusculo, ai realmente não deve retornar nada
GOSTEI 0
Andsantos
17/07/2009
DESDE JA OBRIGADO PELA PACIENCIA!!!!!
ENTAO NAO ESTA DANDO CERTO MESMO.COLOCO PARA PESQUISAR PARTE DO NOME NO CASO ANDRE ,MAS O DBGRID NAO RETORNA NADA.ESTOU DIGITANDO TUDO MAIUSCULO.NAO SERIA O CASO DE COLOCAR NENHUM BUTTON PARA REALIZAR ESSA CONSULTA? O EDITCHANGE JA FAZ ISSO?NAO SEI ONDE ESTA O ERRO?
ENTAO NAO ESTA DANDO CERTO MESMO.COLOCO PARA PESQUISAR PARTE DO NOME NO CASO ANDRE ,MAS O DBGRID NAO RETORNA NADA.ESTOU DIGITANDO TUDO MAIUSCULO.NAO SERIA O CASO DE COLOCAR NENHUM BUTTON PARA REALIZAR ESSA CONSULTA? O EDITCHANGE JA FAZ ISSO?NAO SEI ONDE ESTA O ERRO?
GOSTEI 0
Leufmt
17/07/2009
não precisa de botão. no evento change já faz tudo
tu não esta esquecendo de dar um open na tabela?
tu não esta esquecendo de dar um open na tabela?
GOSTEI 0
Martins
17/07/2009
DESDE JA OBRIGADO PELA PACIENCIA!!!!!
ENTAO NAO ESTA DANDO CERTO MESMO.COLOCO PARA PESQUISAR PARTE DO NOME NO CASO ANDRE ,MAS O DBGRID NAO RETORNA NADA.ESTOU DIGITANDO TUDO MAIUSCULO.NAO SERIA O CASO DE COLOCAR NENHUM BUTTON PARA REALIZAR ESSA CONSULTA? O EDITCHANGE JA FAZ ISSO?NAO SEI ONDE ESTA O ERRO?
Seguinte, vou te dá uma dica que eu repassei para o Marcelo, um programado colega meu. Só que para vc já vai mais detalhado.
Tente como está abaixo.
Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(´Select * FROM CLIENTES´); Query1.SQL.Add(´Where NOME like :pNome´); Query1.ParamByName(´pNOme´).AsString := Edit1.Text+´¬´; Query1.Open;
GOSTEI 0
Andsantos
17/07/2009
ENTAO CARA,VALEU PELA DICA.O QUE ACONTECE , O SISTEMA NAO DA ERRO, MAS O DBGRID NAO RETORNA NENHUM VALOR DIGITADO.
GRATO
GRATO
GOSTEI 0
Martins
17/07/2009
ENTAO CARA,VALEU PELA DICA.O QUE ACONTECE , O SISTEMA NAO DA ERRO, MAS O DBGRID NAO RETORNA NENHUM VALOR DIGITADO.
GRATO
Em qual evento de qual componente vc está escrevendo o código?
Post o seu código para vermos.
GOSTEI 0
Andsantos
17/07/2009
ENTAO. VOU RESUMIR.TENHO UM CADASTRO CLIENTES TABELA DE NOME CLIENTES.DB FEITO EM PARADOX
COM UM DBGRID.COLOQUEI UM EDIT TEXT PARA FAZER A CONSULTA ATRAVES DO SQLQUERY.O SISTEMA NAO DA ERRO MAS A CONSULTA EM SI NAO RETORNA NENHUM RESULTADO NO DBGRID.
O SQLQUERY CONFIGUREI ASSIM:
NAME: QUERY1
SQL STRINGS: SELECT * CLIENTES WHERE NOME LIKE:PNOME
NO EDITCHANGE COLOQUEI O CODIGO QUE VC ME PASSOU.MAS NAO CONSEGUI RETORNAR NENHUM VALOR.
GRATO
COM UM DBGRID.COLOQUEI UM EDIT TEXT PARA FAZER A CONSULTA ATRAVES DO SQLQUERY.O SISTEMA NAO DA ERRO MAS A CONSULTA EM SI NAO RETORNA NENHUM RESULTADO NO DBGRID.
O SQLQUERY CONFIGUREI ASSIM:
NAME: QUERY1
SQL STRINGS: SELECT * CLIENTES WHERE NOME LIKE:PNOME
NO EDITCHANGE COLOQUEI O CODIGO QUE VC ME PASSOU.MAS NAO CONSEGUI RETORNAR NENHUM VALOR.
GRATO
GOSTEI 0
Andsantos
17/07/2009
ENTAO. VOU RESUMIR.TENHO UM CADASTRO CLIENTES TABELA DE NOME CLIENTES.DB FEITO EM PARADOX
COM UM DBGRID.COLOQUEI UM EDIT TEXT PARA FAZER A CONSULTA ATRAVES DO SQLQUERY.O SISTEMA NAO DA ERRO MAS A CONSULTA EM SI NAO RETORNA NENHUM RESULTADO NO DBGRID.
O SQLQUERY CONFIGUREI ASSIM:
NAME: QUERY1
SQL STRINGS: SELECT * CLIENTES WHERE NOME LIKE:PNOME
NO EDITCHANGE COLOQUEI O CODIGO QUE VC ME PASSOU.MAS NAO CONSEGUI RETORNAR NENHUM VALOR.
GRATO
COM UM DBGRID.COLOQUEI UM EDIT TEXT PARA FAZER A CONSULTA ATRAVES DO SQLQUERY.O SISTEMA NAO DA ERRO MAS A CONSULTA EM SI NAO RETORNA NENHUM RESULTADO NO DBGRID.
O SQLQUERY CONFIGUREI ASSIM:
NAME: QUERY1
SQL STRINGS: SELECT * CLIENTES WHERE NOME LIKE:PNOME
NO EDITCHANGE COLOQUEI O CODIGO QUE VC ME PASSOU.MAS NAO CONSEGUI RETORNAR NENHUM VALOR.
GRATO
GOSTEI 0
Martins
17/07/2009
ENTAO. VOU RESUMIR.TENHO UM CADASTRO CLIENTES TABELA DE NOME CLIENTES.DB FEITO EM PARADOX
COM UM DBGRID.COLOQUEI UM EDIT TEXT PARA FAZER A CONSULTA ATRAVES DO SQLQUERY.O SISTEMA NAO DA ERRO MAS A CONSULTA EM SI NAO RETORNA NENHUM RESULTADO NO DBGRID.
O SQLQUERY CONFIGUREI ASSIM:
NAME: QUERY1
SQL STRINGS: SELECT * CLIENTES WHERE NOME LIKE:PNOME
NO EDITCHANGE COLOQUEI O CODIGO QUE VC ME PASSOU.MAS NAO CONSEGUI RETORNAR NENHUM VALOR.
GRATO
Certo
[color=blue:dae867b3be]TEdit
TSqlQuery
TDataSource
TDBGrid[/color:dae867b3be]
DataSource lincado ao SqlQuery certo?
DBGrid -> DataSource
Instrução no SQLQuery:
Select * from CLIENTES
No evento OnChange do Edit.
Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(´Select * FROM CLIENTES ´); Query1.SQL.Add(´Where NOME like :pNome´); Query1.ParamByName(´pNome´).AsString := Edit1.Text+´¬´; Query1.Open;
Veja se está realmente da forma que te descrevo, se mesmo assim não funcionar, verei como posso disponibilizar um exemplo com com código fonte.
Boa Sorte!
GOSTEI 0
Andsantos
17/07/2009
CARA, DEU CERTO.NAO TINHA COLOCADO NO FORM O DATASOURCE PARA O SQLQUERY SO ESTAVA COM O DATASOURCE DA TABELA.
A UNICA DUVIDA E A SEGUINTE:
O DATASOURCE DO DBGRID É O DA TABELA OU É O DO SQLQUERY?
PORQUE SE EU COLOCAR O DS DO SQLQUERY O DBGRID NAO APARECE OS CAMPOS DA TABELA MAS A CONSULTA RETORNA O VALOR CORRETO, E SE EU COLOCAR O DS DA TABELA OS CAMPOS APARECEM MAS A CONSULTA NAO RETORNA NENHUM VALOR.
MAS MESMO ASSIM , RESOLVEU MEU PROBLEMA DO SQLQUERY.OBRIGADO PELAS DICAS.VALEU!!!
A UNICA DUVIDA E A SEGUINTE:
O DATASOURCE DO DBGRID É O DA TABELA OU É O DO SQLQUERY?
PORQUE SE EU COLOCAR O DS DO SQLQUERY O DBGRID NAO APARECE OS CAMPOS DA TABELA MAS A CONSULTA RETORNA O VALOR CORRETO, E SE EU COLOCAR O DS DA TABELA OS CAMPOS APARECEM MAS A CONSULTA NAO RETORNA NENHUM VALOR.
MAS MESMO ASSIM , RESOLVEU MEU PROBLEMA DO SQLQUERY.OBRIGADO PELAS DICAS.VALEU!!!
GOSTEI 0
Martins
17/07/2009
CARA, DEU CERTO.NAO TINHA COLOCADO NO FORM O DATASOURCE PARA O SQLQUERY SO ESTAVA COM O DATASOURCE DA TABELA.
A UNICA DUVIDA E A SEGUINTE:
O DATASOURCE DO DBGRID É O DA TABELA OU É O DO SQLQUERY?
PORQUE SE EU COLOCAR O DS DO SQLQUERY O DBGRID NAO APARECE OS CAMPOS DA TABELA MAS A CONSULTA RETORNA O VALOR CORRETO, E SE EU COLOCAR O DS DA TABELA OS CAMPOS APARECEM MAS A CONSULTA NAO RETORNA NENHUM VALOR.
MAS MESMO ASSIM , RESOLVEU MEU PROBLEMA DO SQLQUERY.OBRIGADO PELAS DICAS.VALEU!!!
Percebo que vc não tem muita afinidade com Delphi ou desenvolvimento a longo tempo.
Seguinte, aprenda que o DBGrid é um espelho do seu DataSet (Table ou SQLQuery), então ao vincular o seu DBGrid ao Ds do SQLQuery vc terá como retorno os campos q estiverem no SQLQuery, o mesmo acontecerá com Table, por isso, se vc pretende continuar com Table, procure usar o Locate, mas, vc pode continuar com SQLQuery e é até bom que o utilize em suas consultas, desde que vc insira na instrução todos os campos que desejar visualizar. OK!
Então mãos na massa, e vá condificando.
Boa sorte.
GOSTEI 0
Elip2008
17/07/2009
ADICIONA UM [b:8b55952eb8]TDATASOURCE[/b:8b55952eb8], EM SUA PROPRIEDADE [b:8b55952eb8]DATASET [/b:8b55952eb8]LIGUE AO [b:8b55952eb8]TQUERY[/b:8b55952eb8] CRIADO. AGORA NO [b:8b55952eb8]DBGRID[/b:8b55952eb8] EM SUA PROPRIEDADE [b:8b55952eb8]DATASOURCE[/b:8b55952eb8] SELECIONE O [b:8b55952eb8]DATASOURCE[/b:8b55952eb8] CRIADO. ACHO QUE COM ISSO VC CONSEGUE RESOLVER O SEU PROBLEMA.
GOSTEI 0