|
|
New Page 1
|
Delphi 8 .Net İle
Database Bağlantılı Uygulama Geliştirmek |
| Daha önceki yazılarımızda Delphi 8
.Net'e kısa bir giriş ve ilk uygulamanın ardından Delphi'nin 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 Buton1'in 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 .Net'e giriş niteliği
taşıyan son yazımızdı. Bundan sonraki yazılarımızda biraz daha ileri seviye
uygulamalar ile ilgileneceğiz.
Aşağıdaki bağlantılarda Borland’’ın bu yeni
teknolojileri ve delphi.net ile ilgili bilgilere ulaşabilirsiniz.
http://www.borland.com/delphi_net/pdf/delphi_net8_datasheet.pdf
http://www.borland.com/news/press_releases/2003/12_19_03_delphi8_for_dotnet_shipping.html
Eco object kullanım örnekleri için kaynak adresler :
http://www.borland.com/delphi_net/architect/eco/tutorial/tutorial1.html
http://www.borland.com/delphi_net/architect/eco/tutorial/tutorial2.html
Bu yazımız için oluşturduğumuz projeyi
indirmek için tıklayınız.
Evren AYAN
MaxiASP.Net
evren@maxiasp.net |
|
|
|
| |
| Bu içerik ile ilgili
daha önce yapılmış yorumlar |
|
1.
sevgili arkadaşım ben delphi 7 de kendi çapımda küçük bazı projeler oluşturuyorum ve MSSQL-2000 SERVER kullanıyorum delphi 7 de syscon dosyası oluşturmak ve burada şirket kodu, ünvanı, şirket kısa ismi, şirket uzun ismi, maliyıl baş. maliyıl bitiş tarihi, dönem açma dönemi aktif hale getirme gerektiğinde oluşturduğumuz dönemi ve sirketi tamamen sil me işlemi yapmak için Ör. LKS2 de SYSCON dosyası gibi işlem görecek bir dosya yapmak istiyorum bu konuda bana yardımcı olurmusunuz veya bu konuda yardım alabileceğim bir arkadaş tavsiye edebilirmisiniz. Şimdiden yardımlarınız için teşekkür ederim. teknikbilisim@teknikbilisim.com
kemal
-
09.02.2006 13:08:30
2.
MsSql bağlantısında sorun yaşayan arkadaşların dikkatine:
Öncelikle Sql server kurulumunda windows account tipini değilde MsSql account tipini seçin ve Server=localhost
bağlantı stringini Server=MAKİNEADINIZ şeklinde değiştirin.
(§¡ñ@ñ)
-
23.04.2005 00:22:53
3.
Ben .NET e geçmek istiyorum ama önümüzde 2 Delphi editörü var. Delphi 2005 ve Delphi 8 Ben Arasındaki farkı ve Net ortamında program yazmak için hangisiyle başlamalıyım.Şimdiden teşekkürler.
Ali Bozkuş
-
18.04.2005 11:40:50
4.
Geç kalınmış bir çalışma.Bu çalışmanın daha önceden olmasını dilerdim.Ama yinede çok harika dersler var.EVREN AYAN bey'e gerçekten çok çok teşekkür ederim.Gençlerin önünü açmak gerkiyor.En fazlada artık bilginin saklanmadığı günlere kavuştuğumuza seviniyorum Site yöneticileri dahil bu çalışmaları yürüten herkesi takdir ediyorum.Selamlar.EVREN AYAN beyin delphi8 .net ile ilgili kitabının tanıtımını göremedim.Bu kitabında hemen çıkmasını diliyorum.
Erhan
-
11.04.2005 13:24:00
|
|
|