Makale Özeti

Daha önceki yazılarımızda Delphi 8 .Nete kısa bir giriş ve ilk uygulamanın ardından Delphinin script dili olarak kullanımına değinmiştik. Web programlamanın yaşadığı devrimin ardından database bağlantısız bir web uygulaması düşünmek neredeyse imkansız hale geldi. Bu sebep ile bu yazımızda Delphi 8 ile SQL Server a bağlanacak ve DataGrid yardımıyla Authors tablosundaki verileri ekrana getireceğiz.

Makale

Delphi 8 .Net İle Database Bağlantılı Uygulama Geliştirmek

Daha önceki yazılarımızda Delphi 8 .Nete kısa bir giriş ve ilk uygulamanın ardından Delphinin script dili olarak kullanımına değinmiştik. Web programlamanın yaşadığı devrimin ardından database bağlantısız bir web uygulaması düşünmek neredeyse imkansız hale geldi. Bu sebep ile bu yazımızda Delphi 8 ile SQL Server a bağlanacak ve DataGrid yardımıyla Authors tablosundaki verileri ekrana getireceğiz.

Delphi 8 de Visual Studio gibi ister kendi yazacağınız kodlar yardımıyla nesnelerinizi oluşturup database bağlantısını manuel yapar isterseniz wizard yardımı ile Oracle,Access,SQL Server,Interbase ve DB2 database lere bağlanırsınız.

             

Uygulamamız için Design ekranına bir buton ve DataGrid ekliyoruz. Ayrıca database bağlantısı ve veri çekmek için SqlDataAdapter,SqlConnection ve DataSet nesnelerini ekranımıza taşıyoruz.

Ardından yazacağımız kod;

 

unit WebForm1;

interface

uses
System.Collections, System.ComponentModel,
System.Data, System.Drawing, System.Web, System.Web.SessionState,
System.Web.UI, System.Web.UI.WebControls, System.Web.UI.HtmlControls,
System.Data.SqlClient, System.Globalization;

type
TWebForm1 = class(System.Web.UI.Page)
{$REGION Designer Managed Code}
strict private
procedure InitializeComponent;
procedure Button1_Click(sender: System.Object; e: System.EventArgs);
{$ENDREGION}
strict private
procedure Page_Load(sender: System.Object; e: System.EventArgs);
strict protected
sqlSelectCommand1: System.Data.SqlClient.SqlCommand;
sqlInsertCommand1: System.Data.SqlClient.SqlCommand;
sqlUpdateCommand1: System.Data.SqlClient.SqlCommand;
sqlDeleteCommand1: System.Data.SqlClient.SqlCommand;
MyDataAdapter: System.Data.SqlClient.SqlDataAdapter;
MyConnection: System.Data.SqlClient.SqlConnection;
MyDataSet: System.Data.DataSet;
DataGrid1: System.Web.UI.WebControls.DataGrid;
Button1: System.Web.UI.WebControls.Button;
procedure OnInit(e: EventArgs); override;
private
{ Private Declarations }
public
{ Public Declarations }
end;

implementation

{$REGION Designer Managed Code}
/// <summary>
/// Required method for Designer support -- do not modify
/// the contents of this method with the code editor.
/// </summary>
procedure TWebForm1.InitializeComponent;
begin
Self.sqlSelectCommand1 := System.Data.SqlClient.SqlCommand.Create;
Self.sqlInsertCommand1 := System.Data.SqlClient.SqlCommand.Create;
Self.sqlUpdateCommand1 := System.Data.SqlClient.SqlCommand.Create;
Self.sqlDeleteCommand1 := System.Data.SqlClient.SqlCommand.Create;
Self.MyDataAdapter := System.Data.SqlClient.SqlDataAdapter.Create;
Self.MyConnection := System.Data.SqlClient.SqlConnection.Create;
Self.MyDataSet := System.Data.DataSet.Create;
(System.ComponentModel.ISupportInitialize(Self.MyDataSet)).BeginInit;
Include(Self.Button1.Click, Self.Button1_Click);
//
// MyDataAdapter
//
Self.MyDataAdapter.DeleteCommand := Self.sqlDeleteCommand1;
Self.MyDataAdapter.InsertCommand := Self.sqlInsertCommand1;
Self.MyDataAdapter.SelectCommand := Self.sqlSelectCommand1;
Self.MyDataAdapter.UpdateCommand := Self.sqlUpdateCommand1;
//
// MyDataSet
//
Self.MyDataSet.DataSetName := NewDataSet;
Self.MyDataSet.Locale := System.Globalization.CultureInfo.Create(en-US);
Include(Self.Load, Self.Page_Load);
(System.ComponentModel.ISupportInitialize(Self.MyDataSet)).EndInit;
end;
{$ENDREGION}

procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
begin
// TODO: Put user code to initialize the page here
end;

procedure TWebForm1.OnInit(e: EventArgs);
begin
//
// Required for Designer support
//
InitializeComponent;
inherited OnInit(e);
end;

procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
MyConnection: SqlConnection;
MyDataSet: DataSet;
MyDataAdapter: SqlDataAdapter;
begin
MyConnection := SqlConnection.Create(Server=localhost;database=pubs;User ID=sa;Password=123 );
MyConnection.Open();
MyDataAdapter := SqlDataAdapter.Create(Select * From Authors, MyConnection);
MyDataSet := DataSet.Create();
MyDataAdapter.Fill(MyDataSet, Products);
DataGrid1.DataSource := MyDataSet;
DataGrid1.DataBind();
end;


end.

Görüldüğü üzere Delphi .Net ihtiyacımız olan kodların bir çoğunu kendisi oluşturdu bizim yerimize. Burada incelememiz gereken kısım Buton1in OnClick olayında yazdığımız kod bloğu.

 

procedure TWebForm1.Button1_Click(sender: System.Object; e: System.EventArgs);
var
MyConnection: SqlConnection;
MyDataSet: DataSet;
MyDataAdapter: SqlDataAdapter; //Kullanacağımız değişkenleri tanımlıyoruz.
begin
MyConnection := SqlConnection.Create(Server=localhost;database=pubs;User ID=sa;Password=123 ); //Yeni bir bağlantı yaratıyoruz.
MyConnection.Open(); //Bağlantımızı açıyoruz.
MyDataAdapter := SqlDataAdapter.Create(Select * From Authors, MyConnection); //Yeni bir DataAdapter yaratıyoruz ve Autohors tablosuna bağlanıyoruz.
MyDataSet := DataSet.Create(); // Yeni bir dataset yaratıyoruz.
MyDataAdapter.Fill(MyDataSet, Products); //DataSet imizi DataAdapter ın çektiği veri ile dolduruyoruz.
DataGrid1.DataSource := MyDataSet; //DataGrid imizin içini DataSet teki veri ile dolduruyoruz.
DataGrid1.DataBind();
end;

Veekran çıktımız:

Bu yazımız Delphi 8 .Nete giriş niteliği taşıyan son yazımızdı. Bundan sonraki yazılarımızda biraz daha ileri seviye uygulamalar ile ilgileneceğiz.

Bu yazımız için oluşturduğumuz projeyi indirmek için tıklayınız.

Evren AYAN
MaxiASP.Net
evren@maxiasp.net