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 1Chươ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 4PA? 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 52.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 7Chươ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 8Khi 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 9Chươ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 10Hinh 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 11Nế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 13Chươ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 14ay 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 20Chẳ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 22Hinh 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 25và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 26200 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 27Chươ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 31Server 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 32206 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 33Visual 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 37Chung 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 40Properties 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Ự