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