Re: [delphi-br] Re: Consulta SQL
Marcio me manda o projeto meu e-mail é [EMAIL PROTECTED] para que eu possa analizar e resolver o seu problema. Abraço Rubens Antunes --- Em seg, 8/12/08, marcio <[EMAIL PROTECTED]> escreveu: De: marcio <[EMAIL PROTECTED]> Assunto: [delphi-br] Re: Consulta SQL Para: delphi-br@yahoogrupos.com.br Data: Segunda-feira, 8 de Dezembro de 2008, 19:42 Assim como a consulta notei outro erro ele não está gravando os dados apesar d usar uma procedure para transcreve-los p a tbl: unit UCadCli; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls, ExtCtrls, DBCtrls, ComCtrls, Grids, DBGrids, Mask, DB; type TFrm_CadCli = class(TForm) Panel1: TPanel; Label1: TLabel; SpeedButton1: TSpeedButton; Panel2: TPanel; SpdAnterior: TSpeedButton; SpdProximo: TSpeedButton; SpdUltimo: TSpeedButton; SpdNovo: TSpeedButton; SpdExcluir: TSpeedButton; SpdAlterar: TSpeedButton; SpdSalvar: TSpeedButton; SpdCancelar: TSpeedButton; SpdAtualizar: TSpeedButton; SpdPrimeiro: TSpeedButton; SpdRelatorio: TSpeedButton; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; Label2: TLabel; dbeCodigo: TDBEdit; Label3: TLabel; dbeNome: TDBEdit; Label4: TLabel; dbeCPF: TDBEdit; Label5: TLabel; dbeRG: TDBEdit; Label6: TLabel; dbeEndereco: TDBEdit; Label7: TLabel; dbeCidade: TDBEdit; Label8: TLabel; dbeUF: TDBEdit; Label9: TLabel; dbeCEP: TDBEdit; Label10: TLabel; dbeFone: TDBEdit; Label11: TLabel; dbeCelular: TDBEdit; Label12: TLabel; dbeEmail: TDBEdit; DBGrid1: TDBGrid; GroupBox1: TGroupBox; Label13: TLabel; edtPesquisaNome: TEdit; SpeedButton13: TSpeedButton; DBGrid2: TDBGrid; DsQryClientes: TDataSource; SpeedButton2: TSpeedButton; procedure SpeedButton1Click( Sender: TObject); procedure SpdPrimeiroClick( Sender: TObject); procedure SpdAnteriorClick( Sender: TObject); procedure SpdProximoClick( Sender: TObject); procedure SpdUltimoClick( Sender: TObject); procedure SpdNovoClick( Sender: TObject); procedure SpdExcluirClick( Sender: TObject); procedure SpdAlterarClick( Sender: TObject); procedure SpdSalvarClick( Sender: TObject); procedure SpdCancelarClick( Sender: TObject); procedure SpdAtualizarClick( Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction) ; procedure FormShow(Sender: TObject); procedure SpeedButton13Click( Sender: TObject); procedure SpeedButton2Click( Sender: TObject); private { Private declarations } public { Public declarations } end; var Frm_CadCli: TFrm_CadCli; procedure LimparCampos( ); implementation uses UDados, UCadastros; procedure LimparCampos( ); Begin with Frm_CadCli do begin dbeNome.Text := ''; dbeCPF.Text := ''; dbeRG.Text := ''; dbeEndereco. Text := ''; dbeCidade.Text := ''; dbeUF.Text := ''; dbeCEP.Text := ''; dbeFone.Text := ''; dbeCelular.Text := ''; dbeEmail.Text := ''; end; end; {$R *.dfm} procedure TFrm_CadCli. SpeedButton1Clic k(Sender: TObject); begin Close; end; procedure TFrm_CadCli. SpdPrimeiroClick (Sender: TObject); begin Dm_Dados.Tb_ Clientes. First; end; procedure TFrm_CadCli. SpdAnteriorClick (Sender: TObject); begin Dm_Dados.Tb_ Clientes. Prior; end; procedure TFrm_CadCli. SpdProximoClick( Sender: TObject); begin Dm_Dados.Tb_ Clientes. Next; end; procedure TFrm_CadCli. SpdUltimoClick( Sender: TObject); begin Dm_Dados.Tb_ Clientes. Last; end; procedure TFrm_CadCli. SpdNovoClick( Sender: TObject); begin Dm_Dados.Tb_ Clientes. Append; dbeNome.Text := ''; dbeCPF.Text := ''; dbeRG.Text := ''; dbeEndereco. Text := ''; dbeCidade.Text := ''; dbeUF.Text := ''; dbeCEP.Text := ''; dbeFone.Text := ''; dbeCelular.Text := ''; dbeEmail.Text := ''; dbeNome.SetFocus; end; procedure TFrm_CadCli. SpdExcluirClick( Sender: TObject); begin Dm_Dados.Tb_ Clientes. Delete; end; procedure TFrm_CadCli. SpdAlterarClick( Sender: TObject); begin Dm_Dados.Tb_ Clientes. Edit; end; procedure TFrm_CadCli. SpdSalvarClick( Sender: TObject); begin Dm_Dados.Tb_ Clientes. Append; Dm_Dados.Tb_ Clientes. Edit; //Tranferindo os dados //Dm_Dados.Tb_ ClientesCodigo. Text := dbeCodigo.Text; Dm_Dados.Tb_ ClientesNome. Text := dbeNome.Text; Dm_Dados.Tb_ ClientesCPF. Text := dbeCPF.Text; Dm_Dados.Tb_ ClientesRG. Text := dbeRG.Text; Dm_Dados.Tb_ ClientesEndereco .Text := dbeEndereco. Text; Dm_Dados.Tb_ ClientesCidade. Text := dbeCidade.Text; Dm_Dados.Tb_ ClientesUF. Text := dbeUF.Text; Dm_Dados.Tb_ ClientesCEP. Text := dbeCEP.Text; Dm_Dados.Tb_ ClientesFone. Text := dbeFone.Text; Dm_Dados.Tb_ ClientesCelular. Text := dbeCelular.Text; Dm_Dados.Tb_ ClientesEmail. Text := dbeEmail.Text; //Grava os Dados Dm_Dados.Tb_ Clientes. Post; ShowMessage( 'Dados Gravados com Sucesso!'); end; procedure TFrm_CadCli. SpdCancelarClick (Sender: TObject); begin Dm_Dados.Tb_ Clientes. Cancel; end; p
[delphi-br] Re: Consulta SQL
Assim como a consulta notei outro erro ele não está gravando os dados apesar d usar uma procedure para transcreve-los p a tbl: unit UCadCli; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls, ExtCtrls, DBCtrls, ComCtrls, Grids, DBGrids, Mask, DB; type TFrm_CadCli = class(TForm) Panel1: TPanel; Label1: TLabel; SpeedButton1: TSpeedButton; Panel2: TPanel; SpdAnterior: TSpeedButton; SpdProximo: TSpeedButton; SpdUltimo: TSpeedButton; SpdNovo: TSpeedButton; SpdExcluir: TSpeedButton; SpdAlterar: TSpeedButton; SpdSalvar: TSpeedButton; SpdCancelar: TSpeedButton; SpdAtualizar: TSpeedButton; SpdPrimeiro: TSpeedButton; SpdRelatorio: TSpeedButton; PageControl1: TPageControl; TabSheet1: TTabSheet; TabSheet2: TTabSheet; Label2: TLabel; dbeCodigo: TDBEdit; Label3: TLabel; dbeNome: TDBEdit; Label4: TLabel; dbeCPF: TDBEdit; Label5: TLabel; dbeRG: TDBEdit; Label6: TLabel; dbeEndereco: TDBEdit; Label7: TLabel; dbeCidade: TDBEdit; Label8: TLabel; dbeUF: TDBEdit; Label9: TLabel; dbeCEP: TDBEdit; Label10: TLabel; dbeFone: TDBEdit; Label11: TLabel; dbeCelular: TDBEdit; Label12: TLabel; dbeEmail: TDBEdit; DBGrid1: TDBGrid; GroupBox1: TGroupBox; Label13: TLabel; edtPesquisaNome: TEdit; SpeedButton13: TSpeedButton; DBGrid2: TDBGrid; DsQryClientes: TDataSource; SpeedButton2: TSpeedButton; procedure SpeedButton1Click(Sender: TObject); procedure SpdPrimeiroClick(Sender: TObject); procedure SpdAnteriorClick(Sender: TObject); procedure SpdProximoClick(Sender: TObject); procedure SpdUltimoClick(Sender: TObject); procedure SpdNovoClick(Sender: TObject); procedure SpdExcluirClick(Sender: TObject); procedure SpdAlterarClick(Sender: TObject); procedure SpdSalvarClick(Sender: TObject); procedure SpdCancelarClick(Sender: TObject); procedure SpdAtualizarClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormShow(Sender: TObject); procedure SpeedButton13Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Frm_CadCli: TFrm_CadCli; procedure LimparCampos(); implementation uses UDados, UCadastros; procedure LimparCampos(); Begin with Frm_CadCli do begin dbeNome.Text := ''; dbeCPF.Text := ''; dbeRG.Text:= ''; dbeEndereco.Text := ''; dbeCidade.Text := ''; dbeUF.Text := ''; dbeCEP.Text := ''; dbeFone.Text := ''; dbeCelular.Text := ''; dbeEmail.Text := ''; end; end; {$R *.dfm} procedure TFrm_CadCli.SpeedButton1Click(Sender: TObject); begin Close; end; procedure TFrm_CadCli.SpdPrimeiroClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.First; end; procedure TFrm_CadCli.SpdAnteriorClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.Prior; end; procedure TFrm_CadCli.SpdProximoClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.Next; end; procedure TFrm_CadCli.SpdUltimoClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.Last; end; procedure TFrm_CadCli.SpdNovoClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.Append; dbeNome.Text := ''; dbeCPF.Text := ''; dbeRG.Text:= ''; dbeEndereco.Text := ''; dbeCidade.Text := ''; dbeUF.Text := ''; dbeCEP.Text := ''; dbeFone.Text := ''; dbeCelular.Text := ''; dbeEmail.Text := ''; dbeNome.SetFocus; end; procedure TFrm_CadCli.SpdExcluirClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.Delete; end; procedure TFrm_CadCli.SpdAlterarClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.Edit; end; procedure TFrm_CadCli.SpdSalvarClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.Append; Dm_Dados.Tb_Clientes.Edit; //Tranferindo os dados //Dm_Dados.Tb_ClientesCodigo.Text := dbeCodigo.Text; Dm_Dados.Tb_ClientesNome.Text := dbeNome.Text; Dm_Dados.Tb_ClientesCPF.Text := dbeCPF.Text; Dm_Dados.Tb_ClientesRG.Text := dbeRG.Text; Dm_Dados.Tb_ClientesEndereco.Text := dbeEndereco.Text; Dm_Dados.Tb_ClientesCidade.Text := dbeCidade.Text; Dm_Dados.Tb_ClientesUF.Text := dbeUF.Text; Dm_Dados.Tb_ClientesCEP.Text := dbeCEP.Text; Dm_Dados.Tb_ClientesFone.Text := dbeFone.Text; Dm_Dados.Tb_ClientesCelular.Text := dbeCelular.Text; Dm_Dados.Tb_ClientesEmail.Text := dbeEmail.Text; //Grava os Dados Dm_Dados.Tb_Clientes.Post; ShowMessage('Dados Gravados com Sucesso!'); end; procedure TFrm_CadCli.SpdCancelarClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.Cancel; end; procedure TFrm_CadCli.SpdAtualizarClick(Sender: TObject); begin Dm_Dados.Tb_Clientes.Refresh; end; procedure TFrm_CadCli.FormClose(Sender: TObject; var Action: TCloseAction); begin Dm_Dados.Tb_Clientes.Close; end; procedure TFrm_CadCli.FormShow(Sender: TObject); begin D
Res: [delphi-br] Re: Consulta SQL
{...} Opa, Mas há o espaço e mesmo assim ele dá o erro já tentei assim como foi sugerido aki pelos amigos do grupo: . Dm_Dados.qryCliente s.SQL.Add( 'where Nome like %' + edtPesquisaNome. Text + '%'); . e mesmo assim ele dá erro e trava, pq? e como resolver? Grato {...} Pq isto --> Dm_Dados.qryCliente s.SQL.Add( 'where Nome like %' + edtPesquisaNome. Text + '%'); deveria estar assim --> Dm_Dados.qryCliente s.SQL.Add( 'where Nome like ''%' + edtPesquisaNome. Text + '%'''); []'s --- Att.: Willian Jhonnes L. dos Santos Analista/Desenvolvedor Object/Free Pascal [EMAIL PROTECTED] --- Seja livre. Use Linux. Grupo de Usuários GNU/Linux de São José dos Pinhais Linux user number 449753 --- Powered by Slackware Linux 12.0 Kernel 2.6.21.5-custom --- De: marcio <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Segunda-feira, 8 de Dezembro de 2008 17:11:09 Assunto: [delphi-br] Re: Consulta SQL > Marcio coloque um espaço depois de clientes... ex: > > Dm_Dados.Tb_ Clientes. Open; > Dm_Dados.qryCliente s.Close; > Dm_Dados.qryCliente s.SQL.Clear; > Dm_Dados.qryCliente s.SQL.Add( 'select * from clientes '); <--- Aki... verifique se da certo > Dm_Dados.qryCliente s.SQL.Add( 'where Nome= :nome'); > Dm_Dados.qryCliente s.ParamByName( 'nome').Value := edtPesquisaNome. Text; > Dm_Dados.qryCliente s.Open; Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Consulta SQL
> Marcio coloque um espaço depois de clientes... ex: > > Dm_Dados.Tb_Clientes.Open; > Dm_Dados.qryClientes.Close; > Dm_Dados.qryClientes.SQL.Clear; > Dm_Dados.qryClientes.SQL.Add('select * from clientes '); <--- Aki... verifique se da certo > Dm_Dados.qryClientes.SQL.Add('where Nome= :nome'); > Dm_Dados.qryClientes.ParamByName('nome').Value := edtPesquisaNome.Text; > Dm_Dados.qryClientes.Open; Opa, Mas há o espaço e mesmo assim ele dá o erro já tentei assim como foi sugerido aki pelos amigos do grupo: . Dm_Dados.qryClientes.SQL.Add('where Nome like %' + edtPesquisaNome.Text + '%'); . e mesmo assim ele dá erro e trava, pq? e como resolver? Grato
Re: [delphi-br] Re: Consulta SQL
Marcio coloque um espaço depois de clientes... ex: Dm_Dados.Tb_Clientes.Open; Dm_Dados.qryClientes.Close; Dm_Dados.qryClientes.SQL.Clear; Dm_Dados.qryClientes.SQL.Add('select * from clientes '); <--- Aki... verifique se da certo Dm_Dados.qryClientes.SQL.Add('where Nome= :nome'); Dm_Dados.qryClientes.ParamByName('nome').Value := edtPesquisaNome.Text; Dm_Dados.qryClientes.Open; From: marcio Sent: Monday, December 08, 2008 4:08 PM To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] Re: Consulta SQL --- Em delphi-br@yahoogrupos.com.br, "BandaLemuel" <[EMAIL PROTECTED]> escreveu > > Poste como esta o SQLda sua query.. WEsley > opa ela está assim: Dm_Dados.Tb_Clientes.Open; Dm_Dados.qryClientes.Close; Dm_Dados.qryClientes.SQL.Clear; Dm_Dados.qryClientes.SQL.Add('select * from clientes'); Dm_Dados.qryClientes.SQL.Add('where Nome= :nome'); Dm_Dados.qryClientes.ParamByName('nome').Value := edtPesquisaNome.Text; Dm_Dados.qryClientes.Open; __ Information from ESET NOD32 Antivirus, version of virus signature database 3672 (20081208) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Consulta SQL
--- Em delphi-br@yahoogrupos.com.br, "BandaLemuel" <[EMAIL PROTECTED]> escreveu > > Poste como esta o SQLda sua query.. WEsley > opa ela está assim: Dm_Dados.Tb_Clientes.Open; Dm_Dados.qryClientes.Close; Dm_Dados.qryClientes.SQL.Clear; Dm_Dados.qryClientes.SQL.Add('select * from clientes'); Dm_Dados.qryClientes.SQL.Add('where Nome= :nome'); Dm_Dados.qryClientes.ParamByName('nome').Value := edtPesquisaNome.Text; Dm_Dados.qryClientes.Open;
Re: [delphi-br] Re: Consulta SQL
uma vez assisti a um video da microsoft sobre segurança e foi dito q nunca devemos usar isso: where Nome like ''' + EdtPesquisaNome.text +'%'' pois dessa maneira alguem com conhecimento de SQL pode descobrir a senha dos usuarios do sistema. sempre devemos trabalhar com parametros. 2008/12/8 BandaLemuel <[EMAIL PROTECTED]> >Acho que ficaria melhor se colocasse LIKE ... porque assim mesmo > digitando parte apenas do nome ele acharia > > Ex: > > > Dm_Dados.Tb_Clientes.Open; > Dm_Dados.qryClientes.Close; > Dm_Dados.qryClientes.SQL.Clear; > Dm_Dados.qryClientes.SQL.Add('select * from clientes'); > Dm_Dados.qryClientes.SQL.Add('where Nome like ''' + EdtPesquisaNome.text > +'%'' ' ); > Dm_Dados.qryClientes.Open; > > Wesley > > From: marcio > Sent: Monday, December 08, 2008 11:52 AM > To: delphi-br@yahoogrupos.com.br > Subject: [delphi-br] Re: Consulta SQL > > Opa, > > Entaum deixa-me ver se entendi, para este caso basta criar um > paramentro e depois apontar a propriedade value para o text do > component certo? > . > > Dm_Dados.qryClientes.SQL.Add('where Nome= :nome'); > > Dm_Dados.qryClientes.parameters.parambyname('nome').value := > > edtPesquisaNome.text; > > Dm_Dados.qryClientes.Open; > > e se quiséssemos entre datas como ficaria? > > Grato > > __ Information from ESET NOD32 Antivirus, version of virus > signature database 3671 (20081208) __ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Felipe Govoni - Programador Fone 8472-8718 [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Consulta SQL
Poste como esta o SQLda sua query.. WEsley From: marcio Sent: Monday, December 08, 2008 1:30 PM To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] Re: Consulta SQL opa, eu fiz a ligação contudo qd mando fazer a consulta o programa trava e qd mando finalizá-lo ele gera a seguinte message: project SysVicius.exe raised exception class EDBEnginerError with message 'Invalid use of keyword. token : like line number: 2. Process stopped, use step or tun to continue pq dá este erro e como corrigir? Grato __ Information from ESET NOD32 Antivirus, version of virus signature database 3672 (20081208) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Consulta SQL
opa, eu fiz a ligação contudo qd mando fazer a consulta o programa trava e qd mando finalizá-lo ele gera a seguinte message: project SysVicius.exe raised exception class EDBEnginerError with message 'Invalid use of keyword. token : like line number: 2. Process stopped, use step or tun to continue pq dá este erro e como corrigir? Grato
Re: [delphi-br] Re: Consulta SQL
Para fazer a ligação.. é simples.. você precisa colocar no seu formulario um DataSoruce e colocar na propriedade dataset a query que vc esta usando para realizar a consulta e um DBGRID que deverá tem a propriedade datasource = ao dataSource q vc inseriu no formulario... Query > DataSource -> DBGRID... Wesley From: marcio Sent: Monday, December 08, 2008 12:32 PM To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] Re: Consulta SQL --- Em delphi-br@yahoogrupos.com.br, "BandaLemuel" <[EMAIL PROTECTED]> > Acho que ficaria melhor se colocasse LIKE ... porque assim mesmo digitando parte apenas do nome ele acharia > >> Dm_Dados.qryClientes.SQL.Add('where Nome like ''' + EdtPesquisaNome.text +'%'' ' ); > Dm_Dados.qryClientes.Open; > Wesley Mas e para mostrar o resultado no dbgrid, como posso fazer a ligação? __ Information from ESET NOD32 Antivirus, version of virus signature database 3671 (20081208) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Consulta SQL
--- Em delphi-br@yahoogrupos.com.br, "BandaLemuel" <[EMAIL PROTECTED]> > Acho que ficaria melhor se colocasse LIKE ... porque assim mesmo digitando parte apenas do nome ele acharia > >> Dm_Dados.qryClientes.SQL.Add('where Nome like ''' + EdtPesquisaNome.text +'%'' ' ); > Dm_Dados.qryClientes.Open; > Wesley Mas e para mostrar o resultado no dbgrid, como posso fazer a ligação?
Re: [delphi-br] Re: Consulta SQL
Acho que ficaria melhor se colocasse LIKE ... porque assim mesmo digitando parte apenas do nome ele acharia Ex: Dm_Dados.Tb_Clientes.Open; Dm_Dados.qryClientes.Close; Dm_Dados.qryClientes.SQL.Clear; Dm_Dados.qryClientes.SQL.Add('select * from clientes'); Dm_Dados.qryClientes.SQL.Add('where Nome like ''' + EdtPesquisaNome.text +'%'' ' ); Dm_Dados.qryClientes.Open; Wesley From: marcio Sent: Monday, December 08, 2008 11:52 AM To: delphi-br@yahoogrupos.com.br Subject: [delphi-br] Re: Consulta SQL Opa, Entaum deixa-me ver se entendi, para este caso basta criar um paramentro e depois apontar a propriedade value para o text do component certo? . > Dm_Dados.qryClientes.SQL.Add('where Nome= :nome'); > Dm_Dados.qryClientes.parameters.parambyname('nome').value := > edtPesquisaNome.text; > Dm_Dados.qryClientes.Open; e se quiséssemos entre datas como ficaria? Grato __ Information from ESET NOD32 Antivirus, version of virus signature database 3671 (20081208) __ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas]
Re: [delphi-br] Re: Consulta SQL
é isso mesmo. 2008/12/8 marcio <[EMAIL PROTECTED]> > Opa, > > Entaum deixa-me ver se entendi, para este caso basta criar um > paramentro e depois apontar a propriedade value para o text do > component certo? > . > > > Dm_Dados.qryClientes.SQL.Add('where Nome= :nome'); > > Dm_Dados.qryClientes.parameters.parambyname('nome').value := > > edtPesquisaNome.text; > > Dm_Dados.qryClientes.Open; > > e se quiséssemos entre datas como ficaria? > > Grato > > > -- Felipe Govoni - Programador Fone 8472-8718 [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Consulta SQL
Opa, Entaum deixa-me ver se entendi, para este caso basta criar um paramentro e depois apontar a propriedade value para o text do component certo? . > Dm_Dados.qryClientes.SQL.Add('where Nome= :nome'); > Dm_Dados.qryClientes.parameters.parambyname('nome').value := > edtPesquisaNome.text; > Dm_Dados.qryClientes.Open; e se quiséssemos entre datas como ficaria? Grato
Re: RES: Res: [delphi-br] Re: Consulta SQL p or aproximação [RESOLVIDO]
Muito obrigado, mesmo Vítor. A sua solução usando a instrução SELECT serviu perfeitamente para o propósito! Valeu mesmo, amigo! Ricardo. Vitor Redes <[EMAIL PROTECTED]> escreveu: Acho que dá pra desenvolver uma Stored Procedure a partir disso... talvez amanhã eu esteja com algum tempo dae mando alguma coisa mais específica... _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Vitor Redes Enviada em: segunda-feira, 24 de setembro de 2007 17:41 Para: delphi-br@yahoogrupos.com.br Assunto: RES: Res: [delphi-br] Re: Consulta SQL por aproximação Veja se te dá uma luz... Tabela: DENT_VARIAVEL DENTICAO | PASSO_MAIOR_ DENTE 0.8 - 1.3 | 33020 1-1.2 | 25222 1-2 | 22860 SELECT FIRST 1 DENT_VARIAVEL.PASSO_MAIOR_DENTE, DENT_VARIAVEL.DENTICAO FROM DENT_VARIAVEL WHERE DENT_VARIAVEL.PASSO_MAIOR_DENTE <= :PARAMETRO ORDER BY DENT_VARIAVEL.PASSO_MAIOR_DENTE DESC Vitor. _ De: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br [mailto:[EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br] Em nome de Ricardo César Cardoso Enviada em: segunda-feira, 24 de setembro de 2007 16:58 Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br Assunto: Re: Res: [delphi-br] Re: Consulta SQL por aproximação Acho que SoundEx não ajuda pq esta é para Strings e o que eu preciso é para valores (inteiros e ou ponto flutuante). Grato, Ricardo. João Paulo Schelbauer mailto:joao_paulo_1000%40yahoo.com.br> yahoo.com.br> escreveu: Não usei ainda, mas tem uma udf para o firebird que é soundex. Dá uma procurada na net sobre isso, pode ser que ajude. Acho que em SqlServer é algo parecido com isso tb. Att João Paulo - Mensagem original De: Ricardo César Cardoso mailto:ricardo_engsoft%40yahoo.com.br> yahoo.com.br> Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br Enviadas: Segunda-feira, 24 de Setembro de 2007 15:49:51 Assunto: [delphi-br] Re: Consulta SQL por aproximação Boa tarde. Esqueci de mencionar que uso banco de dados Firebird v 1.5.2 e Delphi 2005 para acessar esta base. Se alguém souber tb como seria para Oracle e ou SQL Server, agradeço. Sds, Ricardo. Ricardo César Cardoso escreveu: Boa tarde amigos! Tenho uma tabela na minha base de dados em que preciso fazer uma consulta por meio de aproximação. Ex: Tabela: DENT_VARIAVEL DENTICAO | PASSO_MAIOR_ DENTE 0.8 - 1.3 | 33020 1-1.2 | 25222 1-2 | 22860 {...} Preciso de uma instrução que me retorne o campo DENTICAO, com base em PASSO_MAIOR_ DENTE, porém o parâmetro a ser passado em PASSO_MAIOR_ DENTE não é o valor exato do campo e sim um valor proveniente de um cálculo. E o valor que estiver mais próximo deverá ser selecionado. Por exemplo, se VLR_PASSO_MAIOR_ DENTE = 32004, devo selecionar '0.8-1.3' que é o mais próximo do valor. Como faço isso por meio de uma instrução SQL? Grato, Ricardo. Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas]
RES: Res: [delphi-br] Re: Consulta SQL por aproxim ação
Acho que dá pra desenvolver uma Stored Procedure a partir disso... talvez amanhã eu esteja com algum tempo dae mando alguma coisa mais específica... _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Vitor Redes Enviada em: segunda-feira, 24 de setembro de 2007 17:41 Para: delphi-br@yahoogrupos.com.br Assunto: RES: Res: [delphi-br] Re: Consulta SQL por aproximação Veja se te dá uma luz... Tabela: DENT_VARIAVEL DENTICAO | PASSO_MAIOR_ DENTE 0.8 - 1.3 | 33020 1-1.2 | 25222 1-2 | 22860 SELECT FIRST 1 DENT_VARIAVEL.PASSO_MAIOR_DENTE, DENT_VARIAVEL.DENTICAO FROM DENT_VARIAVEL WHERE DENT_VARIAVEL.PASSO_MAIOR_DENTE <= :PARAMETRO ORDER BY DENT_VARIAVEL.PASSO_MAIOR_DENTE DESC Vitor. _ De: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br [mailto:[EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br] Em nome de Ricardo César Cardoso Enviada em: segunda-feira, 24 de setembro de 2007 16:58 Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br Assunto: Re: Res: [delphi-br] Re: Consulta SQL por aproximação Acho que SoundEx não ajuda pq esta é para Strings e o que eu preciso é para valores (inteiros e ou ponto flutuante). Grato, Ricardo. João Paulo Schelbauer mailto:joao_paulo_1000%40yahoo.com.br> yahoo.com.br> escreveu: Não usei ainda, mas tem uma udf para o firebird que é soundex. Dá uma procurada na net sobre isso, pode ser que ajude. Acho que em SqlServer é algo parecido com isso tb. Att João Paulo - Mensagem original De: Ricardo César Cardoso mailto:ricardo_engsoft%40yahoo.com.br> yahoo.com.br> Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br Enviadas: Segunda-feira, 24 de Setembro de 2007 15:49:51 Assunto: [delphi-br] Re: Consulta SQL por aproximação Boa tarde. Esqueci de mencionar que uso banco de dados Firebird v 1.5.2 e Delphi 2005 para acessar esta base. Se alguém souber tb como seria para Oracle e ou SQL Server, agradeço. Sds, Ricardo. Ricardo César Cardoso escreveu: Boa tarde amigos! Tenho uma tabela na minha base de dados em que preciso fazer uma consulta por meio de aproximação. Ex: Tabela: DENT_VARIAVEL DENTICAO | PASSO_MAIOR_ DENTE 0.8 - 1.3 | 33020 1-1.2 | 25222 1-2 | 22860 {...} Preciso de uma instrução que me retorne o campo DENTICAO, com base em PASSO_MAIOR_ DENTE, porém o parâmetro a ser passado em PASSO_MAIOR_ DENTE não é o valor exato do campo e sim um valor proveniente de um cálculo. E o valor que estiver mais próximo deverá ser selecionado. Por exemplo, se VLR_PASSO_MAIOR_ DENTE = 32004, devo selecionar '0.8-1.3' que é o mais próximo do valor. Como faço isso por meio de uma instrução SQL? Grato, Ricardo. Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. http://www.flickr. <http://www.flickr. <http://www.flickr.com.br/> com.br/> com.br/ [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
RES: Res: [delphi-br] Re: Consulta SQL por aproxim ação
Veja se te dá uma luz... Tabela: DENT_VARIAVEL DENTICAO | PASSO_MAIOR_ DENTE 0.8 - 1.3 | 33020 1-1.2 | 25222 1-2 | 22860 SELECT FIRST 1 DENT_VARIAVEL.PASSO_MAIOR_DENTE, DENT_VARIAVEL.DENTICAO FROM DENT_VARIAVEL WHERE DENT_VARIAVEL.PASSO_MAIOR_DENTE <= :PARAMETRO ORDER BY DENT_VARIAVEL.PASSO_MAIOR_DENTE DESC Vitor. _ De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Ricardo César Cardoso Enviada em: segunda-feira, 24 de setembro de 2007 16:58 Para: delphi-br@yahoogrupos.com.br Assunto: Re: Res: [delphi-br] Re: Consulta SQL por aproximação Acho que SoundEx não ajuda pq esta é para Strings e o que eu preciso é para valores (inteiros e ou ponto flutuante). Grato, Ricardo. João Paulo Schelbauer mailto:joao_paulo_1000%40yahoo.com.br> yahoo.com.br> escreveu: Não usei ainda, mas tem uma udf para o firebird que é soundex. Dá uma procurada na net sobre isso, pode ser que ajude. Acho que em SqlServer é algo parecido com isso tb. Att João Paulo - Mensagem original De: Ricardo César Cardoso mailto:ricardo_engsoft%40yahoo.com.br> yahoo.com.br> Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br Enviadas: Segunda-feira, 24 de Setembro de 2007 15:49:51 Assunto: [delphi-br] Re: Consulta SQL por aproximação Boa tarde. Esqueci de mencionar que uso banco de dados Firebird v 1.5.2 e Delphi 2005 para acessar esta base. Se alguém souber tb como seria para Oracle e ou SQL Server, agradeço. Sds, Ricardo. Ricardo César Cardoso escreveu: Boa tarde amigos! Tenho uma tabela na minha base de dados em que preciso fazer uma consulta por meio de aproximação. Ex: Tabela: DENT_VARIAVEL DENTICAO | PASSO_MAIOR_ DENTE 0.8 - 1.3 | 33020 1-1.2 | 25222 1-2 | 22860 {...} Preciso de uma instrução que me retorne o campo DENTICAO, com base em PASSO_MAIOR_ DENTE, porém o parâmetro a ser passado em PASSO_MAIOR_ DENTE não é o valor exato do campo e sim um valor proveniente de um cálculo. E o valor que estiver mais próximo deverá ser selecionado. Por exemplo, se VLR_PASSO_MAIOR_ DENTE = 32004, devo selecionar '0.8-1.3' que é o mais próximo do valor. Como faço isso por meio de uma instrução SQL? Grato, Ricardo. Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. http://www.flickr. <http://www.flickr.com.br/> com.br/ [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]
Re: Res: [delphi-br] Re: Consulta SQL por ap roximação
Acho que SoundEx não ajuda pq esta é para Strings e o que eu preciso é para valores (inteiros e ou ponto flutuante). Grato, Ricardo. João Paulo Schelbauer <[EMAIL PROTECTED]> escreveu: Não usei ainda, mas tem uma udf para o firebird que é soundex. Dá uma procurada na net sobre isso, pode ser que ajude. Acho que em SqlServer é algo parecido com isso tb. Att João Paulo - Mensagem original De: Ricardo César Cardoso <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Segunda-feira, 24 de Setembro de 2007 15:49:51 Assunto: [delphi-br] Re: Consulta SQL por aproximação Boa tarde. Esqueci de mencionar que uso banco de dados Firebird v 1.5.2 e Delphi 2005 para acessar esta base. Se alguém souber tb como seria para Oracle e ou SQL Server, agradeço. Sds, Ricardo. Ricardo César Cardoso escreveu: Boa tarde amigos! Tenho uma tabela na minha base de dados em que preciso fazer uma consulta por meio de aproximação. Ex: Tabela: DENT_VARIAVEL DENTICAO | PASSO_MAIOR_ DENTE 0.8 - 1.3 | 33020 1-1.2 | 25222 1-2 | 22860 {...} Preciso de uma instrução que me retorne o campo DENTICAO, com base em PASSO_MAIOR_ DENTE, porém o parâmetro a ser passado em PASSO_MAIOR_ DENTE não é o valor exato do campo e sim um valor proveniente de um cálculo. E o valor que estiver mais próximo deverá ser selecionado. Por exemplo, se VLR_PASSO_MAIOR_ DENTE = 32004, devo selecionar '0.8-1.3' que é o mais próximo do valor. Como faço isso por meio de uma instrução SQL? Grato, Ricardo. Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. http://www.flickr.com.br/ [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Re: Consulta SQL por aproximaç ão
Não usei ainda, mas tem uma udf para o firebird que é soundex. Dá uma procurada na net sobre isso, pode ser que ajude. Acho que em SqlServer é algo parecido com isso tb. Att João Paulo - Mensagem original De: Ricardo César Cardoso <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Segunda-feira, 24 de Setembro de 2007 15:49:51 Assunto: [delphi-br] Re: Consulta SQL por aproximação Boa tarde. Esqueci de mencionar que uso banco de dados Firebird v 1.5.2 e Delphi 2005 para acessar esta base. Se alguém souber tb como seria para Oracle e ou SQL Server, agradeço. Sds, Ricardo. Ricardo César Cardoso escreveu: Boa tarde amigos! Tenho uma tabela na minha base de dados em que preciso fazer uma consulta por meio de aproximação. Ex: Tabela: DENT_VARIAVEL DENTICAO | PASSO_MAIOR_ DENTE 0.8 - 1.3 | 33020 1-1.2 | 25222 1-2 | 22860 {...} Preciso de uma instrução que me retorne o campo DENTICAO, com base em PASSO_MAIOR_ DENTE, porém o parâmetro a ser passado em PASSO_MAIOR_ DENTE não é o valor exato do campo e sim um valor proveniente de um cálculo. E o valor que estiver mais próximo deverá ser selecionado. Por exemplo, se VLR_PASSO_MAIOR_ DENTE = 32004, devo selecionar '0.8-1.3' que é o mais próximo do valor. Como faço isso por meio de uma instrução SQL? Grato, Ricardo. Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas] Flickr agora em português. Você clica, todo mundo vê. http://www.flickr.com.br/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Consulta SQL por aproximação
Boa tarde. Esqueci de mencionar que uso banco de dados Firebird v 1.5.2 e Delphi 2005 para acessar esta base. Se alguém souber tb como seria para Oracle e ou SQL Server, agradeço. Sds, Ricardo. Ricardo César Cardoso <[EMAIL PROTECTED]> escreveu: Boa tarde amigos! Tenho uma tabela na minha base de dados em que preciso fazer uma consulta por meio de aproximação. Ex: Tabela: DENT_VARIAVEL DENTICAO | PASSO_MAIOR_DENTE 0.8 - 1.3 | 33020 1-1.2 | 25222 1-2 | 22860 {...} Preciso de uma instrução que me retorne o campo DENTICAO, com base em PASSO_MAIOR_DENTE, porém o parâmetro a ser passado em PASSO_MAIOR_DENTE não é o valor exato do campo e sim um valor proveniente de um cálculo. E o valor que estiver mais próximo deverá ser selecionado. Por exemplo, se VLR_PASSO_MAIOR_DENTE = 32004, devo selecionar '0.8-1.3' que é o mais próximo do valor. Como faço isso por meio de uma instrução SQL? Grato, Ricardo. Flickr agora em português. Você clica, todo mundo vê. Saiba mais. [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Re: Consulta sql mais de um campos
Se o seu problema for ordenar no DBGrid, você não precisaria fazer isto na Sentença, faz no DBGrid. Veja esta função abaixo. Ela, inclusive, colore o título do Grid de vermelho da coluna ordenada: Você precisará usar um CDS ligado a Query pra ela funcionar. procedure OrdenaDataSetGrid(var CDS: TClientDataSet; Column: TColumn; var dbgPrin: TDBGrid); const idxDefault = 'DEFAULT_ORDER'; var strColumn : string; i : integer; bolUsed : boolean; idOptions : TIndexOptions; begin strColumn := idxDefault; if Column.Field.FieldKind in [fkCalculated, fkLookup, fkAggregate, fkInternalCalc] then Exit; if Column.Field.DataType in [ftBlob, ftMemo] then Exit; // // for i := 0 to dbgPrin.Columns.Count -1 do dbgPrin.Columns [i].Title.Font.Style := []; for i := 0 to dbgPrin.Columns.Count -1 do dbgPrin.Columns[i].Title.Font.Color := clActiveCaption; // bolUsed := (Column.Field.FieldName = CDS.IndexName); // CDS.IndexDefs.Update; for i := 0 to CDS.IndexDefs.Count - 1 do begin if CDS.IndexDefs.Items[i].Name = Column.Field.FieldName then begin strColumn := Column.Field.FieldName; case (CDS.IndexDefs.Items[i].Options = [ixDescending]) of True : idOptions := []; False : idOptions := [ixDescending]; end; end; end; // if (strColumn = idxDefault) or (bolUsed) then begin if bolUsed then CDS.DeleteIndex(Column.Field.FieldName); try CDS.AddIndex(Column.Field.FieldName, Column.Field.FieldName, idOptions, '', '', 0); strColumn := Column.Field.FieldName; except if bolUsed then strColumn := idxDefault; end; end; // try CDS.IndexName := strColumn; Column.Title.Font.Color := clRed; Column.Title.Caption := Column.Title.Caption; // Column.Title.Font.Style := [fsbold]; except CDS.IndexName := idxDefault; end; // end; []s Walter Alves Chagas Junior Belo Horizonte - MG - Brazil [EMAIL PROTECTED] http://www.geocities.com/SiliconValley/Bay/1058 MSN: [EMAIL PROTECTED] SKYPE: WalterChagasJr --- Em delphi-br@yahoogrupos.com.br, "Hudson" <[EMAIL PROTECTED]> escreveu > > Ola gente, > > estou com uma duvida, e gostaria de compartilhar aqui na lista... > > tenho que fazer uma consulta sql like " dados %" em mais de uma campo exemplo: > > select * from cliente where dp1 like "'+ Edit1.Text +'%" or dp2 like "'+ Edit1.Text +'%" or dp3 like "'+ Edit1.Text +'%" or dp4 like "'+ Edit1.Text +'%" or dp5 like "'+ Edit1.Text +'%" or dp6 like "'+ Edit1.Text +'%"' > > o problema e que apos feito isso tenho que jogar em uma coluna no dbgrid e dar order by.. > > alguem ja teve essa duvida, poois não tenho como separar estes campos, já tem mais ou mesno 30,000 registro na tabela... > > Atenciosamente Hudson Dias > www.alcancedigital.com.br > MSN: [EMAIL PROTECTED] > Skype: hudson_bh > Tele: (31)3434-6304 > > [As partes desta mensagem que não continham texto foram removidas] >