DBGrid Nesnesinde Lookup Metoduyla Arama Yapmak
Merhaba arkadaslar bu makalemizde Delphi de Edit e girilen veriyi Lookup metodunu kullanarak DBGrid nesnesinde arama yapacağız.
Formumuza 1 adet DBGrid, Edit, Button ve GroupBox ekliyoruz. Ayrica Palette kismindan 1 adet FDQuery, FDConnection ve DataSource ekliyoruz.
Bu örneğimizde MS SQL veritabanımızdaki Customer tablosuna bağlanacağız. İlk önce
FDConnection a sağ tıklayalım. Açılan pencerede Connection Editor’ e tıklayalım. Driver ID kısmından MSSQL Database i seçelim. Aşağıdaki şekilde gösterildiği gibi database imizi. SQL Database bağlandığımızdaki kullanıcı adı ve şifremizi ve Server imizin ismini ilgili yerlere girelim. Sonra Test butonuna tıklayalım. Prifile kısmında Database imizi seçip Ok butonuna tıklayalım. Aşağıdaki şekildeki gibi “Connection established successfully ” mesajını aldığımızda Database e başarılı bir şekilde bağlanmış olduk.
Şimdi FDQuery seçiliyken Object Inspector kısmından SQL e tıklayalım ve buraya Sql sorgulama kod parçasını yazalım. Bu örnekte Sql sorgu kodu “Select * from dbo.customer” şeklindedir. Connection kısmından FDConnection u seçelim. Sonra DataSource seçelim. Object Inspector kısmından DataSet kısmını FDQuery seçelim.
Şimdi DBGrid nesnesini seçelim. Object Inspector kısmından Datasource özelliğini DataSource1 seçelim.
En son olarak FDConnection Connected özelliğini True, FDQuery in Active özelliğini True yapalım.

Sekil 1

Sekil 2

Sekil 3

Sekil 4

Sekil 5
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, FireDAC.Stan.Intf,
FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS,
FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt,
FireDAC.UI.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Phys,
FireDAC.Phys.MSSQL, FireDAC.Phys.MSSQLDef, FireDAC.VCLUI.Wait,
FireDAC.Comp.Client, FireDAC.Comp.DataSet, Vcl.StdCtrls, Vcl.Grids,
Vcl.DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
Label1: TLabel;
Edit1: TEdit;
btnSearch: TButton;
FDConnection1: TFDConnection;
DataSource1: TDataSource;
FDQuery1: TFDQuery;
procedure btnSearchClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnSearchClick(Sender: TObject);
var
search:variant;
begin
search:=FDQuery1.Lookup('Company',Edit1.Text,'Addr1;City;Zip;Country');
if VarIsNull(search) Then //boş sa
ShowMessage('No records found!'+#13#10+'Kayıt Bulunamadi!')
else
ShowMessage('Adress='+search[0]+#13#10+'City='+search[1]
+#13#10+'Zip='+search[2]
+#13#10+'Country='+search[3]);
end;
end.
Bir makalenin daha sonuna geldik. Bir sonraki makalede gorusmek uzere. Bahadir SAHIN