You are on page 1of 3

Ado adoquery query exemplo basico

Insira
ADOConnection1
ADOQuery1
DataSouce1
DBGrid1
Edit1
Button1
1
ADOCONNECTION: Faa a coneo do ADOConnection1 com o banco de dados (pelo
ConnectionString[...])
[Connected] = True
[name]= ADOConnection1
[LoginPrompt] = False
2
ADOQUERY:
Ligue a propriedede [connection] do ADOQuery ao ADOConnection1
na propriedade SQL digite [SELECT * FROM NOME DA TABELA]
[Active]= True
[Name]=ADOQuery1
[Connection]= ADOConnection1
[SQL]= Select * from Nome_da_tabela
3
DATASOURCE:
Ligue a propriedade [DataSet] do DataSource1 ao ADOQuery
[Name]= DataSource1
[DataSet]= ADOQuery1
4
DBGRID:

Ligue a propriedade [DataSource] do DBGrid1 ao DataSouce1


[Name]= DBGrid1
[DataSource] = DataSource1

Evento do Button1
begin
ADOQuery1.Close; {Fecha a query}
ADOQuery1.SQL.Clear; {Limpa o contedo da propriedade SQL}
ADOQuery1.SQL.Add('Select *'); {Selecionar tudo}
ADOQuery1.SQL.Add('From Tab_venda'); {Da tabela Tab_venda}
ADOQuery1.SQL.Add('Where VenNum = "'+Edit1.Text+'"'); {onde Numerodavenda=}
ADOQuery1.Open ;
end;
// SQL.Clear = limpa a propriedade SQL
// SQL.Add = Adiciona na propriedade SQL
Procedure Tfrmpedidomanut.Edit1Change(Sender: TObject);
begin
if edit1.Text <> '' then
begin

ADOQUERY1.Close;
ADOQUERY1.SQL.Clear;
ADOQUERY1.SQL.Add('select * from tbproduto');
ADOQUERY1.SQL.Add('Where descricao Like "'+ edit1.Text +'%"');
ADOQUERY1.SQL.Add('Order By descricao');
ADOQUERY1.Open;
end;
conforme vc digita a adoquery abre, mostra e mostra os produtos no dbgrid que esto na sua
tbproduto
os outros produtos sero eliminados do dbgrid com a digitao deixando somente o produto
desejado e apontando para ele, e ai que esta a manha, a adoquery aponta para o produto
e quando ento toda altereo que acontecer sera com o produto que ela esta apontando,
mas o produto esta la na tabela de material.
O proximo codigo encherga o produto na adoquery e edita ele exatamente na adoquery, ja que esta
fica apontando direto para o produto que foi digitado no edit1, e se encontra na tabela de cadastro de
produto
esse evento voce deve colocar em um boto de confirmao...
procedure Tfrmpedidomanut.BitBtn9Click(Sender: TObject);
var
Prod : Real;
Vend : Real;
total: real;
begin
if edit2.Text <> '' then //o edit 2 deve esta com a quantidade de entrada ou saida
begin
ADOQUERY1.Edit;
Vend := StrToFloat(edit2.Text);
Prod := StrToFloat(ADOQUERY1quantidade.Text);
ADOQUERY1quantidade.Text := FloatToStr(Prod+Vend); //esse para somar no estoque(tbproduto),
para diminuir troque o sinal de + para ADOQUERY1.Post;
ADOQUERY1.Refresh;
end
else
begin
showmessage('Indique a quantidade!');
edit2.SetFocus;
end;
end;
/nessas linhas que acontece a magica de pegar a quantidade do produto que a query esta
apontando e somar com quantidade
que foi digitada no edit2, lembre-se que a query esta apontando para o produto la na tbproduto,
sendo assim
tudo que voce fizer nela e salvar sera feito no iten na sua tebela...
essa dica serve tabem para fazer uma consulta e ser usada para varias ideias s viajar...
espero que ajude, se no entender s postar duvidas que eu respondo... valewss

with AdoQuery1 do
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.ADD('Select * From SUA TABELA Where Between DATA1 :DATE1 and DATA2: DATE2')
AdoQuery1.Parameters[0].Value:= datetimepicker1.Date;
AdoQuery1.Parameters[1].Value:= datetimepicker2.Date;
AdoQuery1.open
Uso Access e Delphi 2007
Sempre q executo uma consulta entre um intervalo de datas, a consulta volta em branco...
Quando se fala em uma SQL e datas, existe uma inverso entre o dia e o ms da data...
Como no Brasil estamos acostumados a utilizar DD/MM/AAAA...
Ja em uma consulta SQL o formato MM/DD/AAAA...
Entao ha a necessidade de se trocar o dia com o mes de lugar nesse parametro
[de Data] q iremos passar consulta...
Escrevi uma funo q faz isso...
Function INVERTEDATA(Data: String ): String;
Begin
if Length(Data) <> 10 Then
Begin
Application.MessageBox('Data Invlida.', 'ATENO', MB_IconExclamation);
Exit;
End;
Result:= Data[4] + Data[5] + '/' + Data[1] + Data[2] + '/' + Data[7] + Data[8] + Data[9] +
Data[10];
End;
Poderia utiliza por exemplo...
ADOQuery1.SQL.Add('SELECT * FROM Funcionario WHERE Data BETWEEN(#' +
INVERTEDATA(DateToStr(Hoje)) + '#) AND (#' + DateToStr(Amanha)+ '#)');
Bemm besta... mas fununcia...

query1.Close;
query1.SQL.Clear;
query1.SQL.Add('SELECT * FROM cliente');
query1.SQL.Add('WHERE nascimento>=:Pdata1 and nascimento<=:Pdata2');
query1.ParamByName('Pdata1').AsString:=FormatDateTime('YYYY/mm/dd', DateTimePicker1.Date);
query1.ParamByName('Pdata2').AsString:=FormatDateTime('YYYY/mm/dd', DateTimePicker2.Date);
query1.Open;
Adoquery1.close;
Adoquery1.Parameters[0].Value:=FormatDateTime (yyyy/mm/dd,StrToDate(maskedit1.text));
Adoquery1.Parameters[1].Value:=FormatDateTime(yyyy/mm/dd,StrToDate(maskedit2.text));
Adoquery1.open;

You might also like