1. Trang chủ
  2. » Công Nghệ Thông Tin

SQL server 2005 lập trình nâng cao part2

172 279 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề SQL Server 2005 Lập Trình Nâng Cao Part2
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Lập trình và Quản trị Cơ sở dữ liệu
Thể loại Sách hướng dẫn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 172
Dung lượng 46,79 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bạn cũng có thể xóa View trong cơ sở dữ liệu bằng cách sử dụng phát biểu Drop của đối tượng View như ví dụ 20-13-2.. Đối tượng StoredProcedure Bạn cũng có thể liệt kê danh sách thủ tục

Trang 1

Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005 175 Pal’

Hinh 20-13: Danh sdch View

Dé tạo View trong cơ sở dữ liệu SQL Server 2005 bạn sử dụng đối

tượng View như ví dụ 20-13-1

void CreateNewView (Database database)

{

11 Khai báo uà khởi tạo đối tượng Vieu

SmoView view = new SmoView(database, "ASView") ; // Khai bdo néi dung ctia View

view.TextBody = "SELECT * FROM Customers";

view TextMode = false;

view.Create();

}

Chú ý: Do lớp View tôn tại trong không gian tên là Form và Smo, do

đó bạn có thể khai báo định danh SmoView ứng với phát biểu using như

Sau:

using SmoView = Microsoft Sq1Server Management Smo View;

Nếu bạn nhấp chuột vào nút Create View, lập tức View có tên ASView

sẽ được tạo thành công trong cơ sở dữ liệu AccountSystem như hình 20-13-1

Trang 2

#i [3] dbo.vwReceiptTypesAndReceipts

Œl [3Ì dbo.vwwSuppliers

Hinh 20-13-1: Tao View thành công

Bạn cũng có thể xóa View trong cơ sở dữ liệu bằng cách sử dụng phát

biểu Drop của đối tượng View như ví dụ 20-13-2

Khai báo View|

voiđ DeleteNewView (Database đatabase)

2.3 Đối tượng StoredProcedure

Bạn cũng có thể liệt kê danh sách thủ tục nội tại của cơ sở dữ liệu

AccountSystem bằng cách khai báo như ví dụ 20-14

í du 20-14: Khai báo liệt kê danh sách thủ tục nội tại)

private void button4_Click(object sender, EventArgs e)

{

try

{

btnCreate.Text = "Create Procedure";

btnDelete.Text = "Delete Procedure";

// Khai bao ligt bê danh sách thủ tục nội tại

Trang 3

Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005

DatabaseObjectTypes StoredProcedure) ; dataGridViewl DataSource = dataTable;

labell.Text = "Stored Procedure: "+

Nếu bạn nhấn vào nút SPs, danh sách thủ tục nội tại của cơ sở dữ liệu AeccountSystem trình bày như hình 20-14

[StoredProcedure dbo —_udsViewCustomers Server@Name=MYSO

ctoredProcedue |dbo lạp hepdagamdefmlion — Sewel@Name=MYSD

‘StoedProcedue dbo _|ICStatusFosProductAndStock Server[@Name=MYSO

|storedProcedue doo udsPayment8ySunphit Server[@Name=MYSO

| StoredProcedure | : Sevel(@Name=MYSD ÍSoedPocedue đo - |sp.cteatedagam ~ | Serverl@Name=MYSO

Hinh 20-14: Danh sdch thi tuc ndi tai

Bạn cũng có thể tạo thủ tục nội tại có tham số bằng cách sử dụng đối

tượng StoredProcedure như ví dụ 20-14-1

void CreateNewProcedure (Database database)

{

L1 Khai báo uà khởi tạo đối tượng StoredProcedure

StoredProcedure storedProcedure = new

StoredProcedure (database, "ASSP");

storedProcedure.TextMode = false;

Trang 4

PA? 178 Chương 20: Quan hệ giữa NET 2.0 va SQL Server 2005

stoređdProcedure Parameters Ađđ (parameter) ;

11 Khai báo nội dung của đối tượng StoredProcedure

storedProcedure Text Body =

"SELECT * FROM Customers "+

“Where Provinceld = @ProvinceTd";

storedProcedure.Create();

}

Sau khi trình bày danh sách thủ tục nội tại, nếu nhấn vào nút Create

Procedure, bạn có thể tìm thấy thủ tục nội tại có tên ASSP tạo thành công

trong cơ sở dữ liệu AceountSystem như hình 20-14-1

© (Ga Stored Procedures

& (@ System Stored Procedures

Theo cách xóa đối tượng View, bạn cũng có thể khai báo để xóa thủ tục nội tại đang tổn tại bằng cách khai báo như ví dụ 20-14-2.

Trang 5

2.4 Déi tugng DatabaseDdlTrigger

Như đã trình bày trong tập 2, bạn đã tim hiéu chi tiét vé DDL

Trigger, khi làm việc với đối tượng của Smo, bạn cũng có thể liệt kê danh

sách DDL Trigger của cơ sở dữ liệu bằng cách khai báo như ví dụ 20-15

ï dụ 20-15: Khai báo liệt kê danh sách DDL Trigg

private void button?_Click(object sender, EventArgs e}

{

try {

btnCreate.Text = "Create Trigger";

btnDelete.Text = "Delete Trigger";

11 Khai báo uà khối tao déi tuong DataTable

DataTable dataTable = new DataTable();

đataRow[ "Textr") = đđ1Trigger[i].Text;

đataTable.Rows Ađđ (đataRow) ;

Trang 6

180 Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005

Khi thực thi chương trình, nếu Bạn nhấn vào nút DDL Triggers thi danh sách DDL Trigger sẽ trình bày như hình 20-15

| TableObjectChanged | CREATE TRIGGER [TableDbjectChangedid

Gee Tne

Hình 20-15: Danh sách DDL Trigger của cơ sở dữ liệu

Bạn cũng có thể tạo DDL Trigger trong cơ sở dữ liệu bằng cách sử

dụng đối tượng DatabaseDdlTrigger như ví dụ 20-15-1

DatabaseDdlTrigger (database, "ASTrigger");

/1| Khai bdo va khdi tạo đối tượng DatabaseDdlTriggerEuentSet

DatabaseDdlTriggerEventSet eventSet = new

Trang 7

Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005 181 [eal

"INSERT DatabaseObjectLog (ActionTime, "+

"DB_User, UserEvent, TSQLStatement) "+

Khi nhấn nút Create Trigger, bạn có thể tìm thấy DDL Trigger vừa

tạo thành công xuất hiện trong MS như hình 20-15-1 Object Explorer

Hinh 20-15-1: Tao thanh céng DDL Trigger

Tương tự như vậy, bạn có thể xóa DDL Trigger trong cơ sở dữ liệu

bằng cách khai báo như ví dụ 20-15-2

Trang 8

Khi thực thi ứng dụng, nếu nhấn vào nút Users thì danh sách

database user trong co sé dữ liệu sẽ trình bay tuong tu nhu hinh 20-16

private void button3

2.4.1 Déi tuong User

t kêØlanh sách datab b

try

{

btnCreate,Text = "Create User";

btnDelete.Text = "Delete User";

// Liệt hê danh séch database user

DataTable dataTable = accountDb EnumObjects (

(ates } [ Mews } [see } [001 Tigger} (User ] ( Functons } (Srreryns} [as objects

DetabaseObjeciTy Schema Name Ne ^ F

{User | ‘guest | Server(@Neme=MYSOLU

User INFORMATION SCHEMA | Serve(@Name=MYSOLU |

User " ¬"-

“User | MYSOLUTIONVAdninistatr |Serve(@Mame-MYSOLU |

1 User | PurchasingUser Server[@Name=MYSOLU

[vee (Satta Stevan wvsou

mm

Hình 20-16: Danh sách datqbase user

Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005

g cách khai báo như ví dụ

_C11ck (object sender, EventArgs e)

Trang 9

Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005 183 [M|°

2& MYSOLUTION\Pham Huu Duy Khoa

&& MYSOLUTION\Pham Huu Khang

&& NT AUTHORITY\SYSTEM

 sa

1

Hinh 20-16-1: Login user

Để khai báo database user, bạn có thể sử dụng đối tượng User tương

Nếu nhấn nút Create User, bạn có thể tìm thấy database user trong

ngăn Security | Users như hình 20-16-2

Trang 10

Hinh 20-16-2: Tao thanh céng database user

Bạn cũng có thé x6a database user bang cach sit dụng phương thức

Drop của đối tượng User như ví dụ 20-16-2

Ví dụ 20-16-2: Khai báo xóa database user

voiđ DeleteNewUser (Database đatabase)

2.5 Déi tugng Function

Đối với hàm do người dùng định nghĩa, bạn có thể liệt kê chúng bằng

cách khai báo tương tự như ví dụ 20-17

17: Khai báo liệt kê danh sách hàm người COTY

private void button5_Click (object sender, EventArgs e)

{

try

{

btnCreate.Text "Create Function";

btnDelete.Text Delete Function";

// Liét ké danh séch déi tugng ham người dùng DataTab1le đataTable = accountDb EnumObjects (

DatabaseObjectTypes UserDefinedFunct ion) ;

Trang 11

Nếu bạn nhấn vào nút Functions, danh sách hàm người dùng trong cơ

sở dữ liệu AccountSystem sẽ trình bày như hình 20-17

MessageBox Show( "Error: " + ex.Message) ;

DatabaseDbjectTypes Schema Name eli a 6ù

> UsedelnedFurcion coo ERNE NHƯ Serve @Name=WySOL

|UseiDefinedFuncion dbo udfSalesInvoicesOIProvince | Servei{@Name=WYSOL UseDefnedFunction udSaleslaveices Server|@Name=MYSOL UserDefinedFunction dbo _udSalesByProduct Server|@Name=MYSOL

UserDefinedFunction dbo udLasiDay — Server[@Name=MYSOL

_UserDefinedFunction “udTotaRows Server|@Name=MYSOL

| UserDefinedFunction in_sqvaibasetot Server|@Name=MYSOL

[ee afinedEninetinn he ever cared rian dane | Carved (Akl sme-MYCNI

Để tạo mới hàm người dùng trong cơ sở dữ liệu SQL Server 2005, bạn

sử dụng đối tượng UserDefinedEunction như ví dụ 20-17-1

void CreateNewFunction (Database database)

// Khai bdo va khdi tao déi tugng UserDefinedFunction

UserDefinedFunction function = new

Trang 12

Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005

£1 Khai báo uà khởi tạo đối tượng

// UserDefinedFunctionParameter

UserDefinedFunctionParameter parameter = new UserDefinedFunctionParameter ( function, "@Amount", DataType.Float);

function Parameters Add (parameter) ;

1] Khai báo loại dữ liệu trả uề của hàm

£unction.DataType = DataType Float ;

LỊ Khai báo nội dung của hàm

function.TextBody =

"BEGIN DECLARE @Amt FLOAT; " +

" SET @Amt = @Amount + 16000 " +

"RETURN (@Amt) END; ";

function.Create();

}

Sau khi nhấn nút Functions, ban nhan nut Create Function thi ham

ASUDFunction sé tao trong co sé dit ligu AccountSystem nhu hinh 20-17-1

Hinh 20-17-1: Tao ham ngudi ding thanh cong

Nếu có nhu cầu xóa hàm người dùng, bạn có thể khai báo tương tự như

Trang 13

Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005 187

if (function != null)

function.Drop();

}

Một trong những kỹ thuật mới giới thiệu trong SQL Server 2005 là

Synonym, bạn có thể liệt kê danh sách đối tượng này bằng cách khai báo

btnCreate.Text = "Create Synonym";

btnDelete.Text = "Delete Synonym";

LỊ Liệt bè danh sách đối tượng Synonym

DatabaseObj ect Types Synonym) ; dataGridViewl DataSource = dataTable;

Nếu bạn nhấn vào nút Synonyms, danh sách đối tượng Synonym của

cơ sở dữ liệu AccountSystem sẽ trình bày như hình 20-18

$wnemm Sewel@Nare-MYS0LUTIDNJOanb

Swnewm GetStock Servel@Name=MYSOLUTION /Delab

LOCATION — Servei(@Name= WYSOLUTION /Date

[Gieate Syporym _} [Delete Synonym

Hình 20-18: Danh sách đối tượng Synonym

Trang 14

ay 188 Chương 20: Quan hệ giữa NET 2.0 va SQL Server 2005

Tương tự như các đối tượng cờ sở dữ liệu khác, bạn có thể sử dụng

phương thức Create của đối tượng Synonym để tạo Synonym trong cơ sở dữ liệu AccountSystem nhu vi dụ 20-18-1

'Void CreateNewSynonym (Database đatabase)

{

// Khai báo uà khởi tạo đối tượng Synonym

Synonym synonym = new Synonym(database, "ASSynonym") ;

// Khai bdo chi dinh Server

synonym BaseServer = "MYSOLUTION";

// Khai bdo chi dinh Database

synonym BaseDatabase = "AccountSystem";

// Khai báo chỉ định đối tượng cơ sở dữ liệu synonym BaseObject = "Customers";

synonym Schema = "dbo";

synonym BaseSchema = "dbo";

synonym.Create();

} Sau khi nhấn nút Create Synonym, bạn có thể tìm thấy tên của

Synonym vừa tạo xuất hiện trong ngăn Synonyms như hình 20-18-1

42) dbo.ViewJobs

@ (5a Programmability

Eva] dbo.ASSynonym

#

Hinh 20-18-1: Tao Synonym thanh céng

Nếu muốn xóa Synonym đang tôn tại, bạn có thể khai báo tương tự

như ví dụ 20-18-2

Trang 15

Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005 189

Void DeleteNewSynonym (Database đatabase)

Trong trường hợp liệt kê tất cả đối tượng cơ sở dữ liệu, bạn có thể

khai báo như ví dụ 20-19

DataTable đataTable = accountDb EnumObJects () ;

dataGridViewl DataSource = dataTable;

labell.Text = "All Objects: "+

Khi nhấn nút All Objects, danh sách cơ sở dữ liệu của AccountSystem

trình bày tương tự như hình 20-19

[FdtesCaan AccourtSysem Seve @Hamex YS

FuTeaCetog AeesurSplenFTetScach _ Sens[@Nme-VIS Fle AgBue seve tances

| UseDefnedDaxa Agel ype Sewel@Name-MYS

View al pxaneters Serve@tlame= WS

aso mode: Server(@Hame= WS

Hinh 20-19: Danh sdch d6i tugng co sé dit liéu

Trang 16

° 190 Chương 20: Quan hệ giữa NET 2.0 vA SQL Server 2005

Chú ý: Để cho phép tạo đối tượng cơ sở dữ liệu vừa trình bày ở trên,

bạn khai báo gọi các phương thức CreateNewTable, CreateNewView,

CreateNewProcedure, CreateNewFunction, CreateNewUser,

CreateNewSynonym va CreateNewDDLTrigger trong biến cố Click của nút btnCreate như ví dụ 20-19-1

case "Create Table":

Creat eNewTable (database) ;

break;

case "Create View":

Creat eNewView (database) ; break;

case "Create Procedure”:

Creat eNewProcedure (database) ;

case "Create Synonym":

Creat eNewSynonym (database) ;

break;

} }

catch (Exception ex)

{ } MessageBox, Show ("Error: " + ex.Message) ;

}

Trang 17

Tương tự như vậy, để xóa đốt tượng cơ sở dữ liệu, bạn khai báo gọi các

phương thức DeleteNewTable, DeleteNewView, DeleteNewProcedure, DeleteNewFunction, DeleteNewUser, DeleteNewSynonym va

DeleteNewDDLTrigger trong bién cé Click cia nut btnDelete nhu vi du

†J Khai báo oà khởi tạo đổi tượng Seruer

Server server = new Server (Text);

case "Delete Procedure":

DeleteNewProcedure (database) ; break;

case "Delete Trigger”:

} } catch (Exception ex) {

MessageBox Show ( "Error: " + ex.Message) ;

3 }

Trang 18

192 Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005

2.6 Đối tượng Trigger

Tương tự như đối tượng cơ sở dữ liệu, bạn có thể liệt kê danh sách đối

tượng DML Trigger của Table bằng cách sử dụng đối tượng Trigger

Để làm điều này, trước tiên bạn khai báo để liệt kê danh sách Table

của cơ sở đữ liệu AccountSystem như ví đụ 20-20

11 Khai báo uà khối tạo đối tượng Server

Server server = new Server (this.Text ) ;

11 Khai báo tạo déi tugng Database Database đatabase =

server Databases [ "AccounESystem"];

TỊ Khai báo uà duyệt qua từng đối tượng Table

foreach (Table table in database.Tables}

{

if (!table.IsSystemObject}

comboBoxTable Items.Add(table.Name) ;

} }

catch (Exception ex}

{ MessageBox Show( "Error: " + ex.Message);

i }

Kế đến, bạn khai báo gọi phuong thite ShowTables trong bién cd Load cia Form nhu vi du 20-20-1

lụ 24 : Khi LÔ ương thức ShowTabil

privaEe void frmTriqgger_ Load (obJecLE sender,

Rhi thực thi chương trình, bằng cách chọn vào Database Objects |

Triggers, ban có thể tìm thấy danh sách Table liệt kê trên điển khiển

ComboBox như hình 20-20

Trang 19

Hinh 20-20: Danh sdch Table

Mỗi khi người sử dụng chọn vào Table trong điều khiển ComboBox,

để liệt kê danh sách DML Trigger thuộc Table đã chọn, bạn khai báo trong

biến cố SelectedValueChanged của điều khiển ComboBox có tên

Server Databases [ "AccounESystem"] ;

11 Khai báo đối tượng Table Table table = database Tables[

comboBoxTable.SelectedItem.ToString()];

// Khai báo duyệt qua từng Trigger

foreach (Trigger trigger in table.Triggers) {

if (!trigger.IsSystemObject) listBoxDMLTriggers Items Add(trigger.Name) ;

Trang 20

Chẳng hạn, bạn chọn vào Table có tên ImportDetails, danh sách Trigger của Table này trình bày như hình 20-20-1

‘orm! - [MYSOLUTION]

tlmpoDelalk ` trindimpotDetals

kê nội dun:

LỊ Khai báo uà khởi tạo đối tượng Seruer

Server server = new Server (this.Text ) ;

11 Khai báo đối tượng Database

Database đatabase =

server Databases [ "AccountSystem"] ;

1 Khai báo đối tượng Table

Trang 21

Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005 185

Table table = đatabase Tables [ comboBoxTable.SelectedItem.ToString()];

11 Khai báo đối tượng trigger

Trigger trigger = table.Triggers[

Vi du, ban chon vào tén DML Trigger 1a trilnsImportDetails thi ndi

dung của chúng trình bày trên diéu khién TextBox nhu hinh 20-20-2

GAZ SUC |

8: Senet Databases Database Objects Breaute Tables:

ImportDetats VÌ [DECLARE @Productld VARCHAR(10)

= DECLARE @6lockld CHAR(3) tiimpotDetais DECLARE @Quentty DECIMAL (18.0) Piscine | SELECT @Productid= Productld,

@Stockld = Stockld, @uantty = Quanity FROM INSERTED

IF EXISTSISELECT * FROM ProductnStocks WHERE Productid-@Pioductld

AND Slockid=@Stockld}

UPDATE ProductinStocks

‘SET GoodFroductinStock = GoodPioductinStock + @Quantty

‘WHERE Productid=@Productid AND Stockld-@Stockld INSERT INTO ProductinStocks

Tuy nhiên, nếu làm việc với các lớp Smo, bạn có thể sử dụng phương thức ExecuteNonQuery, ExecuteWithResults của đối tượng Database

Để thực hiện ví dụ về thao tác dữ liệu trong bảng tblTest, trước tiên

bạn thiết kế Form có giao diện như hình 20-21

Trang 22

Hinh 20-21: Giao dién frmExecute

Kế đến, bạn khai báo phương thức CreateTable để tạo bảng dữ liệu mẫu như ví dụ 20-21

// Khai bdo st dung phuong thite ExecuteNonQuery

7 dé tao Table vdi tén tblTest

database ExecuteNonQuery (

"CREATE TABLE tblTest ("+

"CotA INT IDENTITY(1,1), "+

"CotB VARCHAR (50), CotC VARCHAR(50))");

// Khai bdo st dung phương thúc ExecuteNonQuery

11 để thêm mẩu tin uào bang tblTest đatabase ExecuteNonQuery (

"TNSERT tblTest "+

"VALUES ('CotBB', 'CotCC')");

database Execut eNonQuery (

"CREATE PROC SPVIEWS AS "+

“ SELECT * FROM tblTest") ;

Trang 23

Chương 20: Quan hệ giữa NET 2.0 va SQL Server 2005 197

catch (Exception ex) `

server = new Server (this.Text);

database = server Databases{"AccountSystem"};

Sau đó, nếu có nhu cầu truy vấn đữ liệu trong bảng tbÌTest, bạn khai

báo đoạn chương trình trong biến cố Click của nút Select như ví dụ 20-21-2

í dụ 20-21-2: Khai báo truy vấn dữ liệu

private void btnSelect_Click (object sender,

Ví dụ 20-21-3: Khai báo phương thức ShowData

void ShowData (string tableName)

Trang 24

198 Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005

"select * from [" + tableName + "]

catch (Exception ex)

{

MessageBox Show (ex.Message) ;

} }

Khi thực thi chương trình, nếu bạn chọn vào nút Select, danh sách

mẩu tin trong bảng tblTest trinh bày như hinh 20-21-1

Formt - [MYSOLUTION]

Hình 20-21-1: Truy uấn dữ liệu

Nếu có nhu cầu thêm mẩu tin, bạn khai báo trong biến cố Click của

try {

StringCollection sc =

new StringCollection();

sc.Add("insert into [" + labelTable.Text +

Trang 25

vào bảng tblTest như hình 20-21-2

§B Form! - [MYSOLUTION]

¬———¬

Hình 20-21-2: Thêm mới mẩu tin

Trong trường hợp xóa mẩu tin, bạn có thể khai báo trong biến cố

Click của nút Delete như ví dụ 20-21-

string titleID="";

DataGridViewRow dataGridViewRow = dataGridView1 CurrentRow;

Trang 26

200 Chương 20: Quan hệ giữa NET 2.0 và SQL Server 2005

catch (Exception ex}

{

MessageBox Show(ex.Message) ;

} } Chẳng hạn, bạn chọn mẩu tin vừa mới thêm vào và nhấn nút Delete,

chúng sẽ bị xóa khối bảng tbÌTest

Ngoài ra, bạn cũng có thể gọi thú tục nội tại bằng cách khai báo tương

database ExecuteNonQuery ("SPVIEWS") Z

MessageBox Show("SPVIEWS has executed");

Chú ý: Đề hiểu thêm về những đối tượng của ADO.NET 2.0, bạn có

thé tìm đọc tập 4 thuộc bộ sách C# 2005 do nhà sách Minh Khai phat hanh

4 KẾT CHƯƠNG

Bạn vừa tìm hiểu cách sử dụng phương thức và thuộc tính của các đối

tượng Smo để tương tác với cơ sở đữ liệu SQL Server 2005 nhằm tạo, xóa,

cập nhật đối tượng cơ sở đữ liệu hay truy vấn dữ liệu

Trong chương kế tiếp, chúng ta sẽ tập trung tìm hiểu cách sử dụng dịch vụ Report (Report Service) để có thể kết xuất dữ liệu theo yêu cầu của

người sử dụng thông qua trình duyệt Web

Trang 27

Chương 21: Dich vu Report trong SQL Server 2005 201

Chuong 21:

DICH VU REPORT TRONG SQL SERVER 2005

Tóm tắt chương 21

SQL Server 2005 cung cấp nhiều tính năng cho phép chúng

ta lưu trữ, truy vấn, chuyển đổi và quảu trị dữ liệu một cách hiệu

quả nhất

Tuy nhiên, những đữ liệu mà SQL Server đang nắm giữ không thể cung cấp cho người sử dụng thông qua các kênh khác

nhau mà không kiểm soát Chính vì vậy, dịch vụ Report cho phép

bạn trình bày dữ liệu trên nhiều định đạng khác nhau làm thỏa

mãn thông tin mà người sử dụng cần

Các vấn để chính sẽ được đề cập:

= Giới thiệu Report Service

Các thành phần của Report Service

v

Tạo Report trong SQL Server 2005

v Cu hinh Report Service

v

Quan ly Report bing Report Manager va MS

1 GIGI THIEU REPORT SERVICE

Trong môi trường kinh doanh, dịch vụ báo cáo giúp cho chúng ta phân

phối thông tin đến những người có nhu cầu sử dụng để ra quyết định cũng như trình bày cho nhiều bộ phận khác nhau tham khảo

Ví dụ, sau khi tính toán tổn quỹ, công nợ phải thu, công nợ phải ra

hay tình hình tồn kho những thông tin tổng kết này cần được trình bày theo nhiều định dạng khác nhau nhằm mục đích phục vụ cho nhiễu phòng

Trang 28

ban hay tổ chức khác nhau Một trong-những định dạng thông thường được

sử dụng trong thực tế là báo cáo hay còn gọi là Report

Những Report này chứa dựng thông tin cô đọng hay chỉ tiết được tính

toán hay trích lọc từ cơ sở dữ liệu theo quy tắc cho trước Với mục đích này, bạn cũng có thể sử dụng ngôn ngữ lập trình trong bộ Visual Studio 2005 để

thực hiện,

Tuy nhién, SQL Server 2005 giới thiệu dich vụ mới còn gọi là Report

Service, gitip cho ban thiết kế và trình bày thông tin cần thiết cho người sử

dụng

Report Service 1a dich vụ có sẵn khi cài đặt SQL Server 2005, bạn có

thể tìm thấy dịch vụ này trong thực đơn Microsoft SQL Sever 2005 | Server

Business Intelligence Development Studio

Chú ý: Nếu bạn đã cài đặt Visual Studio 2005 thi IDE cia SQL Server Business Intelligence Development Studio va Visual Studio 2005 1a một

Với dịch vụ này, người sử dụng cũng có thể thiết kế và quan ly Report với cơ sở dữ liệu SQL Server 2006 mà không cần biết nhiều về ngôn ngữ lập

trình

Mọi Report đều có chu kỳ sống của chúng, từ khi chúng được tạo ra

đến khi quản lý và phân phối cho người sử dụng Trong đó, giai đoạn thiết

kế đòi hỏi bạn hiểu các thuộc tính của Report để tạo nên “look and feel” chấp nhận được nhằm cung cấp giao diện thân thiện cho người sử dụng

Đối với giai đoạn này, bạn có thể sử dụng tiện ích Report Designer trong Visual Studio 2005 Day là công cụ hỗ trợ mạnh và uyển chuyển giúp

cho bạn thiết kế Report với nhiều cách trình bày khác nhau théng qua

Report Wizard Céng cy thit hai 1a Report Builder, cho phép ban thiét ké

Report từ cơ sở dữ liệu quan hệ

Giai đoạn quần lý xảy ra sau khi tạo thành công Report, bạn có thể

quản lý thư mục, tài nguyên liên quan đến Report và kết nối eơ sở dữ liệu bằng tiện ích SQL Server MS hay Report Manager

Giai đoạn sau cùng là mang Report đến cho người dùng có nhu cầu,

cho phép họ trình bày dữ liệu bằng nhiều định dạng khác nhau như: HTML,

TIFF, PDF hay Excel

Với 3 giai đoạn của quá trình tạo Report, chúng ta sẽ tìm hiểu chỉ tiết

về chúng qua từng ví dụ trình bày trong phần kế tiếp.

Trang 29

Chú ý: Bạn có thể tìm thấy cách thiết kế Report trong dự án có tên

ReportProjecti va Report Model trong dif 4n ReportModelProject1 thudc

ReportProjecti Solution

2 CAC THANH PHAN CUA REPORT SERVICE

2.1 Chite nang chinh

'Trước khi tim hiểu các thành phần của Report, chúng ta tìm hiểu một

số chức năng chính sử dụng khi làm việc với Report Serviee: Report Definition, Published Report, Rendered Report, Parameterized Report, Linked Report, Report Snapshot, Report Model va Report Server Folder

Namspace

8.1.1 Report Definition

Report Definition 1A ban thiét ké chi tiét tao ra bdi tiện ích Report

Designer’ hay Report Builder Chung chia cdc théng tin về câu truy vấn,

hình dạng và các phần tử khác của Report khi nó thực thi Đặc tả của

Report sẽ được lưu trit theo dinh dang XML và lưu dưới tập tin có tên mở rộng là rdi (Report Definition Language)

2.1.2 Published Report

Sau khi Report da duge tao ra, chúng sẽ triển khai trên Report Server

bằng cách sử dụng tiện ích Report Designer, Report Builder hay tải trực tiép théng qua Report Manager hay MS

2.1.3 Rendered Report

Sau khi triển khai Report trên Report Server, nếu Report được triệu

gọi thì đữ liệu sẽ được truy vấn và trình bày theo định dạng đã thiết kế, quá trình này được gọi là render

2.1.4, Parameterized Report Cũng giống như khái niệm tham số trong phát biểu SQL hay thủ tục nội tai, Report cũng có thể chấp nhận tham số truyền từ bên ngoài, bằng cách này bạn có thể yêu cdu Report trình bày dữ liệu theo tiêu chí ràng buộc

nào đó

Trang 30

° 204 Chương 21: Dịch vụ Report trong SQL Server 2005

liệu mang tính minh họa sẽ hiển thị trên Tteport, những thông tin này sẽ

biến mất khi dữ liệu được truy vấn từ cơ sở dữ liệu

2.1.7 Report Model

Chức năng này dùng để tạo Report dạng đặc biệt bằng cách sử dụng tiện ích Report Builder Một khi Report được tạo ra bằng cách này, người sử

dụng có thể tạo Report dựa vào loại Report này mà không cần quan tâm đến

câu truy vấn, kết nối cơ sở dữ liệu, cơ sở dữ liệu

2.1.8 Report Server Folder Namspace

Report Server Folder Namspace cho phép bạn nhận dạng Report, thư

mục, mô hình, kết nối cơ sở dữ liệu, bảo mật và một số thông tin khác Ví

dụ, cấu trúc của Report Server trình bày như hình 21-1

Hinh 21-1: Report Server

Chú ý: Để đăng ký Report Server như hình trên, bạn cần nhấn vào

nút Connect rồi chọn tùy chọn như hình 21-1-1

Chúng ta sẽ tìm hiểu chỉ tiết các chức năng vừa giới thiệu ở trên trong

phần kế tiếp.

Trang 31

Server type: | Reporting Services xs

Server name: [MYSOLUTION

Authentication: [Windows Authentication

Hinh 21-1-1: Đăng ky Report Server

2.2 Thanh phan chinh

Céng cu ciia Report Service bao gdm các thành phần chính như:

Report Server, Report Manager, Report Designer, Report Builder, Model Designer, Report Services Configuration Tool va Report Server Command Prompt Utilities

Ngoai ra, Report Service cdn cdc Interface như: Windows Management Instrumentation (WMI), Simple Object Access Protocol

(SOAP) va URL

2.2.1 Report Server

Report Server là thành phần chính của Report Service, chúng là tập

các chức năng chính cho phép xử lý và kết xuất Report theo yêu cầu của

Trang 32

206 Chương 21: Dịch vụ Report trong SQL Server 2005

Intelligent Development 8tudio với các hình dạng như bảng, ma trận hay

tùy ý

2.2.4 Report Builder

Report Builder là công cụ đặc biệt cho phép người sử dụng đầu cuối có

thể thiết kế nhanh Report mà không cần biết nhiều về cấu trúc dữ liệu

2.2.5 Model Designer

Model Designer là công cụ dùng để tạo Report Model trong Report

Builder; Report Model kết nối với Data Souree View trong Analysis Server

hay co sé dit ligu SQL Server 2005 để trích lọc dữ liệu dạng siêu đữ liệu

2.2.6 Report Services Configuration Tool

Công cụ này dùng để cấu hình ứng dụng Web Site cho Report

Manager, Report Server, tạo cơ sở dữ liệu cho Report Server, quần lý khóa

mã hóa và khởi tạo Report Server

2.2.7 Report Server Command Prompt Utilities

SQL Server 2005 cung cap 3 tién ich command-line, tién ich rsconfig

dùng để cấu hình cơ sở dữ liệu Report Server, rskeymgmt ding để tạo khóa

mã hóa, rs dùng để thực thi kich ban Visual Basic NET trong Report Server

3 TẠO REPORT TRONG SQL SERVER 2005

3.1 Tạo Report bằng MS

3.1.1 Tao Report bang Report Wizard

Với các thành phần và chức năng vừa trình bày ở trên, chúng ta sẽ tìm hiểu cách làm việc với Report Service qua từng bước

Chú ý: Chúng ta có hai cách tạo Report, cách thứ nhất là sử dụng MS và

cách thứ hai là dùng Report Builder Tuy nhiên, trong phần này, chúng ta tập

trung tìm hiểu cách tạo Report bằng Report Wizard và ReportDesigner trong

MS Bạn có thể tìm hiểu cách tạo Report bing Report Builder trong phần

quản lý Report bằng Report Manager Virtual Directory

Truéc tién, ching ta tao Report trong MS théng qua Business

Intelligent Development Studio bang cdch chon vao Microsoft SQL Server

2005 | SQL Server Business Intelligent Development Studio, cửa số xuất

hiện như hình 21-2

Trang 33

Visual Studio installed templates Spreaiyss Serves Propet roar sat Serves 90 Dat

SShntegaton ervns hopet Report Server pct Wizard iReport Hoe Roget “Report Server RoRet

Hinh 21-2: Business Intelligent Development Studio

‘Visual Studio installed templates

3 WamlCZ Weds phrains Sevens Rojee ‘plewert ats Servins 9.0 Cat Smart Dever lnhgaton seweehoyt Report Serer Prope Ward Database Eieprt Mosel Rore Greport Sener Ropect Storer ts |

& Ober Languages My Templates

* Other Rope Types Gsexch onine Tenis

Hinh 21-3: Visual Studio 2005

Chú ý: Nếu bạn cài đặt Visual Studio 2005, cửa sổ trên sẽ xuất hiện

như hình 21-3

Ban chon vao Report Server Project Wizard réi nhan nut OK, dat tén thư mục là ReportProject1 và nhấn OK, cửa sổ kế tiếp xuất hiện như hình

21-4.

Trang 34

Laie)

Welcome to the Report Wizard

“The Report Wizard helps you create a report With this wizard, you an:

+ Select a data source from which to retrieve data

= Design a query to execute against the data source

=~ Choose the type of report you want to create

= Specify the basic layout of the report + Specify the formatting forthe report Click Next to continue,

[2 Don't show this page again

Hình 21-4: Sử dụng Report Wizard

Chọn nút Next, cửa sổ kế tiếp yêu cầu đặt tên dữ liệu nguôn và chuỗi

kết nối cơ sở dữ liệu SQL Server như hình 21-5

Dae ete) Select the Data Source Select 2 data source from which to obtain data for this report or create anew ata source

© New cata source

Name:

‘AccountSystem

Microsoft SQL Server Goonection string: ` ”ˆ ata Source= MYSOLUTION Initial Catalog=AccpuntSystem

Hinh 21-5: Chudi két nối cơ sở dữ liệu.

Trang 35

Chuong 21: Dich vu Report trong SQL Server 2005 209

Chú ý: Bạn có thể nhấp vào nút Edit để chọn Server, đặt quyền kết nối cơ sở dữ liệu và tên cơ sở dữ liệu là AccountSystem như hình 21-6

Log on to the server

@) Use Windows Authentication

©) Use SQL Server Authenticati

Hình 21-6: Kết nối cơ sở dữ liệu

Chọn nút Next, bạn có thể định nghĩa phát biểu SQL dang SELECT

để truy vấn dữ liệu theo tiêu chí tùy ý như hình 21-7

Chú ý: Bạn cũng có thể sử dụng chức năng Query Builder để chọn

bảng dữ liệu cùng với cột dữ liệu cần lấy ra như hình 21-8.

Trang 36

E Report Wizard

Design the Query

Specify a query to execute to get the data for the report

Use a query builder to design your query

Query Builder

Query string: _

SELECT ProductiD, ProductNameTnVietnamese, froductUnit,

Trang 37

Chung 21: Dich vu Report trong SQL Server 2005 211 IMỊ”

Chọn nút Next, bạn tiếp tục chọn một trong hai loại trình bày là

Tabular hay Matrix như hình 21-9

LẺ jA 21)

Select the Report Type Select the type of report that you want to create,

Yonex HS XE KOO XỢC e000 320891 30689 MoBOK JBBOOE XBS( OBE Yoo xo vo Yee 100601 19000 300K 600 Yee 100801 MODSV HONK Io Yoox Joo00% 28900: 1990 keo Yonex 390001 289001 199K 290004

ee Jenne ABNOR HSB PORK WBOĐQL so000% 28800 1900 s9oNGK WOBN: WOD01 WGQV MOSQE XGO WQBNL XDB NHSV YOON JOEL WOBSL XĐOOV WGGSE MOSOL K@ooV

Hình 21-9: Chọn loại trình bày

Bước kế tiếp, bạn đặt tên Report như hình 21-10 rồi nhấn nút Finish

E Report Wizard Completing the wizard Frovide a name and click Fish to create the new report

Report name:

=m

Report summary

Data source: AccountSystem

‘Connection sting: Data Source=MYSOLUTION Anitial CatalogsAccountSystem

‘Report type: Table

Layout ype: Stepped

|Style: Slate

[Detals: ProductiD ProductNamelnVietnamese, ProductUrit

[ProductDescrptionirVietnamese [Quey: SELECT

PtoduclD, ProduckNamelrVietnarnese, Producti

©) Breviewreport

Trang 38

212 Chương 21: Dịch vu Report trong SQL Server 2005

Sau khi nhấn nut Finish, ban tim thay Report trong chế độ thiết kế

như hình 21-11

Reporti.rdl [Design]*) Start Page _

£9 Data [QJ Layout] Q Preview

Hinh 21-11: Thiét ké Report

Chú ý: Nếu chuyển sang ngăn Data, bạn có thể tìm thấy danh sách cột dữ liệu của bảng liên quan để thêm, xóa hay thay đổi kết xuất như hình

ProductUnit ProductDescriptioninVietnamese

Trang 39

Chương 21: Dịch vụ Report trong SQL Server 2005 218

Tương tự như vậy, nếu muốn xem đữ liệu trình bày trên Report trước

khi chính thức publish chúng, bạn có thể chọn vào ngăn Preview

Túi xách dừng cho học sinh Túi xách dùng cho học sinh nam nam

Túi áo mưa Túi áo mưa Túi xách dừng cho Máy tíh Túi xách ding cho Méy tinh Túi xách dừng cho điện thoại di Túi xách dừng cho đện thoại di động động

Túi xách dừng cho PC Túi xách dừng dhoPC Túi xách dừng cho TV Túi xách dùng cho TV

Trang 40

Properties Bi Object Explorer |

Hinh 21-13: Report Server

Ban cé thé thuc thi chuong trinh, trinh duyét Internet Explorer kich

hoạt, mẩu tin trong bang Products trình bày như hình 21-14

Addtesx LỆ htp:/focahostfnepcrtServerJPagesƒReportVewer -3px?3k2feprtProject %wZfteport8zs:Comman * Ẵ oe

ida fr oft & bị [i0o% of Find |Mext [Select a format BD Export

Report1

Graces Ol eae tat cae a leas noe eae hed teen ab ak eae

JVietnamese lừng | lroooo: Túi xách Unit Túi xách

IPooooa Túi xách dừng cho học sinh nữ Unit Túi xách dừng cho học sinh nữ

|Poooo3 Túi xách dừng cho học sinh nam _ Unit Túi xách dừng cho học sinh nam

IP00004 Túi áo mưa it Túi áo mưa

P00oos Túi xách dùng cho Máy tính: ‘Unit Túi xách dừng cho Máy tính:

P006 Túi xách dừng cho điện thoại di _ Unit Túi xách dừng cho điện thoại di động

động IPooooz Túi xách dừng cho PC Unit Túi xách dừng cho PC

IPooœs Túi xách ding cho TV Unit Túi xách dừng cho TỰ

Ngày đăng: 01/03/2014, 15:15

TỪ KHÓA LIÊN QUAN