Delphi 7.0 - ( )





SQL Snippets
*** Página melhor visualizada no " navegador Chrome " --------------------------------------------------------------------------------------- query.close; query.sql.text := 'select * from tabela where campodata <= :hoje'; query.parambyname('hoje').asdate := date; query.open; --------------------------------------------------------------------------------------- begin if query1.active then query1.close; query1.parambyname('data_inicial').asdate := strtodate(edit1.text); query1.parambyname('data_final').asdate := strtodate(edit2.text); query1.open; end; end; select codigo, data, qtde from "produtos.db" produtos where (produtos.data >= :data_inicial) and (produtos.data <= :data_final) --------------------------------------------------------------------------------------- query1.close; query1.sql.text := 'select * from funcionarios where func_data_admissao >= :hoje'; query1.parambyname('hoje').asdate := date; query1.open; --------------------------------------------------------------------------------------- select prod_codigo, prod_descricao, prod_qtde, prod_data, prod_obs from "produtos.db" produtos where (prod_codigo >= : cod_inicial) and (prod_codigo <= :cod_final) --------------------------------------------------------------------------------------- select prod_codigo, prod_descricao, prod_qtde, prod_data, prod_tipo from "produtos.db" produtos where (prod_data >= :data_inicial) and (prod_data <= :data_final) or (prod_tipo = :tipo) --------------------------------------------------------------------------------------- query1.close; query1.parambyname('xnome').asstring := '%'+ edit1.text + '%'; query1.open; edit1.setfocus; select for_codigo, for_nome, for_email from "fornec.db" fornec where upper(for_nome) like upper(:xnome) order by for_nome --------------------------------------------------------------------------------------- qremp.close; qremp.sql.clear; qremp.sql.add('select firstname, lastname, hiredate from employee'); case radiogroup1.itemindex of 0: qremp.sql.add('where hiredate > :data'); 1: qremp.sql.add('where hiredate < :data'); 2: qremp.sql.add('where hiredate = :data'); end; // bloco case try qremp.parambyname('data').asdate := strtodate(maskedit1.text); qremp.open; except showmessage('dados inválidos!'); end; // bloco try end; --------------------------------------------------------------------------------------- var dataini, datafim : tdatetime; begin dataini := incyear(date, -idadequevoceprocura); datafim := incyear(dataini) - 1; query1.close; query1.sql.text := 'select * from alunos where datadenasc between :ini and :fim'; query1.params[0].asdatetime := dataini; query1.params[1].asdatetime := datafim; query1.open; end; --------------------------------------------------------------------------------------- if datetimepicker2.date < datetimepicker1.date then begin showmessage('intervalo de datas inválido, a data inicial é maior que a data final!'); datetimepicker2.date := datetimepicker1.date; end else begin inicio := datetostr(datetimepicker1.date); final := datetostr(datetimepicker2.date); query1.close; query1.sql.clear; query1.sql.text := 'select nome,empresa,foneres,fonecom,mala from contatos where data >= :pinicial and data <= :pfinal order by nome'; query1.parambyname('pinicial').asdatetime := strtodate(inicio); query1.parambyname('pfinal').asdatetime := strtodate(final); query1.prepare; query1.open; dbgrid3d1.setfocus end; label3.caption := 'total de contatos: ' + inttostr(query1.recordcount) --------------------------------------------------------------------------------------- query1.close; query1.sql.clear; query1.sql.add('select * from dcli'); query1.sql.add('where extract(month from datanasc) = :mes'); query1.parambyname('mes').asinteger := strtoint(edit1.text); query1.open; --------------------------------------------------------------------------------------- query1.close; query1.sql.clear; query1.sql.add('select clie_codigo, clie_nome from clientes '); query1.sql.add('where clie_nome like ' + '''' + '%' + edit1.text + '%'+''''); query1.open; --------------------------------------------------------------------------------------- query1.close; query1.sql.clear; query1.sql.add('select sum(clie_salario) as total_salario from clientes'); query1.open; edit4.text := query1.fieldbyname('total_salario').asstring; --------------------------------------------------------------------------------------- procedure tform1.bitbtn1click(sender: tobject); begin query1.close; query1.sql.add('select teste1.codigo, teste1.nome'); query1.sql.add('from teste1 '); query1.sql.add('where '); query1.sql.add('(teste1.nome like :nome1) '); query1.params[0].asstring := ‘%’+edit1.text+’%’; query1.open; end; --------------------------------------------------------------------------------------- begin with query1 do begin close; parambyname('vardatai').asdate := data1.date; parambyname('vardataf').asdate := data2.date; prepare; open; end; if (query1.recordcount=1) and (query1total.value=0) then showmessage('não existe vendas neste período informado!'); end; select i.descricao, sum(valor_total) as total from db_itens as i where data between :vardatai and :vardataf group by i.descricao --------------------------------------------------------------------------------------- close; sql.clear; sql.add('select * from fornecedor where upper(fornecedor) like upper(''%'' + :1 + ''%'')'); params[0].asstring := self.edit1.text; open; --------------------------------------------------------------------------------------- with formquickvendedor4 do begin if (trim(dataini.text) <> '/ /') or (trim(datafim.text) <> '/ /') then begin query2.close; query2.parambyname('descricao').value := dblookupcombobox1.text; query2.parambyname('nomei').value := dblookupcombobox2.text; query2.parambyname('nomef').value := dblookupcombobox3.text; query2.parambyname('datai').value := strtodate(dataini.text); query2.parambyname('dataf').value := strtodate(datafim.text); qrlabel7.caption := 'relatório do vendedor ' + dblookupcombobox2.text+ ' ao vendedor '+ dblookupcombobox3.text; qrlabel1.caption := 'produto vendido ' + dblookupcombobox1.text; qrlabel13.caption := 'período de: ' + dataini.text + ' até ' + datafim.text; query2.prepare; query2.open; quickrep1.preview; //close; end ; select i.descricao, i.data, i.quantidade, i.valor_unit, i.valor_total from db_itens as i where data between :vardatai and :vardataf group by i.descricao, i.data, i.quantidade, i.valor_unit, i.valor_total --------------------------------------------------------------------------------------- with query1 do begin close; parambyname('dta_inicial').asdate := datetimepicker1.date; parambyname('dta_final').asdate := datetimepicker1.date; prepare; open; end; if (query1.recordcount = 0) then showmessage('não existe registros neste período'); --------------------------------------------------------------------------------------- qexclui.close; qexclui.sql.clear; qexclui.sql.add('delete from tbexemplo where (tbexemplo.codigop = :edcodigop) and ' + '(tbexemplo.codigos = :edcodigos) '); qexclui.parambyname('edcodigo').asinteger := 1; qexclui.parambyname('edcodigos').asinteger := 5; qexclui.execsql; --------------------------------------------------------------------------------------- with query1 do begin close; parambyname('nomex').asstring := '%' + edit1.text + '%'; parambyname('dta_inicial').asdate := datetimepicker1.date ; parambyname('dta_final').asdate := datetimepicker2.date; prepare; open; end; if query1.recordcount = 0 then begin application.messagebox('favor informar um código', 'erro', + mb_ok + mb_iconwarning); end; --------------------------------------------------------------------------------------- begin query1.close; query1.sql.clear; query1.sql.add('select * from clientes'); query1.sql.add('where upper(clientes.clie_nome) like upper(:xnome)'); query1.parambyname('xnome').asstring := edit1.text; query1.open; end; --------------------------------------------------------------------------------------- begin query1.close; query1.sql.clear; query1.sql.add('select * from clientes where clie_nome = ' + quotedstr(edit1.text)); query1.open; end; --------------------------------------------------------------------------------------- begin //var //cliente : string; // definindo variável begin //cliente := inputbox( ' digite um nome ' , ' procura ' , '' ); query1.close; query1.sql.clear; query1.sql.add('select * from clientes'); query1.sql.add('where upper(clientes.clie_nome) like upper(:xnome)'); //query1.parambyname('xnome').asstring := edit1.text; query1.open; end; --------------------------------------------------------------------------------------- procedure tform1.bit_okclick(sender: tobject); begin query1.close; query1.sql.clear; query1.sql.add('select sum(clie_salario) soma_total from clientes.db'); query1.open; edit1.text := query1.fieldbyname('soma_total').asstring; label1.caption := query1.fieldbyname('soma_total').asstring; end; --------------------------------------------------------------------------------------- var resposta : string; clickedok : boolean; // inputquery - usado para saber o qual botão foi pressionado. // resposta boleana v ou falsa para clickedok, clickedcancel. begin clickedok := inputquery('digite um código','código', resposta); if clickedok then begin if resposta = '' then begin application.messagebox('nenhum valor foi digitado...','atenção',+ mb_ok); dm_qr.query4.active := false; exit; end end else begin application.messagebox('a procura foi cancelada..','atenção',+ mb_ok); dm_qr.query4.active := false; exit; end; if resposta <> '' then begin dm_qr.query4.databasename := 'maio_marc'; dbgrid1.datasource := datasource4; datasource4.dataset := dm_qr.query4; dm_qr.query4.active := false; dm_qr.query4.close; dm_qr.query4.sql.clear; dm_qr.query4.sql.add('select * from produtos '); dm_qr.query4.sql.add('where prod_codigo = :xcodigo'); dm_qr.query4.parambyname('xcodigo').asinteger := strtoint(resposta); dm_qr.query4.active :=true; end; end; --------------------------------------------------------------------------------------- begin dbgrid1.datasource := datasource3; dm_qr.query3.active :=false; dm_qr.query3.close; dm_qr.query3.sql.clear; edit6.text := inttostr(dm_qr.query3.sql.add('select count (prod_codigo) from produtos')); //dm_qr.query3.sql.add('from produtos'); dm_qr.query3.active :=true; end; --------------------------------------------------------------------------------------- begin with query1 do begin close; parambyname('nomex').asstring := '%' + edit1.text + '%'; parambyname('dta_inicial').asdate := datetimepicker1.date ; parambyname('dta_final').asdate := datetimepicker2.date; prepare; open; end; if query1.recordcount = 0 then begin application.messagebox('favor informar um código', 'erro', + mb_ok + mb_iconwarning); end; end; select clie_codigo, clie_nome, clie_data_nas from "clientes.db" clientes where clie_nome like :nomex and ( clie_data_nas >= :dta_inicial ) and ( clie_data_nas <= :dta_final ) order by clie_nome implementado procedure tnome_datas_frm.bit_okclick(sender: tobject); begin with query1 do begin if edit1.text = '' then // verifica se algo for digitado begin application.messagebox('digite algo no campo nome!', 'atenção', + mb_ok + mb_iconwarning); edit1.clear; edit1.setfocus; raise eabort.create(''); end; close; parambyname('nomex').asstring := edit1.text + '%'; // o '%' no lado direito do edit1.text significa que serão // localizadas todos os nomes com as letras iniciais digitadas parambyname('dta_inicial').asdate := datetimepicker1.date; parambyname('dta_final').asdate := datetimepicker2.date; prepare; open; end; if query1.recordcount = 0 then application.messagebox('nada foi encontrado!', 'attenção', + mb_ok + mb_iconwarning) else showmessage('total registros encontrados : ' + inttostr(query1.recordcount)); end; end; --------------------------------------------------------------------------------------- //var //cliente : string; begin //cliente := inputbox( ' digite um nome ' , ' procura ' , '' ); query1.close; query1.sql.clear; query1.sql.add('select * from clientes'); query1.sql.add('where upper(clientes.clie_nome) like upper(:xnome)'); //query1.parambyname('xnome').asstring := edit1.text; query1.open; end; select clie_nome, clie_cidade from "clientes.db" clientes --------------------------------------------------------------------------------------- query1.close; query1.sql.clear; query1.sql.add ('select cli_nome from clientes'); query1.sql.add ('where cli_nome = :xnome'); // query1.sql.add ('or cli_salario > :xsalario'); query1.sql.add ('or cli_idade = :xcidade'); query1.parambyname('xnome').asstring := '%' + edit1.text + '%'; // query1.parambyname('xsalario').asstring := edit2.text; query1.parambyname('xcidade').asstring := edit1.text; query1.execsql; select cli_nome, cli_data_nasc, cli_idade, cli_salario from "clientes.db" clientes --------------------------------------------------------------------------------------- begin try application.createform(tfrmrelcomisao, frmrelcomisao); with frmrelcomisao do begin qrycomisao.parambyname('vardatai').asdate :=data1.date; qrycomisao.parambyname('vardataf').asdate :=data2.date; qrycomisao.parambyname('varvendedor').asstring:=dblookupcombobox1.text+'%'; qrycomisao.prepare; qrycomisao.open; quickrep1 .preview; qrycomisao.close; end; finally frmrelcomisao.free; end; end; select codigo,vendedor from vendedor order by 2 --------------------------------------------------------------------------------------- select * from cantoresconjuntos cc right join cds cd on cc.codcantorconjunto = cd.codcantorconjunto join faixas fx on cd.codcd = fx.codcd where upper(fx.nomemusica) like '%' + upper(:parnomemusica) + '%' --------------------------------------------------------------------------------------- public { public declarations } procedure deletarfaixas(codcd: integer); : : procedure tregrasdm.deletarfaixas(codcd: integer); begin with qrydeletarfaixas do begin parambyname('parcodcd').value := codcd; execsql; end; end; no componete query, tem a seguinte sql delete from faixas where codcd = :parcodcd --------------------------------------------------------------------------------------- public { public declarations } procedure procurarmusica(nomemusica: string); procedure tregrasdm.procurarmusica(nomemusica: string); var msg: string; begin with qryprocurarmusica do begin parambyname('parnomemusica').asstring := nomemusica; open; if isempty then begin msg := 'a música "' + nomemusica + '" não foi encontrada.'; application.messagebox(pchar(msg), 'coleção de cds', mb_iconinformation); close; end; end; end; sql que esta no query - tstrings select * from cantoresconjuntos cc right join cds cd on cc.codcantorconjunto = cd.codcantorconjunto join faixas fx on cd.codcd = fx.codcd where upper(fx.nomemusica) like '%' + upper(:parnomemusica) + '%' --------------------------------------------------------------------------------------- select company, sum(sales) as totalsales from sales1998 group by company having (sum(sales) >= 1000) order by company --------------------------------------------------------------------------------------- select company, sum(sales) as totalsales from sales1998 where (state = "ca") group by company having (sum(sales) >= 1000) order by company --------------------------------------------------------------------------------------- select * from transfers where (paid = true) and not (incomplete = "false") --------------------------------------------------------------------------------------- select saledate, extract(year from saledate) as yy, extract(month from saledate) as mm, extract(day from saledate) as dd from orders --------------------------------------------------------------------------------------- procedure tmultiplas_frm.radiogroup1click(sender: tobject); begin case radiogroup1.itemindex of 0 : begin dbgrid1.datasource := func_sql_ds; func_sql.close; func_sql.sql.clear; func_sql.sql.add('select func_nome '); func_sql.sql.add('from funcionarios order by func_nome'); func_sql.open; end; 1 : begin dbgrid1.datasource := func_sql_ds; func_sql.close; func_sql.sql.clear; func_sql.sql.add('select func_nome '); func_sql.sql.add('from funcionarios order by func_nome desc'); func_sql.open; end; 2 : begin dbgrid1.datasource := cidades_sql_ds; cidades_sql.close; cidades_sql.sql.clear; cidades_sql.sql.add('select * from cidades '); cidades_sql.sql.add('order by cid_cidade'); cidades_sql.open; end; 3 : begin dbgrid1.datasource := cidades_sql_ds; cidades_sql.close; cidades_sql.sql.clear; cidades_sql.sql.add('select * from cidades '); cidades_sql.sql.add('order by cid_cidade desc'); cidades_sql.open; end; 4 : begin dbgrid1.datasource := ufs_sql_ds; ufs_sql.close; ufs_sql.sql.clear; ufs_sql.sql.add('select * from ufs '); ufs_sql.sql.add('order by ufs_sigla'); ufs_sql.open; end; end; end; procedure tmultiplas_frm.formshow(sender: tobject); begin with combobox1.items do begin uf_sql.open; uf_sql.first; clear; while not uf_sql.eof do begin add(uf_sqlufs_sigla.value); uf_sql.next; end; end; end; procedure tmultiplas_frm.combobox1click(sender: tobject); var s : string; i : integer; begin i := combobox1.itemindex; s := combobox1.items.strings[i]; dbgrid1.datasource := uf_combo_ds; uf_combo_sql.close; uf_combo_sql.sql.clear; uf_combo_sql.sql.add('select ufs_descricao '); uf_combo_sql.sql.add('from ufs where ufs_sigla = '+ quotedstr(s)); uf_combo_sql.open; end; --------------------------------------------------------------------------------------- var resp : string; begin resp := inputbox('digite um código','código',''); if length(resp) = 0 then else begin query1.close; query1.sql.clear; query1.sql.add('select * from "socios.db" where nome_socio = :cod') ; query1.parambyname('cod').asstring := resp; query1.open; end; end; --------------------------------------------------------------------------------------- begin dm_qr.produtos_todos_qr.active :=true; dbgrid1.datasource := produtos_todos_ds; with edit3 do if text <> '' then dm_qr.produtos_todos_qr.locate('prod_codigo', edit3.text, [lopartialkey]); end; --------------------------------------------------------------------------------------- begin dm_qr.produtos_todos_qr.active :=true; dbgrid1.datasource := produtos_todos_ds; with edit4 do if text <> '' then dm_qr.produtos_todos_qr.filter:='prod_codigo = ''' + edit4.text + ''''; dm_qr.produtos_todos_qr.findfirst; end; --------------------------------------------------------------------------------------- begin with edit1 do if text <> '' then begin query1.filter := 'codigo = ''' + edit1.text + ''''; query1.findfirst; end; end; --------------------------------------------------------------------------------------- begin query1.close; query1.sql.clear; query1.sql.add('select com_nome_vendor, com_data_vencto,' + 'com_data_pagto,com_valor'); query1.sql.add('from comissao'); query1.sql.add('where com_data_pagto is null'); // is nul - is not null query1.open; end; --------------------------------------------------------------------------------------- begin query1.close; query1.sql.clear; query1.sql.add('select com_nome_vendor, com_data_vencto,' + 'com_data_pagto, com_valor'); query1.sql.add('from comissao'); query1.open; end; --------------------------------------------------------------------------------------- begin query1.close; query1.sql.clear; query1.sql.add('select sum(com_valor) from comissao'); query1.sql.add('where com_data_pagto > com_data_vencto'); query1.open; end; --------------------------------------------------------------------------------------- begin query1.close; query1.sql.clear; query1.sql.add('select sum(com_valor) from comissao'); query1.sql.add('where com_data_pagto <> is null'); query1.open; end; --------------------------------------------------------------------------------------- procedure tform1.edit1change(sender: tobject); begin with edit1 do if text <> '' then query1.locate('codigo',edit1.text,[lopartialkey]); end; ------------------------------------------------------------------------------------------ begin query1.close;{close the query} query1.sql.clear; query1.sql.add ('select empno, firstname, lastname'); query1.sql.add ('from employee.db'); query1.sql.add ('where salary > ' + edit1.text); query1.open; end; ------------------------------------------------------------------------------------------ select i.nomevendedor, i.descricao, i.data, i.valor_unit, i.valor_total from db_itens as i where nomevendedor between :nomei and :nomef and descricao like :descricao and data between :datai and :dataf group by i.nomevendedor, i.descricao, i.data, i.valor_unit, i.valor_total --------------------------------------------------------------------------------------- with dados.qsaida do begin close; sql.clear; sql.add('select * from "consulta.db"'); sql.add('where (mov_datas >= :pdatai) and (mov_datas <= :pdataf) and (sai_codigo = 1)'); sql.add('order by mov_datas'); parambyname('pdatai').asdate := strtodate(maskedit1.text); parambyname('pdataf').asdate := strtodate(maskedit2.text); open; end; --------------------------------------------------------------------------------------- with formquickvendedor4 do begin if (trim(dataini.text) <> '/ /') or (trim(datafim.text) <> '/ /') then begin query2.close; query2.parambyname('descricao').value := dblookupcombobox1.text; query2.parambyname('nomei').value := dblookupcombobox2.text; query2.parambyname('nomef').value := dblookupcombobox3.text; query2.parambyname('datai').value := strtodate(dataini.text); query2.parambyname('dataf').value := strtodate(datafim.text); qrlabel7.caption := 'relatório do vendedor ' + dblookupcombobox2.text + 'ao vendedor '+ dblookupcombobox3.text; qrlabel1.caption := 'produto vendido ' + dblookupcombobox1.text; qrlabel13.caption := 'período de: ' + dataini.text + ' até ' + datafim.text; query2.prepare; query2.open; quickrep1.preview; //close; end ; --------------------------------------------------------------------------------------- procedure tfornec_frm.bitbtn12click(sender: tobject); var fornecedor : string; begin fornecedor :=inputbox('consulta de fornecedores por código','informe o código',''); if fornecedor <> '' then begin if fornec.findkey([fornecedor])=false then application.messagebox('fornecedor não encontrado...','erro',+ mb_ok); // showmessage('registro não existe'); end; end; procedure tfornec_frm.bitbtn13click(sender: tobject); var fornecedor : string; begin fornecedor :=inputbox('consulta por nome','informe o nome ',''); if fornecedor <> '' then begin if fornec.locate('for_nome', fornecedor,[lopartialkey])= false then application.messagebox('nome não localizado','erro',+mb_ok); end; end; procedure tfornec_frm.ed_procura2change(sender: tobject); begin with fornec do // para não repetir toda vez o fornec begin indexname:='inome'; // indice secundário fornec.open; setkey; fornecfor_nome.asstring:=ed_procura2.text; gotonearest; end; end; --------------------------------------------------------------------------------------- qexclui.close; qexclui.sql.clear; qexclui.sql.add('delete from tbexemplo ' + 'where (tbexemplo.codigop = :edcodigop) and ' + '(tbexemplo.codigos = :edcodigos) '); qexclui.parambyname('edcodigo').asinteger := 1; qexclui.parambyname('edcodigos').asinteger := 5; qexclui.execsql; --------------------------------------------------------------------------------------- select mao_obra.mobra_nr_contrato, colocadores.coloca_nome from "mao_obra.db" mao_obra inner join "colocadores.db" colocadores on (mao_obra.mobra_cod_colocador = colocadores.coloca_cod) where upper(colocadores.coloca_nome) like upper(:nome) order by colocadores.coloca_nome --------------------------------------------------------------------------------------- expressoes com data em filtro e sql data = null // somente os que nao tem data informada data <> null // somente os que tem data informada --------------------------------------------------------------------------------------- procedure tform1.edit1change(sender: tobject); begin with edit1 do if text <> '' then begin query1.filter := 'codigo = '''+edit1.text+''''; query1.findfirst; end; end; --------------------------------------------------------------------------------------- begin with edit1 do if text <> '' then query1.locate('codigo',edit1.text,[lopartialkey]); end; --------------------------------------------------------------------------------------- var data : tdatetime; begin try data := strtodate(maskedit1.text); with query1 do begin close; parambyname('data').asdatetime := data; open; end; except on econverterror do messagedlg('data inválida', mterror, [mbok], 0); end; end; --------------------------------------------------------------------------------------- screen.cursor:=crhourglass; query1.close; query1.parambyname('titulo').asstring:='%'+uppercase(edit1.text)+ '%'; //query1.opendatabase; query1.open; screen.cursor:=crdefault; --------------------------------------------------------------------------------------- query.locate('campo onde ira porcurar',texto a buscar,[lopartialkey]) --------------------------------------------------------------------------------------- const msg = 'consulta ativa: %d registros encontrados.'; begin updatestatus( format( msg, [query1.recordcount] )); end; --------------------------------------------------------------------------------------- excluindo ********* qexclui.close; qexclui.sql.clear; qexclui.sql.add('delete from tbexemplo where (tbexemplo.codigop = :edcodigop) and ' + '(tbexemplo.codigos = :edcodigos) '); qexclui.parambyname('edcodigo').asinteger := 1; qexclui.parambyname('edcodigos').asinteger := 5; qexclui.execsql; --------------------------------------------------------------------------------------- procedure tsql_10_frm.bit_procuraclick(sender: tobject); begin query1.close; query1.sql.text := 'select * from clientes wher eclie_data_aniver >= :hoje'; query1.parambyname('hoje').asdate := date; query1.open; end; procedure tsql_10_frm.bit_procura_mesclick(sender: tobject); begin query1.close; query1.sql.clear; query1.sql.add('select * from clientes'); query1.sql.add('where extract(year from clie_data_aniver) = :mes'); query1.parambyname('mes').asinteger := strtoint(edit1.text); query1.open; end; select clie_nome, clie_cidade, clie_data_aniver from "clientes.db" clientes --------------------------------------------------------------------------------------- begin query1.close; query1.sql.clear; query1.sql.add('select com_nome_vendor, com_data_vencto,' + 'com_data_pagto,com_valor'); query1.sql.add('from comissao'); query1.sql.add('where com_data_pagto is null'); query1.open; end; begin query1.close; query1.sql.clear; query1.sql.add('select com_nome_vendor, com_data_vencto,' + 'com_data_pagto, com_valor'); query1.sql.add('from comissao'); query1.open; end; begin query1.close; query1.sql.clear; query1.sql.add('select sum(com_valor) from comissao'); query1.sql.add('where com_data_pagto > com_data_vencto'); query1.open; end; begin query1.close; query1.sql.clear; query1.sql.add('select sum(com_valor) from comissao'); query1.sql.add('where com_data_pagto <> is null'); query1.open; end; --------------------------------------------------------------------------------------- begin query1.sql.clear; query1.sql.add('select * from clientes order by clie_nome asc' ); query1.open; end; begin query1.sql.clear; query1.sql.add('select * from clientes order by clie_codigo desc' ); query1.open; end; begin query1.sql.clear; query1.sql.add('select * from clientes where clie_codigo = 3' ); query1.open; end; begin query1.close; query1.sql.clear; query1.sql.add('select * from clientes where clie_nome = ' + quotedstr(edit1.text)); query1.open; end; begin query1.close; query1.sql.clear; query1.sql.add('select * from clientes'); query1.sql.add('where upper(clientes.clie_nome) like upper(:xnome)'); query1.parambyname('xnome').asstring := edit1.text; query1.open; end; begin query1.close; query1.sql.clear; query1.sql.add('select * from clientes where clie_nome = ' + edit1.text); query1.open; end; --------------------------------------------------------------------------------------- procedure tform1.bitbtn1click(sender: tobject); begin query1.close; if not query1.prepared then query1.prepare; if edit1.text <> '' then query1.parambyname('dept_no').asstring := edit1.text else begin query1.parambyname('dept_no').asinteger := 0; edit1.text := '0'; end; try {trap errors} query1.open; {execute the statement and open the dataset} except {error handling section} on e : edatabaseerror do {e is the new handle for the error} messagedlg(e.message, mterror, [mbok],0); end; end; --------------------------------------------------------------------------------------- procedure tform2.button1click(sender: tobject); begin if radiobutton1.checked=true then query1.parambyname('fältparameter').asstring := 'namn'; if radiobutton2.checked=true then query1.parambyname('fältparameter').asstring := 'kemnamn'; with query1 do begin close; query1.parambyname('sökparameter').asstring := '%'+edit1.text+'%'; execsql; open; end; end; --------------------------------------------------------------------------------------- select mao_obra.mobra_cod_cliente, mao_obra.mobra_cod_vendedor, vendedores.ven_nome, clientes.clie_nome, mao_obra.mobra_condicoes, mao_obra.mobra_dta_vencto_obra, mao_obra.mobra_nr_contrato, mao_obra.mobra_cod_mao_obra, mao_obra.mobra_vlr_contrato, conta_pagar_mao_obra.cpagar_tipo_pessoa, conta_pagar_mao_obra.cpagar_dt_pgto, conta_pagar_mao_obra.cpagar_valor from "mao_obra.db" mao_obra inner join "vendedores.db" vendedores on (mao_obra.mobra_cod_vendedor = vendedores.ven_cod) inner join "clientes.db" clientes on (mao_obra.mobra_cod_cliente = clientes.clie_cod) inner join "conta_pagar_mao_obra.db" conta_pagar_mao_obra on (mao_obra.mobra_cod_mao_obra = conta_pagar_mao_obra.cpagar_cd_mao_obra) where (mao_obra.mobra_dta_vencto_obra >= :dta_inicial) and (mao_obra.mobra_dta_vencto_obra <= :dta_final) and (conta_pagar_mao_obra.cpagar_tipo_pessoa = :tipopessoa) order by mao_obra.mobra_dta_vencto_obra procedure tsel_entra_saida.bitbtn1click(sender: tobject); var str_sql : string; begin str_sql := dm.qr_entra_saida.sql.text; try with dm.qr_entra_saida do begin // seleciona a data inicial e final sql.add(' and '); sql.add('( itens_data >= :dtini )'); sql.add(' and '); sql.add('( itens_data <= :dtfim )'); // verifica q tipo de entrada ou saida case radio_group_tipos.itemindex of 0 : sql.add(' and itens_tipo = ' + quotedstr('e')); 1 : sql.add(' and itens_tipo = ' + quotedstr('s')); 2 : // nao faz nada end ; // case // verifica qual o funcionario ou se todos if combobox_funcionario.itemindex > 0 then begin dm.funcionario_tb.locate('func_nome',combobox_funcionario.text,[]); sql.add(' and itens_func = '+inttostr(dm.funcionario_tbfunc_cod.value)); end; // verifica qual o produto ou se todos if combobox_produtos.itemindex > 0 then begin dm.produtos_tb.locate('prod_descricao',combobox_produtos.text,[]); sql.add(' and prod_codigo = '+inttostr(dm.produtos_tbprod_codigo.value)); end; // if // ordenacao dos dados sql.add('order by itens_data,itens_tipo'); // data inicial e final parambyname('dtini').asdate := trunc(date_time_picker_dta_inicial.datetime); parambyname('dtfim').asdate := trunc(date_time_picker_dta_final.datetime); end; // withs dm.qr_entra_saida.open; // chama o quickreport qreport_entrada_saida.preview; finally // restaura a sql; dm.qr_entra_saida.close; dm.qr_entra_saida.sql.text := str_sql; end; end; --------------------------------------------------------------------------------------- select socios.cod_socio, socios.nome_socio, socios.endereco, socios.cidade, socios.data_ingressao, socios.nome_pai, socios.nome_mae, socios.data_nasc, socios.cpf, from "socios.db" socios inner join "empresas.db" empresas on (socios.cod_empresa = empresas.cod_empresa) where (socios.cod_socio >= :cod_inicial) and (socios.cod_socio <= :cod_final) order by socios.nome_socio --------------------------------------------------------------------------------------- select autoriza.valor, autoriza.data, socios.nome_socio, empresas.nome_empresa, empresas.cod_empresa from "autoriza.db" autoriza, "socios.db" socios, "empresas.db" empresas where (autoriza.cod_socio = socios.cod_socio) and (socios.cod_empresa = empresas.cod_empresa) and (empresas.cod_empresa >= :codiniemp) and (empresas.cod_empresa <= :codfimemp) and (autoriza.data >= :dtini) and (autoriza.data <= :dtfim) order by empresas.nome_empresa, socios.nome_socio, autoriza.data --------------------------------------------------------------------------------------- select pedido_desligamento.data_pedido_desliga, socios.nome_socio, empresas.nome_empresa, socios.cod_socio, empresas.cod_empresa from "pedido_desligamento.db" pedido_desligamento inner join "socios.db" socios on (pedido_desligamento.cod_socio_relaciona = socios.cod_socio) inner join "empresas.db" empresas on (socios.cod_empresa = empresas.cod_empresa) where (pedido_desligamento.data_pedido_desliga >= :dtini) and (pedido_desligamento.data_pedido_desliga <= :dtfim) order by empresas.nome_empresa, socios.nome_socio --------------------------------------------------------------------------------------- select proposta.nr_proposta, proposta.data_proposta, socios.nome_socio, socios.data_nasc, socios.cod_empresa, socios.carteiraprofissional, socios.seriecartprof, socios.dtadmissao, socios.profissao, socios.endereco, socios.naturalidade, socios.estado_civil, socios.cidade, empresas.nome_empresa, empresas.cod_empresa, empresas.endereco from "proposta.db" proposta, "socios.db" socios, "empresas.db" empresas where (proposta.nr_proposta >= :cod_ini) and (proposta.nr_proposta <= :cod_fim) order by proposta.nr_proposta --------------------------------------------------------------------------------------- select fs.nr_ficha, fs.data, fs.dependente_outro, fs.valor, so.nome_socio, so.cod_socio , em.nome_empresa from "ficha_sindical.db" fs, "socios.db" so, "empresas.db" em where (fs.data >= :data_ini) and (fs.data <= :data_fim) and (so.cod_empresa >= :cod_empini) and (so.cod_empresa <= :cod_empfim) and (fs.ficha_cod_socio = so.cod_socio) and(so.cod_empresa = em.cod_empresa) order by fs.data --------------------------------------------------------------------------------------- select sum( qtd_revisada ) from "revisoes.db" revisoes where nr_lote = :nr_lote and ref_relogio = :ref_relogio --------------------------------------------------------------------------------------- select sum( itensrevisoes.qtdade ) from "revisoes.db" revisoes inner join "itensrevisoes.db" itensrevisoes on (revisoes.contador = itensrevisoes.contador_revisao) where revisoes.nr_lote = :nr_lote and revisoes.ref_relogio = :ref_relogio and itensrevisoes.cd_grupo = :cd_grupo --------------------------------------------------------------------------------------- select sum( itensrevisoes.qtdade ), lotes.nr_lote, lotes.ref_relogio,itensrevisoes.cd_grupo, grupos.grup_descr_grupo, lotes.dt_importacao, lotes.qtd_pecas, relogios.ds_relogio from "lotes.db" lotes inner join "revisoes.db" revisoes on (lotes.nr_lote = revisoes.nr_lote) and (lotes.ref_relogio = revisoes.ref_relogio) inner join "relogios.db" relogios on (lotes.ref_relogio = relogios.ref_relogio) inner join "itensrevisoes.db" itensrevisoes on (revisoes.contador = itensrevisoes.contador_revisao) inner join "grupos.db" grupos on (itensrevisoes.cd_grupo = grupos.grup_codigo) where lotes.nr_lote = :nr_lote and lotes.ref_relogio = :ref_relogio group by lotes.nr_lote, lotes.ref_relogio, itensrevisoes.cd_grupo, grupos.grup_descr_grupo, lotes.dt_importacao, lotes.qtd_pecas, relogios.ds_relogio order by grupos.grup_descr_grupo --------------------------------------------------------------------------------------- select vendedores.ven_nome, clientes.clie_nome, mao_obra.mobra_condicoes, contas_receber.crecebe_dt_vcto, contas_receber.crecebe_vl_parcela, mao_obra.mobra_vlr_contrato, contas_receber.crecebe_nr_parcela, contas_receber.crecebe_nr_contrato, mao_obra.mobra_cod_mao_obra, mao_obra.mobra_vlr_comissao from "contas_receber.db" contas_receber, "mao_obra.db" mao_obra, "clientes.db" clientes, "vendedores.db" vendedores where (contas_receber.crecebe_dt_pgto is null) and (contas_receber.crecebe_dt_vcto >= :dtinicial and contas_receber.crecebe_dt_vcto <= :dtfinal) and ((mao_obra.mobra_cod_mao_obra = contas_receber.crecebe_cd_mao_obra) and (mao_obra.mobra_cod_cliente = clientes.clie_cod) and (mao_obra.mobra_cod_vendedor = vendedores.ven_cod)) order by mao_obra.mobra_cod_mao_obra, contas_receber.crecebe_dt_vcto, contas_receber.crecebe_nr_parcela --------------------------------------------------------------------------------------- select pasta_cliente.dat_pagamento, cliente.nom_cliente, pasta_cliente.val_total, pasta_cliente.val_desconto, pasta_cliente.pln_adotado, (pasta_cliente.val_total - pasta_cliente.val_desconto) as valor from cliente cliente, pasta_cliente pasta_cliente where (pasta_cliente.num_cpf = cliente.num_cpf) and (pasta_cliente.dat_pagamento >= #01/06/1999# and pasta_cliente.dat_pagamento <= #30/06/1999#) --------------------------------------------------------------------------------------- var resp : integer; begin if dm_qr.socios_sintese_rel_qr.active then dm_qr.socios_sintese_rel_qr.close; edit2.selectall; if edit2.sellength = 0 then edit2.text := edit1.text; if dm_qr.socios_sintese_rel_qr.active then dm_qr.socios_sintese_rel_qr.close; dm_qr.socios_sintese_rel_qr.parambyname('cod_inicial').asinteger := strtoint(edit1.text); dm_qr.socios_sintese_rel_qr.parambyname('cod_final').asinteger := strtoint(edit2.text); dm_qr.socios_sintese_rel_qr.open; if dm_qr.socios_sintese_rel_qr.recordcount > 0 then begin resp := application.messagebox('deseja previsulizar impressão ?', 'previsualizar', mb_yesnocancel+mb_iconquestion); if resp = idcancel then exit; if resp = idyes then qreport_socios_sintese .preview else qreport_socios_sintese.print; end else application.messagebox('não há registros ! ','erro !', mb_ok + mb_iconquestion) --------------------------------------------------------------------------------------- procedure tfrmcomissao.bitbtn2click(sender: tobject); begin try application.createform(tfrmrelcomisao, frmrelcomisao); with frmrelcomisao do begin qrycomisao.parambyname('vardatai').asdate:=data1.date; qrycomisao.parambyname('vardataf').asdate:=data2.date; qrycomisao.parambyname('varvendedor').asstring:=dblookupcombobox1.text+'%'; qrycomisao.prepare; qrycomisao.open; quickrep1.preview; qrycomisao.close; end; finally frmrelcomisao.free; end; end; --------------------------------------------------------------------------------------- procedure tform1.button1click(sender: tobject); begin query1.sql.clear; query1.sql.add('digite aqui a string sql seguindo os exemplos abaixo'); try query1.open; // abre a base except query1.execsql; // executa o comando sql end; // mostra os três primeiros registros da base showmessage(query1.fields.fields[0].asstring); showmessage(query1.fields.fields[1].asstring); showmessage(query1.fields.fields[2].asstring); end; --------------------------------------------------------------------------------------- if datetimepicker2.date < datetimepicker1.date then begin showmessage('intervalo de datas inválido, a data inicial é maior que a data final!'); datetimepicker2.date := datetimepicker1.date; end else begin inicio := datetostr(datetimepicker1.date); final := datetostr(datetimepicker2.date); query1.close; query1.sql.clear; query1.sql.text := 'select nome,empresa,foneres,fonecom,mala from contatos '+ 'where data >=:pinicial and data <=:pfinal order by nome'; query1.parambyname('pinicial').asdatetime := strtodate(inicio); query1.parambyname('pfinal').asdatetime := strtodate(final); query1.prepare; query1.open; dbgrid3d1.setfocus end; label3.caption := 'total de contatos: ' + inttostr(query1.recordcount) --------------------------------------------------------------------------------------- procedure tform1.button1click(sender: tobject); begin query1.close; query1.sql.clear; query1.sql.add('delete from cliente'); query1.execsql; table1.refresh; { end; --------------------------------------------------------------------------------------- procedure tform1.bitbtn1click(sender: tobject); begin query1.close; {deactivate the query as a precaution } query1.sql.clear; {erase any previous query} if memo1.lines[0] <> '' {check for a blank entry} then query1.sql.add(memo1.text) {assign the sql property the memo's text} else begin messagedlg('no sql statement entered', mterror, [mbok], 0); exit; end; try {trap errors} query1.open; {execute the statement and open the dataset} except {error handling section} on e : edatabaseerror do {e is the new handle for the error} messagedlg(e.message, mterror, [mbok],0); {display the message property of e} end; {end error trapping} end; --------------------------------------------------------------------------------------- procedure tform1.bitbtn1click(sender: tobject); begin query1.close; {deactivate the query as a precaution } if not query1.prepared then query1.prepare; {make sure the query is prepared} {take the value entered by the user and replace the parameter with the value.} if edit1.text <> '' {check for blank entry} then query1.parambyname('dept_no').asstring := edit1.text else begin query1.parambyname('dept_no').asinteger := 0; edit1.text := '0'; end; try {trap errors} query1.open; {execute the statement and open the dataset} except {error handling section} on e : edatabaseerror do {e is the new handle for the error} messagedlg(e.message, mterror, [mbok],0); {display the message property of e} end; {end error trapping} end; --------------------------------------------------------------------------------------- procedure tform1.datasource2datachange(sender: tobject; field: tfield); begin query1.close; if not query1.prepared then query1.prepare; query1.parambyname('dept_no').asinteger := table1dept_no.asinteger; try query1.open; except on e : edatabaseerror do messagedlg(e.message, mterror, [mbok], 0); end; end; --------------------------------------------------------------------------------------- procedure tform1.bitbtn1click(sender: tobject); var sqlstring : string; {this will hold the sql statement} fmtstr1, fmtstr2 : string; {these will hold the strings to pass to format} begin { create the framework of the query } sqlstring := 'select emp_no %s from employee where salary %s'; if showsalarychkbox.checked {if the salary check box has a check} then fmtstr1 := ', salary' else fmtstr1 := ''; if salaryedit.text <> '' { if the salary edit box isn't blank } then fmtstr2 := salaryedit.text else fmtstr2 := '>0'; query1.close; {deactivate the query as a precaution } query1.sql.clear; {erase any previous query} query1.sql.add(format(sqlstring,[fmtstr1, fmtstr2]));{add the formatted} {string to the sql property} try {trap errors} query1.open; {execute the query and open the dataset} except {error handling section} on e : edatabaseerror do {e is the new handle for the error} messagedlg(e.message, mterror,[mbok],0); {display the message property of e} end; {end error trapping} end; --------------------------------------------------------------------------------------- the query is a parametrized type. properties: sql = select code, name, location, type from mytable mytable where code like :searchstring active = false parameters --> searchstring --> ftstring as mentioned before, cbselect will indicate the column searched. in the sql statement the column is located after 'where' items of cbselect: code name location gender events: on form create procedure tform1.formcreate(sender: tobject); begin inherited; sstring :='%%'; cbselect.itemindex := 0; end; typing in the search criteria in the teditbox procedure tform1.edtselectchange(sender: tobject); begin inherited; sstring := '%' + edtselect.text + '%'; end; firing the query procedure tform1.bbtnselectclick(sender: tobject); begin inherited; with myquery do begin close; sql.clear; sql.add('select code, name, location, type'); sql.add('from mytable mytable'); case cbselect.itemindex of 0: begin sql.add('where code like :searchstring'); parambyname('searchstring').asstring := sstring; end; 1: begin sql.add('where name like :searchstring'); parambyname('searchstring').asstring := sstring; end; 2: begin sql.add('where location like :searchstring'); parambyname('searchstring').asstring := sstring; end; 3: begin sstring := 'm'; edtselect.text:= 'm'; sql.add('where gender = "m"'); end; 4: begin sstring := 'f'; edtselect.text:= 'f'; sql.add('where gender = "f"'); end; end; {case} sql.add('order by code, gender'); open; end; { with } recordsretrieved := myquery.recordcount; sbstatusbar.panels[2].text:= inttostr(recordsretrieved) + ' records'; end; --------------------------------------------------------------------------------------- procedure tform1.edit1change(sender: tobject); begin with edit1 do if text <> '' then begin query1.filter := 'codigo = '''+edit1.text+''''; query1.findfirst; end; end; outra maneira poderia ser: procedure tform1.edit1change(sender: tobject); begin with edit1 do if text <> '' then query1.locate('codigo',edit1.text,[lopartialkey]); end; --------------------------------------------------------------------------------------- procedure tfrmconsvendedor.btconsultarclick(sender: tobject); begin with qryvendedor do begin close; parambyname('varvendedor').asstring := edit1.text+'%'; prepare; open; end; if qryvendedor.recordcount=0 then begin showmessage('vendedor não encontrado!'); end; end; select vendedor.codigo,vendedor.vendedor from vendedor where upper(vendedor) like upper(:varvendedor) order by vendedor.vendedor --------------------------------------------------------------------------------------- procedure tfrmconspedidos.btconsultarclick(sender: tobject); begin with qrypedidos do begin close; parambyname('varcliente').asstring := edit1.text+'%'; parambyname('vardatai').asdate := data1.date; parambyname('vardataf').asdate := data2.date; prepare; open; end; if qrypedidos.recordcount=0 then begin showmessage('nenhum pedido foi encontrado com esses dados!'); end; end; select pedidos.numero, pedidos.dataped,clientes.nome from pedidos,clientes,vendedor where pedidos.codcliente = clientes.codigo and pedidos.codvendedor = vendedor.codigo and upper(clientes.nome) like upper(:varcliente) and pedidos.dataped between :vardatai and :vardataf order by pedidos.dataped, clientes.nome --------------------------------------------------------------------------------------- listbox - radiogroup - edit - datamodule - query - listbox procedure tfrmlike.btnselecionarclick(sender: tobject); begin with dmlike.qrycountry do begin close; case radiogroup1.itemindex of 0: params[0].asstring := uppercase(edit1.text + '%'); 1: params[0].asstring := uppercase('%' + edit1.text); 2: params[0].asstring := uppercase('%' + edit1.text + '%'); end; open; // preencher a listbox listbox1.items.clear; while not eof do begin listbox1.items.add(fields[0].asstring); next; end; end; end; select * from country where upper(name) like :nomepais --------------------------------------------------------------------------------------- procedure tcalcform.query1calcfields(dataset: tdataset); begin query1densidade.value := query1population.value / query1area.value; end; --------------------------------------------------------------------------------------- procedure tfrmconspedidos.btconsultarclick(sender: tobject); begin with qrypedidos do begin close; parambyname('varcliente').asstring:=edit1.text+'%'; parambyname('vardatai').asdate:=data1.date; parambyname('vardataf').asdate:=data2.date; prepare; open; end; if qrypedidos.recordcount=0 then begin showmessage('nenhum pedido foi encontrado com esses dados!'); end; end; sql *** select pedidos.numero, pedidos.dataped,clientes.nome from pedidos,clientes,vendedor where pedidos.codcliente=clientes.codigo and pedidos.codvendedor=vendedor.codigo and upper(clientes.nome) like upper(:varcliente) and pedidos.dataped between :vardatai and :vardataf order by pedidos.dataped, clientes.nome --------------------------------------------------------------------------------------- insrira um dbgrid + dois edits + datasource + query procedure tform1.mediaclick(sender: tobject); begin query1.sql.text := 'select * from le where media >= ' + edit2.text; query1.active := true; end; procedure tform1.mostratodosclick(sender: tobject); begin query1.sql.text := 'select * from le'; query1.active := true; end; procedure tform1.nomeclick(sender: tobject); begin query1.sql.text := 'select nome from le'; query1.active:=true; end; procedure tform1.edit1change(sender: tobject); begin query1.sql.text := 'select * from le where nome like "' + edit1.text + '%"'; query1.active:=true; end; select * from le --------------------------------------------------------------------------------------- query1.close; query1.sql.clear; query1.sql.add('select * from clientes where clie_nome = ' + quotedstr(edit1.text)); query1.open; --------------------------------------------------------------------------------------- begin //var //cliente : string; // definindo variável begin //cliente := inputbox( ' digite um nome ' , ' procura ' , '' ); query1.close; query1.sql.clear; query1.sql.add('select * from clientes'); query1.sql.add('where upper(clientes.clie_nome) like upper(:xnome)'); //query1.parambyname('xnome').asstring := edit1.text; query1.open; end; --------------------------------------------------------------------------------------- query1.close; query1.sql.text := 'select * from clientes whereclie_data_aniver >= :hoje'; query1.parambyname('hoje').asdate := date; query1.open; --------------------------------------------------------------------------------------- query1.close; query1.sql.clear; query1.sql.add('select * from clientes'); query1.sql.add('where extract(year from clie_data_aniver) = :mes'); query1.parambyname('mes').asinteger := strtoint(edit1.text); query1.open; --------------------------------------------------------------------------------------- begin with grafico_qr do begin close; parambyname('dta_inicial').asdate := data1.date; parambyname('dta_final').asdate := data2.date; prepare; open; end; if (grafico_qr.recordcount=1) then // and (qrygraficototal.value=0) then showmessage('não existe registros neste período'); end; select func_nome, func_cargo, func_data_admissao, func_salario from "funcionarios.db" funcionarios where (func_data_nasc >= :dta_inicial) and (func_data_nasc <= :dta_final) order by func_data_nasc --------------------------------------------------------------------------------------- query1.close; query1.sql.clear; query1.sql.add('select * from dcli'); query1.sql.add('where extract(month from datanasc) = :mes'); query1.parambyname('mes').asinteger := strtoint(edit1.text); query1.open; --------------------------------------------------------------------------------------- var resposta : string; begin resposta := inputbox('digite um código','código', resposta); if resposta = '' then begin application.messagebox('nada foi digitado...' , 'atenção', + mb_ok); query1.active := false; exit; end else begin query1.active := false; query1.close; query1.sql.clear; query1.sql.add('select * from clientes '); query1.sql.add('where clie_cod = :xcod'); query1.parambyname('xcod').asinteger := strtoint(resposta); query1.active := true; // mostra registros no grid end; if query1.recordcount = 0 then // se registro não existir begin application.messagebox('nenhum registro foi encontrado...' , 'erro', + mb_ok + mb_iconwarning); end; end; --------------------------------------------------------------------------------------- with query1 do begin close; parambyname('nomex').asstring := '%' + edit1.text + '%'; parambyname('dta_inicial').asdate := datetimepicker1.date ; parambyname('dta_final').asdate := datetimepicker2.date; prepare; open; end; if query1.recordcount = 0 then begin application.messagebox('favor informar um código', 'erro', + mb_ok + mb_iconwarning); end; end; --------------------------------------------------------------------------------------- var cliente : string; // definindo variável begin cliente := inputbox( ' digite um nome ' , ' procura ' , '' ); if cliente <> '' then // se for digitado algo begin with query1 do begin parambyname('xnome').asstring := '%' + cliente + '%' ; open; if isempty then begin application.messagebox('não existe nome ' , 'erro', + mb_ok ); end; end; end; end; ----- select clie_codigo, clie_nome, clie_cidade from "clientes.db" clientes where upper(clie_nome) like upper(:xnome) order by clie_nome --------------------------------------------------------------------------------------- query1.close; query1.parambyname('xnome').asstring := '%' + edit1.text + '%' ; query1.open; label2.caption := inttostr(query1.recordcount); --- select clie_nome, clie_cidade, clie_fone, clie_data_aniver from "clientes.db" clientes where upper(clie_nome) like upper(:xnome) order by clie_nome --------------------------------------------------------------------------------------- var instrucsql: string; procedure tform1.sqlbtnclick(sender: tobject); var ok : boolean; begin instrucsql:=' '; ok:= inputquery ('sql','entre com uma isntrução sql',instrucsql); if ok then begin query1.close; query1.sql.clear; query1.sql.add (instrucsql); query1.open; end; end; --------------------------------------------------------------------------------------- select fs.nr_ficha, fs.data, fs.dependente_outro, fs.valor, so.nome_socio, so.cod_socio , em.nome_empresa from "ficha_sindical.db" fs, "socios.db" so, "empresas.db" em where (fs.data >= :data_ini) and (fs.data <= :data_fim) and (so.cod_empresa >= :cod_empini) and (so.cod_empresa <= :cod_empfim) and (fs.ficha_cod_socio = so.cod_socio) and (so.cod_empresa = em.cod_empresa) order by fs.data --------------------------------------------------------------------------------------- select socios.cod_socio, socios.nome_socio, socios.status, socios.data_ingressao, empresas.nome_empresa, empresas.cod_empresa from "empresas.db" empresas inner join "socios.db" socios on (socios.cod_empresa = empresas.cod_empresa) where (socios.cod_empresa >= :empini) and (socios.cod_empresa <= :empfim) and socios.status = 0 or socios.status = 3 order by empresas.nome_empresa, socios.cod_socio --------------------------------------------------------------------------------------- select pagtos.cod_socio, pagtos.data_pagto, pagtos.valor, pagtos.data_vencto, pilotos.nome_piloto, pagtos.ano, pagtos.semestre from "pagtos.db" pagtos inner join "pilotos.db" pilotos on (pagtos.cod_socio = pilotos.codigo) where pagtos.data_pagto is not null order by pagtos.ano, pagtos.semestre, pilotos.nome_piloto --------------------------------------------------------------------------------------- {$r *.dfm} var instrucsql: string; procedure tform1.sqlbtnclick(sender: tobject); var ok : boolean; begin instrucsql:=' '; ok:= inputquery ('sql','entre com uma isntrução sql',instrucsql); if ok then begin query1.close; query1.sql.clear; query1.sql.add (instrucsql); query1.open; end; end; --------------------------------------------------------------------------------------- count = select count(*) from "tabela" where data_nascimento="03/23/98"''- select count(nome) as total_pessoas from "tabela" sum = select sum(salario) as liquido_total from "tabela" max = select max(salario) as maior_salario from "tabela" min = select min(salario) as pobretão from "tabela" avg = select avg(salario) as média_salarial from "tabela" substring = select substring(nome from 1 for 10) from "tabela" select empno, sal, sal*12 from emp; select ename, sal +250 * 12 from emp; select ename, (sal + 250) * 12 from emp; o operador de concatenação permite ligar uma coluna a outra. select empno||ename empregado from emp; select ename, job, sal from emp order by job desc, sal select ename, job, sal from emp order by job desc, sal desc; select ename, job, hiredate, sal, deptno from emp where sal > 500 and job ='clerk' and (hiredate='03-dec-81' or hiredate='17-dec-80); select ename, job, hiredate, sal, deptno from emp where sal > 500 and job = 'clerk' or (hiredate = '03-dec-81' and hiredate = '17-dec-80'); select ename, sal from emp where sal between 1000 and 2000; select * from "tabela" where extract(day from data_nascimento) = 2 - select * from "tabela" where extractmonth from data_nascimento) =3 - select * from "tabela" where extract(year from data_nascimento) = 1965 entora.sql.text :=('select * from "nome da tabela" fornecedor where fornecedor like "'+nome+'%" and observacao like "'+city+'%" and operacao like "'+operacao+'%" and rodo between '+'"'+ inicial.text+'" and '+'"'+ final.text+'" and data_entrada between '+'"'+ edit9.text+'" and '+'"'+ edit10.text+'"'); --------------------------------------------------------------------------------------- select job, max(sal ) from emp group by job; --------------------------------------------------------------------------------------- select job, min(sal) from emp group by job; --------------------------------------------------------------------------------------- select max(sal) where job = 'clerk' group by job; --------------------------------------------------------------------------------------- select min(sal) where job = 'clerk' group by job; --------------------------------------------------------------------------------------- select deptno, avg(sal) from emp group by deptno; --------------------------------------------------------------------------------------- select max(avg(sal)) from emp group by job; --------------------------------------------------------------------------------------- select employeeidno from employeestatisticstable where salary >= 50000; --------------------------------------------------------------------------------------- select employeeidno from employeestatisticstable where position = 'manager'; --------------------------------------------------------------------------------------- select employeeidno from employeestatisticstable where salary > 40000 and position = 'staff'; --------------------------------------------------------------------------------------- select employeeidno from employeestatisticstable where salary < 40000 or benefits < 10000; --------------------------------------------------------------------------------------- select employeeidno from employeestatisticstable where position = 'manager' and salary > 60000 or benefits > 12000; --------------------------------------------------------------------------------------- select employeeidno from employeestatisticstable where position = 'manager' and (salary > 500 or benefit > 100); --------------------------------------------------------------------------------------- select employeeidno from employeestatisticstable where position in ('manager', 'staff'); --------------------------------------------------------------------------------------- select employeeidno from employeestatisticstable where salary between 300 and 500; --------------------------------------------------------------------------------------- select employeeidno from employeestatisticstable where salary not between 300 and 500; --------------------------------------------------------------------------------------- utilização do like no sql resposta: com este operador, podemos comparar cadeias de caracteres utilizando padrões de comparação (wildcard) para um ou mais caracteres. normalmente, o caracter percentual (%) substitui zero, um ou mais caracteres e sublinha (_) substitui um caracter. expressão explicação: like 'a%' Todas as palavras que iniciem com a letra a. like '%a' Todas que terminem com a letra a. like '%a%' Todas que tenham a letra a em qualquer posição. like 'a_' String de dois caracteres que tenham a primeira letra a e o segundo caractere seja qualquer outro. like '_a' String de dois caracteres cujo primeiro caractere seja qualquer um e a última letra seja a. like '_a_' String de três caracteres cuja segunda letra seja a, independentemente do primeiro ou do último caractere. like '%a_' Todos que tenham a letra a na panúltima posição e a última seja qualquer outro caractere. like '_a%' Todos que tanham a letra a na segunda posição e o primeiro caractere seja qualquer um. --------------------------------------------------------------------------------------- procedure tform1.bitbtn1click(sender: tobject); begin query1.close; query1.sql.add('select teste1.codigo, teste1.nome'); query1.sql.add('from teste1 '); query1.sql.add('where '); query1.sql.add('(teste1.nome like :nome1) '); query1.params[0].asstring := ‘%’+edit1.text+’%’; query1.open; end; --------------------------------------------------------------------------------------- procedure tfrmsenha.btnlogarclick(sender: tobject); begin with dmbasedados.ibquery_login do begin sql.clear; sql.add('select login, senha from tabcad_usuario'); sql.add('where login like '+#39+(edtlogin.text)+#39' and senha like '+#39+(edtsenha.text)+#39''); open; end; if dmbasedados.ibquery_login.isempty then begin application.messagebox ('acesso negado','dados inválidos',mb_iconerror + mb_ok); edtlogin.text:=''; edtsenha.text:=''; edtlogin.setfocus; end else begin messagedlg('confirmamos sua senha!', mtinformation, [mbok],0); end; application.createform(tfrmprincipal,frmprincipal); frmprincipal.showmodal; frmprincipal.release; end; --------------------------------------------------------------------------------------- procedure tform2.button1click(sender: tobject); begin if radiobutton1.checked=true then query1.parambyname('fältparameter').asstring := 'namn'; if radiobutton2.checked=true then query1.parambyname('fältparameter').asstring := 'kemnamn'; with query1 do begin close; query1.parambyname('sökparameter').asstring := '%'+edit1.text+'%'; execsql; open; end; end; --------------------------------------------------------------------------------------- qrexpr1.expression := sum(field1); qrexpr2.expression := sum(field2); qrexpr3.expression := sum(field1+field2); --------------------------------------------------------------------------------------- Var Resp : Integer; ind : integer; dado : TDados; begin ind := cbFornecedores.ItemIndex; QReport_Pagar_Forn_Rel.dtIni := Dtp_dta_ini.date; //Now-300 QReport_Pagar_Forn_Rel.dtFim := Dtp_dta_final.date; //Now+300; if ind >= 0 then begin dado := TDados(cbFornecedores.Items.Objects[ind]); QReport_Pagar_Forn_Rel.cdForn := dado.Cod; end else QReport_Pagar_Forn_Rel.cdForn := -1; if QReport_Pagar_Forn_Rel.parcelas_sql.Active then QReport_Pagar_Forn_Rel.parcelas_sql.Close; QReport_Pagar_Forn_Rel.parcelas_sql.Open; QReport_Pagar_Forn_Rel.ReportTitle := 'Pagar - Fornecedores'; if QReport_Pagar_Forn_Rel.parcelas_sql.RecordCount > 0 then Begin Resp := Application.MessageBox('Deseja previsualizar impressão ?', 'Previsualizar', Mb_YesNo+Mb_IconQuestion); if Resp = idyes then QReport_Pagar_Forn_Rel.Preview; if Resp = idNo then QReport_Pagar_Forn_Rel.Print; // Exit; end else Begin Application.MessageBox('Não há registros ! ','Erro !', Mb_Ok + Mb_IconQuestion); exit; end; end; --------------------------------------------------------------------------------------- QRLabel8.Caption := FormatDateTime('"Timbó, "dd" de "mmmm" de " yyyy',Now); --------------------------------------------------------------------------------------- QRExpr1.Mask := CurrencyString + '##,##0.00'; --------------------------------------------------------------------------------------- If (Edit_Cod_Inicial.Text = '') or (Edit_Cod_Final.Text = '') then Begin Application.MessageBox('Informe um CÓDIGO INICIAL e FINAL', 'Erro ! - Clique OK',mb_Ok + MB_ICONERROR); if Edit_Cod_Inicial.Text = '' then Edit_Cod_Inicial.SetFocus else Edit_Cod_Final.SetFocus; Exit; end; Rel_Contas_Pagar2.Contas_Pagar_TB.Open; Rel_Contas_Pagar2.Contas_Pagar_TB.IndexName := 'INr_Cheque'; Rel_Contas_Pagar2.Contas_Pagar_TB.SetRange([Edit_Cod_Inicial.Text], [Edit_Cod_Final.Text]); Try // Try ... Finally ... End if Rel_Contas_Pagar2.RecordCount = 0 then begin Application.MessageBox('Não há registros neste intervalo !', 'Erro ! - Clique OK',Mb_Ok + Mb_IconError); Exit; end; Rel_Contas_Pagar2.Preview; // Mostra relatório Finally Rel_Contas_Pagar2.Contas_Pagar_TB.CancelRange; End; // Try ... Finally ... End end; --------------------------------------------------------------------------------------- Var Resp : Integer; begin Resp := Application.MessageBox('Deseja previsulizar impressão ?', 'Previsualizar', Mb_YesNo + Mb_IconQuestion); if Resp = idNo then Exit; if Resp = idyes then Begin DM_Qr.Mensalidades_Rel_Qr.Open; QReport_Mensalidades.Preview; end else Begin QReport_Mensalidades.Print; DM_Qr.Mensalidades_Rel_Qr.Close ; end; end; --------------------------------------------------------------------------------------- var Resp : Integer; begin if DM_Qr.Mensalidades_Cara_Rel_Qr.Active then DM_Qr.Mensalidades_Cara_Rel_Qr.Close; DM_Qr.Mensalidades_Cara_Rel_Qr.ParamByName('Cod_Inicial').AsInteger := StrToInt(DBEdit5.Text); DM_Qr.Mensalidades_Cara_Rel_Qr.ParamByName('Cod_Final').AsInteger := StrToInt(DBEdit5.Text); DM_Qr.Mensalidades_Cara_Rel_Qr.ParamByName('Cod_Inicial_Emp').AsInteger := StrToInt(DBEdit1.Text); DM_Qr.Mensalidades_Cara_Rel_Qr.ParamByName('Cod_Final_Emp').AsInteger := StrToInt(DBEdit1.Text); DM_Qr.Mensalidades_Cara_Rel_Qr.Open; if DM_Qr.Mensalidades_Cara_Rel_Qr.RecordCount > 0 then begin Resp := Application.MessageBox('Deseja previsualizar impressão ?', 'Previsualizar', Mb_YesNoCancel+Mb_IconQuestion); if Resp = idCancel then Exit; if Resp = idyes then QReport_Mensalidades_Cara_Rel.Preview else QReport_Mensalidades_Cara_Rel.Print; end else Application.MessageBox('Não há registros ! ','Erro !', Mb_Ok + Mb_IconQuestion) end; SELECT Mensalidades.Nr_Mensalidade, Mensalidades.Data_Pagto, Mensalidades.Valor, Mensalidades.Mes, Empresas.Nome_Empresa, Socios.Nome_Socio, Socios.Cod_Socio, Empresas.Cod_Empresa From "Mensalidades.DB" Mensalidades, "Empresas.DB" Empresas, "Socios.DB" Socios Where (Mensalidades.Nr_Mensalidade >= :Cod_Inicial) and (Mensalidades.Nr_Mensalidade <= :Cod_Final) and (Empresas.Cod_Empresa >= :Cod_Inicial_Emp) and (Empresas.Cod_Empresa <= :Cod_Final_Emp) --------------------------------------------------------------------------------------- Var Resp : Integer; begin with DM.Assessoria_Qr,DM do begin if Active then Close; ParamByName('Data_Ini').AsDate := Int(DTPDataInicial.Date); ParamByName('Data_Fim').AsDate := Int(DTPDataFinal.Date); Open; if RecordCount = 0 then begin Application.MessageBox('Não há registros ! ', 'Erro !!!', Mb_Ok + Mb_IconQuestion); Exit; end; end; QReport_Assessoria := TQReport_Assessoria.Create(self); Try Resp := Application.MessageBox('Deseja previsualizar impressão ?', 'Previsualizar', Mb_YesNoCancel+Mb_IconQuestion); if Resp = idCancel then Exit; if Resp = idyes then QReport_Assessoria.Preview else QReport_Assessoria.Print; Finally QReport_Assessoria.Free; end; end; --------------------------------------------------------------------------------------- procedure TForm_Sel_Ped_Deslig_Quadro_Social.btnImprimeClick( Sender: TObject); begin With DM_Qr.Ped_Deslig_Quadro_Social_qr do begin if Active then close; ParamByName('dtIni').AsDateTime := dtInicial.Date; ParamByName('dtFim').AsDateTime := dtFinal.Date; Open; if RecordCount = 0 then begin Application.MessageBox('Não há registros ! ', 'Erro !!!', Mb_Ok + Mb_IconQuestion); Exit; end; end; if TBitBtn(Sender).Tag = 1 then Qreport_Ped_Deslig_Quadro_Social.Preview else Qreport_Ped_Deslig_Quadro_Social.Print; end; SELECT Pedido_desligamento.Data_Pedido_Desliga, Socios.Nome_Socio, Empresas.Nome_Empresa, Socios.Cod_Socio, Empresas.Cod_Empresa FROM "Pedido_Desligamento.DB" Pedido_desligamento INNER JOIN "Socios.DB" Socios ON (Pedido_desligamento.Cod_Socio_Relaciona = Socios.Cod_Socio) INNER JOIN "Empresas.DB" Empresas ON (Socios.Cod_Empresa = Empresas.Cod_Empresa) WHERE (Pedido_desligamento.Data_Pedido_Desliga >= :DtIni) and (Pedido_desligamento.Data_Pedido_Desliga <= :DtFim) ORDER BY Empresas.Nome_Empresa, Socios.Nome_Socio --------------------------------------------------------------------------------------- procedure TSel_Clientes_Rel.Bit_CodigoClick(Sender: TObject); begin If (Edit3.Text = '') or (Edit4.Text = '') then Begin Application.MessageBox('Informe um CÓDIGO INICIAL e FINAL', 'Erro ! - Clique OK',mb_Ok + MB_ICONERROR); if Edit3.Text = '' then Begin Edit3.SetFocus; Exit end else Edit4.SetFocus; end; QReport_Clientes.Table1.Open; QReport_Clientes.Table1.IndexName := ''; QReport_Clientes.Table1.SetRange([Edit3.Text], [Edit4.Text]); Try if QReport_Clientes.Table1.RecordCount = 0 then begin Application.MessageBox('Não há registros neste intervalo !', 'Erro ! - Clique OK',Mb_Ok + Mb_IconError); Exit; end; QReport_Clientes.Preview; // Mostra relatório Finally QReport_Clientes.Table1.CancelRange; End; // Try ... Finally ... End end; --------------------------------------------------------------------------------------- procedure TSel_Clientes_Rel.Bit_DataClick(Sender: TObject); // Relatório POR DATA - Crie um INDICE com a DATA DE VENCTO Begin If (Edit1.Text = '') or (Edit2.Text = '') then Begin Application.MessageBox('Informe um DATA INICIAL e FINAL', 'Erro ! - Clique OK',mb_Ok + MB_ICONERROR); if Edit1.Text = '' then Begin Edit1.SetFocus; Exit end else Edit2.SetFocus; end; QReport_Clientes.Table1.Open; QReport_Clientes.Table1.IndexName := 'IData_Nasc'; QReport_Clientes.Table1.SetRange([Edit1.Text], [Edit2.Text]); Try if QReport_Clientes.Table1.RecordCount = 0 then begin Application.MessageBox('Não há registros neste intervalo !', 'Erro ! - Clique OK',Mb_Ok + Mb_IconError); Exit; end; QReport_Clientes.Preview; Finally QReport_Clientes.Table1.CancelRange; End; // Try ... Finally ... End end; --------------------------------------------------------------------------------------- Var Cliente : String; begin Cliente :=InputBox('Consulta Cliente selecionado','Informe o Nome Completo',''); if Cliente <> '' then begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT * FROM CLIENTES WHERE cli_nome = ' + quotedStr(cliente)); Query1.Open; // quotedStr - aspas simples; end; --------------------------------------------------------------------------------------- With Table1 do begin Active :=true; SetRange([Edit1.text],[Edit2.text]); ApplyRange; end; --------------------------------------------------------------------------------------- With Edit3 do if Text <> '' then DM_Qr.Produtos_Todos_Qr.Locate('Prod_Codigo', Edit3.text, [LoPartialKey]); --------------------------------------------------------------------------------------- With Edit4 do if Text <> '' then DM_Qr.Produtos_Todos_Qr.Filter := 'Prod_Codigo = ''' + Edit4.Text + ''''; DM_Qr.Produtos_Todos_Qr.FindFirst; --------------------------------------------------------------------------------------- If Edit5.Text <> '' then begin DM_Qr.Query1.Close; DM_Qr.Query1.SQL.Clear; DM_Qr.Query1.SQL.Add('SELECT * FROM Produtos WHERE Prod_codigo = ' + Edit5.text); end; --------------------------------------------------------------------------------------- DM_Qr.Query3.Active := False; DM_Qr.Query3.Close; DM_Qr.Query3.SQL.Clear; DM_Qr.Query3.SQL.Add('SELECT Count(Prod_Qtde) RegsX FROM Produtos.db'); DM_Qr.Query3.Open; Edit6.Text := DM_Qr.Query3.FieldByName('RegsX').AsString; --------------------------------------------------------------------------------------- DM_Qr.Query3.Active := False; DM_Qr.Query3.Close; DM_Qr.Query3.SQL.Clear; DM_Qr.Query3.SQL.Add('SELECT SUM(Prod_Qtde)'); DM_Qr.Query3.SQL.Add('FROM Produtos'); DM_Qr.Query3.Active := True; --------------------------------------------------------------------------------------- DM_Qr.Query3.Active := False; DM_Qr.Query3.Close; DM_Qr.Query3.SQL.Clear; DM_Qr.Query3.SQL.Add('SELECT Prod_Descricao FROM Produtos WHERE'); DM_Qr.Query3.SQL.Add('Prod_Descricao = ' + QuotedStr(Edit_Valor1.Text)); DM_Qr.Query3.SQL.Add('OR Prod_Descricao = ' + QuotedStr(Edit_Valor2.Text)); DM_Qr.Query3.Active := True; --------------------------------------------------------------------------------------- With Query1 do Begin Close; ParamByname('NomeX').AsString := '%' + Edit1.text + '%'; ParamByname('Data_Inicial').AsDate := DateTimePicker1.Date; ParamByname('Data_Final').AsDate := DateTimePicker2.Date; Prepare; Open; end; if Query1.RecordCount = 0 then begin Application.MessageBox('Favor informar um nome ', 'Erro', + Mb_ok + Mb_iconWarning); end; SELECT For_codigo, For_nome, For_Email, For_DataNas FROM "fornec.DB" Fornec WHERE For_nome like :NomeX and (For_DataNas >= :Data_Inicial) and (For_DataNas <= :Data_Final) ORDER BY For_nome --------------------------------------------------------------------------------------- Query1.close; Query1.ParamByName('Xnome').AsString := '%'+ Edit1.text + '%'; Query1.open; Edit1.SetFocus; // Volta ao campo de pesquisa. SELECT For_codigo, For_nome, For_Email FROM "fornec.DB" Fornec WHERE UPPER(For_nome) LIKE Upper(:Xnome) ORDER BY For_nome --------------------------------------------------------------------------------------- Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT * FROM FORNEC WHERE FOR_NOME =:Xnome'); Query1.ParamByName('Xnome').AsString:=Edit1.text; Query1.Open; --------------------------------------------------------------------------------------- if edit2.text <> '' then begin qremp.close; qremp.sql.clear; qremp.sql.add('select empno,firstname,lastname,salary from employee'); qremp.sql.add('where upper(firstname) like :nome'); qremp.parambyname('nome').asstring := uppercase(edit2.text) + '%'; qremp.open; end; --------------------------------------------------------------------------------------- - RadioGroup com as opções: Codigo - Cidade - Fone - Data Nasc. - EditBox - Grid --- Var Global var Consulta_Cli_Frm: TConsulta_Cli_Frm; QuerySQL : String; //***** --- OnShow QuerySQL := 'Select * FROM Clientes.DB'; Clientes_Query.SQL.Add(QuerySQL); Clientes_Query.Open; RadioGroup1.ItemIndex := 1; //Abre Ordenando Por Nome Pesquisa_Edit.SetFocus; --- OnDblClick var campo:string; begin campo := column.fieldname; with Clientes_Query do begin close; Sql.clear; Sql.add('Select * from Clientes'); Sql.add('Order by '+ campo); if campo = 'Cli_Codigo' then RadioGroup1.ItemIndex := 0; if campo = 'Cli_Nome' then RadioGroup1.ItemIndex := 1; if campo = 'Cli_Cidade' then RadioGroup1.ItemIndex := 2; if campo = 'Cli_Data_Nas' then RadioGroup1.ItemIndex := 3; open; end; end; --- RadioGroup1Click begin Case RadioGroup1.ItemIndex of 0 : begin // Ordenar por Codigo Clientes_Query.Close; Clientes_Query.SQL.Clear; Clientes_Query.SQL.Add('SELECT Cli_Codigo, Cli_Nome, Cli_Endereco,' + #13 + 'Cli_Cidade, Cli_Data_Nas, Cli_Fone, Cli_CEP'+ #13 + 'FROM "Clientes.DB" Clientes Order by Cli_Codigo'); Clientes_Query.Open; end; 1 : begin // Ordenar por Nome Clientes_Query.Close; Clientes_Query.SQL.Clear; Clientes_Query.SQL.Add('SELECT Cli_Codigo, Cli_Nome, Cli_Endereco,' + #13 + 'Cli_Cidade, Cli_Data_Nas, Cli_Fone, Cli_CEP'+ #13 + 'FROM "Clientes.DB" Clientes Order by Cli_Nome'); Clientes_Query.Open; end; 2 : begin // Ordenar por Cidade Clientes_Query.Close; Clientes_Query.SQL.Clear; Clientes_Query.SQL.Add('SELECT Cli_Codigo, Cli_Nome, Cli_Endereco,' + #13 + 'Cli_Cidade, Cli_Data_Nas, Cli_Fone, Cli_CEP'+ #13 + 'FROM "Clientes.DB" Clientes Order by Cli_Cidade'); Clientes_Query.Open; end; 3 : begin // Ordenar por Data de Nascimento Clientes_Query.Close; Clientes_Query.SQL.Clear; Clientes_Query.SQL.Add('SELECT Cli_Codigo, Cli_Nome, Cli_Endereco,' + #13 + 'Cli_Cidade, Cli_Data_Nas, Cli_Fone, Cli_CEP'+ #13 + 'FROM "Clientes.DB" Clientes Order by Cli_Data_Nas'); Clientes_Query.Open; end; end; end; --- BGrid - DblClick // Estou no DBGrid , clique duplo e abre a tela de CADASTRO novamente begin Application.CreateForm(TClientes_Frm, Clientes_Frm); Clientes_Frm.Clientes_TB.Locate('Cli_Codigo', Clientes_QueryCli_Codigo.Value,[]); Clientes_Frm.ShowModal; end; --------------------------------------------------------------------------------------- Pesquisa intervalo de data If DateTimePicker2.Date < DateTimePicker1.Date Then begin ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!'); DateTimePicker2.Date := DateTimePicker1.Date; end Else begin Inicio := DateToStr(DateTimePicker1.Date); Final := DateToStr(DateTimePicker2.Date); Query1.Close; Query1.SQL.Clear; Query1.SQL.Text := 'SELECT Nome,Empresa,FoneRes,FoneCom,Mala FROM Contatos WHERE Data >=:pInicial and Data<=:pFinal ORDER BY Nome'; Query1.ParamByName('pInicial').AsDateTime := StrToDate(Inicio); Query1.ParamByName('pFinal').AsDateTime := StrToDate(Final); Query1.Prepare; Query1.Open; DBGrid3D1.SetFocus end; Label3.Caption := 'Total de contatos: ' + IntToStr(Query1.RecordCount) --------------------------------------------------------------------------------------- Anoversariantes do mes Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('select * from dCli'); Query1.SQL.Add('where extract(month from DataNasc) = :Mes'); Query1.ParamByName('Mes').AsInteger := StrToInt(Edit1.Text); Query1.Open; --------------------------------------------------------------------------------------- Consultando por datas If DateTimePicker2.Date < DateTimePicker1.Date Then begin ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!'); DateTimePicker2.Date := DateTimePicker1.Date; end Else begin Inicio := DateToStr(DateTimePicker1.Date); Final := DateToStr(DateTimePicker2.Date); Query1.Close; Query1.SQL.Clear; Query1.SQL.Text := 'SELECT Nome,Empresa,FoneRes,FoneCom,Mala FROM Contatos WHERE Data >=:pInicial and Data<=:pFinal ORDER BY Nome'; Query1.ParamByName('pInicial').AsDateTime := StrToDate(Inicio); Query1.ParamByName('pFinal').AsDateTime := StrToDate(Final); Query1.Prepare; Query1.Open; DBGrid3D1.SetFocus end; Label3.Caption := 'Total de contatos: ' + IntToStr(Query1.RecordCount) --------------------------------------------------------------------------------------- Pesquisa de dados Var Resposta : String; Begin Resposta := InputBox('Digite um código','Código', Resposta); if Resposta = '' then begin Application.MessageBox('Nada foi digitado...' , 'ATENÇÃO', + Mb_OK); Query1.Active := False; Exit; end else begin Query1.Active := False; Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT * FROM Clientes '); Query1.SQL.Add('WHERE Clie_Cod = :Xcod'); Query1.ParamByName('Xcod').AsInteger := StrtoInt(Resposta); Query1.Active := True; // mostra registros no grid end; If Query1.RecordCount = 0 then // se registro não existir Begin Application.MessageBox('Nenhum registro foi encontrado...' , 'Erro', + Mb_ok + Mb_IconWarning); end; --------------------------------------------------------------------------------------- Relatório Var Resp : Integer; begin with DM.Assessoria_Qr,DM do begin if Active then Close; ParamByName('Data_Ini').AsDate := Int(DTPDataInicial.Date); ParamByName('Data_Fim').AsDate := Int(DTPDataFinal.Date); Open; if RecordCount = 0 then begin Application.MessageBox('Não há registros ! ', 'Erro !!!', Mb_Ok + Mb_IconQuestion); Exit; end; end; QReport_Assessoria := TQReport_Assessoria.Create(self); Try Resp := Application.MessageBox('Deseja previsualizar impressão ?', 'Previsualizar', Mb_YesNoCancel+Mb_IconQuestion); if Resp = idCancel then Exit; if Resp = idyes then QReport_Assessoria.Preview else QReport_Assessoria.Print; Finally QReport_Assessoria.Free; end; end; ---------------------------------------------------------------------------------------
Afim de aprender mais? Fale comigo: linux1.noip@gmail.com