Professional Documents
Culture Documents
http://www.vkinfotek.com
with permission.
Publishers: VK Publishers
Established: 2001
Type of books:
1
for more, click on http://www.vkinfotek.com/
Client/Server applications have become predominant in enterprise wide computing. This is because
Client/Server computing provides an open and flexible environment where mix-and-match is the
rule.
As enterprise wide computing becomes more sophisticated, the CIO of a company has a challenging
job involving maintenance of hardware and networks, upkeep issues like registry clean up, setting up
and updating policies, regular backups, etc., ensuring that the Client/Server business application is
up and running. A complex job like this requires an understanding and a grasp of all the issues like
hardware, networks, network operating systems, protocols and more.
Installing and setting up windows operating system for development and production environment
Installing and setting up database server - sql server
Front end design and development
Back end database design and development
On the client side of this architecture, we find a fairly simple Front-end application. On the server
side, we find an intelligent engine. The server is designed to accept queries from the front-end
application – usually in the form of calls to stored procedures and return the requested information.
We will see now in detail what are the responsibilities of client and a server.
Client Responsibilities
The client application is responsible for connection management, data capture, data retrieval, data
presentation, and error management.
2
with a SQL Server, running on the same system. The client application’s connection is authenticated
by the LAN and SQL server with a user-supplied or application-generated login ID and password. In
some cases, Microsoft Windows provides a degree of connection security management. That is, using
domain-managed security, client applications need not provide additional user names and passwords
to SQL Server—once they are authenticated by windows. The client must also deal with connection
problems caused by trouble on the server, on the network, in the application itself.
Data Capture: The client presents forms for the user to fill in with data. The client validates data
values before they are sent to the database. This pre-validation often involves cross-checking form
fields against other fields, either on the form or in the database. Validation can take place as fields
are filled in or completed, or as the form is committed. These validation criteria are often referred to
as client-side business rules.
Data retrieval: The client submits queries to the database engine for processing and retrieves the
result sets, as required. Another responsibility of the client is to manage data returned to the
application.
Data Presentation: The client application is responsible for displaying results from queries, as
needed. This task might involve filling a Grid or Listbox control.
Error Management: The client is also responsible for trapping and dealing with the errors. Effective
and comprehensive error management is the sign of a successful client application.
In any client/server implementation, the server is not just a data dumping ground. The server is also
responsible for intelligent resource management, security management, data management, query
management and database system management.
Resource management: The server is responsible for managing its own resources. These resources
include RAM, connections, disk space, CPU time, threads, and a set of caches or queues. If the server
has to compete for resources with other Windows 2003/ NT services, its job is made that much
harder. For example, if the server must also act as a print server or domain controller, the SQL
Server operations will become slow.
Security management: The server prevents unauthorized access to itself and the database while
permitting guarded access to those with valid permission.
Data management: The server is also responsible for the validity and integrity of the data sent to
the database system from the client application.
Query management: The server processes SQL queries from the clients, which involves syntax and
object checks and compilation of a query into a valid and efficient processing plan.
Database system management: In managing the database system, the server manages all
connections to the database. The server also maintains tables, indexes, procedures, rules, triggers,
data types, list of valid users, and other database objects.
Let us list and discuss the important topics we should be familiar with concerning the windows
operating system. Here my focus will be on discussing topics, which are more relevant and useful for
a programmer who is into application software development.
3
Windows provides two models of network administration. They are workgroup (peer-peer) and
domain model (client/server). The domain model, which involves usage of active directory services,
is more prevalent and suitable for large networks and where centralized administration is must.
A domain model provides centralized administration because user’s information is stored centrally. In
the workgroup model to access resources on two machines, it is necessary to have two user accounts
one on each computer. The domain model provides a single logon process for users to gain access to
network resources.
Active Directory Service is the service used to implement the domain model. With the ADS, all the
information needed to use and manage printers, shared folders and other resources are stored in a
centralized location and the process of locating and managing these resources is simplified. The term
directory in ADS refers to a database, which stores information of network objects or resources.
The ADS can be installed on the computer, which is running Server OS windows 2002 or 2003. The
process of installing Active Directory on a Windows Server 2003 server computer begins by launching
the Active Directory Installation Wizard often referred to by its executable file, DCPROMO. Using
dcpromo.exe, we can install and remove Active Directory from a Windows Server 2003 computer.
The computer on which Active Directory Services is installed is called domain controller. It is from
this computer that the network administrator manages the domain.
DNS is a service, which translates computer names (host names) to IP addresses. The DNS server is
a machine on which DNS service is installed. The DNS service helps to identify the computers on the
network. The Domain Name System (DNS) is the standard name resolution strategy used on
Windows Server 2003 systems.
In a practical scenario, when an application is running on the network, the client frequently requests
data from the SQL server residing on the server. Whenever a request is issued there is a necessity
for the client’s identity. The DNS server helps to resolve this identity. At the application level, the
DNS server is not involved in the scheme of things. The DNS server operates only at the OS level and
helps to open a channel between the server and a client. Once the IP addresses are set and the
application is installed, there is nothing to be done on a day-to-day basis. DNS is most commonly
associated with the Internet. However, private networks use DNS extensively to resolve computer
host names and to locate computers within their local networks. If a DNS solution is not available or
installed when you set up domain controller, we won’t be able to create the domain. Therefore, you
need to have a working DNS server before we can install Active Directory. If not, Active Directory
Installation Wizard will offer to create one for you.
In a network, if the number of clients are more, setting up IP addresses manually, is not practical.
For such cases, an additional service called the DHCP (Dynamic Host Control Protocol) service is
provided by Windows operating system. This service allocates an IP address to each computer when
the system boots. The advantage is that, when there are more number of computers on the network,
the need to give one unique IP address to each one of the computer is eliminated.
4
for more, click on http://www.vkinfotek.com/
To implement DHCP, you must install and configure the DHCP service on at least one computer
running Windows 2000 or 2003 server within the network. For DHCP to function properly, we must
manually allocate the IP address on the server and set up the clients for dynamic address
configuration. We will install the DHCP service on the first computer, referred to as SYS1 here on.
Use the Add/Remove programs utility in control panel. Then click the Add Windows Components
selection.
The topology of a network is the pattern used to connect the computers and other devices with the
cables or other network medium. There are several basic types of network topologies, or structures
in networks. A network can be connected by using any one of the following three topologies:
1.Bus
2.Star
3.Ring
we will discuss the star topology as this is the most common topology used.
Star topology
In a star topology, each computer is connected to the hub using a separate cable. Most of the
Ethernet LANs installed today, and many LANs using other protocols as well, use the star topology.
Star LANs can use several different cable types, including various types of twisted-pair and fiber optic
cable. The unshielded twisted pair (UTP) cables used on most Ethernet LANs are usually installed
using a star topology. Each computer connects to the hub with its own cable, the hub propagates all
signals entering through its ports out through all of its other ports. The main advantage of the star
topology is that each computer has its own dedicated connection to the hub, providing the network a
measure of fault tolerance.
Concept of Ip address
An important concept of networking is IP addressing. Currently a 32-bit network address is in use all
over the world. This address contains 4 octets i.e, four numbers. Each octet can be any number from
0 to 255. Each octet is separated by a period. IP addresses must be unique for each computer in the
network. IP addresses commonly fall within three classes: Class A, Class B, and Class C. Class
assignments are based on network size and the availability of IP addresses. Each network device
needs a unique IP address. The system administrator, or anyone who coordinates IP address
assignment and configuration, should assign this address from the pool of addresses he defines. For
example if the network contains 25 computers, he may define it as 1 to 25 (192.168.0.1 to
192.168.0.25). In Class A, the first octet refers to network and the next three octets refer to hosts.
In Class B, the first two octets refer to network and the next two octets refer to the host. In Class C,
the first three octets refer to the network and the last octet refers to host. The term network and
5
host are relevant, when we want to be part of the Internet. If the network we are setting up is not a
part of the Internet, then we need to use the following IP addresses of Class C, and they are
192.168.0.0 to 192.168.255.255. These addresses are called private addresses. These addresses are
designed to be used within an organization. The last octet in this IP address can be of our choice.
Note that in DHCP server we have to provide the range of possible numbers, so that DHCP server will
allocate a number with in this range automatically. For public addresses to be used on the internet,
InterNIC an organization established to monitor and allocate public IP addresses accepts the
requests for these IP addresses and allots the same on a first come first serve basis.
After we are done with windows operating system installation and setting up we can now go ahead
with sql server installation. The important topics in installation and setting up sql server database
are:
Databases have to be secured to ensure that only authorized users can access a SQL Server
database. To secure the database the following steps have to be done using the Enterprise Manager.
In sql server 2005, there are changes in executing the following steps. If you want to know exactly
how it is done in sql server 2005 refer the book titled “Database Programming using visual basic
2005, c# 2005 and sql server 2005”.
1.Creating Logins.
2.Adding Logins to Server Roles.
3.Creating Database Roles.
4.Granting Permissions.
1.Creating Logins
In order for users to get to the data provided by SQL Server, they must first log in to SQL Server.
This is the first layer of security that is implemented inside SQL Server itself. SQL Server logins
control which individuals or group of individuals have permissions to connect to a SQL Server.
There are two basic types of logins. There are logins (windows logins) that are created internally in
SQL Server and logins that reference existing windows users or groups. The standard logins are
created by the SQL administrator internally in SQL Server and are primarily for non-windows or
remote users to use to log in.
As an administrator, we need to allow other people to perform certain administrative activities on the
SQL Server. By default, individuals with login access to SQL Server have no implied privileges on the
server. If you require specific logins be allowed to perform certain administrative tasks on the server,
you need to give users the permissions to do so.
Server roles are basically groups that exist at the server level. The server roles are built into SQL
Server and have specific permissions pre-assigned to them. By adding logins to these Server Roles,
you allow those logins to perform the actions for which the role has permissions. For example,
adding a login to the dbcreator server role allows those users to create databases in SQL Server. The
set of roles that exist at the server level and the permissions assigned to them are all predefined.
You cannot create your own server roles, nor can you change their permissions. Because of these
restrictions, the server roles are called fixed server roles.
6
3.Creating Database Roles
In SQL Server, groups are called roles. Server roles exist at the server level and allow their members
to perform server wide operations. SQL server also provides a number of built-in roles for each
database it contains. The built-in database roles, better known as fixed database roles, provide a
convenient mechanism for assigning special database permissions to users. SQL Server does allow
you to create your own database roles.
4.Granting Permissions
Permissions need to be assigned for users to be able to execute statements and interact with the
objects in a database. Permissions can be assigned using Enterprise Manager. In the enterprise
manager, Expand the Databases, select the Northwind database and Click the Tables object in the
Enterprise manager tree. Then all the tables will be displayed in the right pane. Click on the
Categories table, properties dialog will be displayed. Click on the Permissions button, and then the
object properties dialog box will be displayed. A checked box for permission implies that the
permission is granted. A box with an X in it implies that the permission has been denied, and a
cleared check box means that the permission is revoked.
Windows authentication is generally preferred because it provides an optimal level of integration with
Windows 2003 server. User and group accounts from Windows are granted or denied access to SQL
Server. Windows 2003 authenticates the user when the user logs on to the network. Because the
password is authenticated at network login, SQL Server does not need to know or verify the
password of a user. Windows Authentication provides the following advantages over SQL Server
Authentication.
Windows Authentication can grant group accounts to access SQL Server, thus minimizing the
over head of login administration.
Users are authenticated by Windows 2003, resulting in a secure authentication over a
network.
Users could be able to use the same user credentials for network and database access.
Audited events can be tracked to a network user.
To add a Standard SQL Login using the Enterprise Manager, follow these steps.
7
d. Ensure that the SQL Server Authentication option is selected.
e. Enter the name of the SQL login in the Name field.
f. Select the default database for the user.
g. Click OK.
h. Confirm the password for the login.
To develop a client application that establishes a connection to a data source, we must plan the way
in which the connection is made. This includes determining the security mode of the designated data
source, and whether it requires a user ID and Password. Security is necessary to protect the
information contained in the database. We usually implement one of two primary security options.
Standard security mode is the default security mode for SQL Server. Standard mode uses the SQL
Server security model for every connection to the database. It supports non-trusted environments,
such as the internet. Note that users will not necessarily first connect to a Microsoft Windows 2003 or
NT server for authentication. SQL Server will perform its own authentication in this situation. The
system administrator or database owner can create userIDs, user names, and groups for each
database on the server. When this mode is in use, the user must enter a user ID and password that
has been established for the database.
Integrated security mode allows SQL Server to use Microsoft Windows 2003 or Windows NT
authentication mechanisms to validate all connections to the database. We use integrated security in
network environments in which all clients support trusted connections. Integrated security allows
applications to take advantage of Windows server security capabilities. With integrated security, user
maintain a single user ID and password for both Windows 2003 and SQL Server. If SQL Server is
using Integrated Security, the values of user ID and password are ignored.
Sql server uses the service security account to access windows resources. The service security
account is the logon account that SQL Server uses to access Windows resources. The service security
account is not a login for users connecting to SQL server.
Two options exist for the service security account. The first option is local system account and the
second option is dedicated domain user account.
The local system account is a Windows 2003 operating system account with full administrator rights
on the local computer. We use this account to install SQL server where we need not integrate SQL
Server with other server applications such as Exchange server.
The recommended option in production environments is to use a dedicated domain user account. The
preferred way to use a dedicated domain user account is to create an account in a Windows Active
8
Directory domain that can be referenced by all the computers involved in a domain. We recommend
creating a specific account just for SQL Server rather than share a general network system
administrator account. This will help reduce the chance that a network-system administrator will one
day delete the account or change the password, causing SQL Server to fail.
We use Active Directory Users and Computers to create and configure a dedicated Windows 2003
user account. The following are the steps to create a service security account.
In a production setting data entered by the user is stored in a sql server database tables. These
tables cab be created using designer or using the scripts. Using scripts is a more professional way of
designing the database. Let us now see how it is done.
If you are developing a database for mass deployment or repeatable installations, the benefits of
developing the database schema in scripts become obvious, as listed below.
1. All the code is in one location. Working with SQL scripts is similar to developing an application
with Visual Basic or C#.
2. The most current version of the database may be installed without running change scripts or
restoring a backup.
All the tables used in the application series books are created using scripts.
Drawbacks
The T-SQL commands may be unfamiliar and the size of the script may become overwhelming.
In a situation where foreign-key constraints are embedded within the table, the table-creation order
is very strict. If the constraints are applied after the tables are created, the table-creation order is no
longer a problem; however, the foreign keys are distanced from the tables in the script.
The following CREATE TABLE DDL command creates the Customer table. The table name, including
the name of the owner (dbo), is provided, followed by the table’s columns. The final code directs SQL
Server to create the table on the primary filegroup. Apart from the columns, the only information you
normally supply when creating a table is the name.
9
City VARCHAR(50) NOT NULL
)
ON [Primary]
Creating Keys
Enforcing data integrity ensures that the data in the database is valid and correct. Keys play an
important role in maintaining data integrity.
The relational database depends on the primary key. The uses of the primary keys are:
Setting a column, or columns, as the primary key in Enterprise Manager is as simple as selecting the
column and clicking the primary-key toolbar button. Enterprise manager creates primary keys with
clustered indexes. This is a poor index choice and waste of the one clustered index available for a
table.
In the following code, declaring the primary-key constraint in the Create Table statement is shown.
Two data types are excellent for primary keys: Identity columns and unique identifier columns.
By far the most popular method for building primary keys involves using an identity column. Like an
auto-number column or sequence column on other databases, the identity column generates
consecutive integers as new rows are inserted into the database.
Identity – column values are created by SQL Server as the row is being inserted, as shown below.
10
CustName VARCHAR(30) UNIQUE NOT NULL,
City VARCHAR(50) NOT NULL
)
ON [Primary]
GUIDs is a 16-byte hexadecimal number that is essentially unique among all tables, all databases
and all servers. The uniqueness is due to the GUID generator using several factors, including the
computer NIC code, the MAC address, the CPU internal ID, and the current tick of the CPU clock.
1. The randomness of the GUID helps reduce database hot spots by spreading new rows around
the table or index and avoiding lock contention.
2. GUIDs discourage users from working with or assigning meaning to the primary keys.
3. GUIDs are forever. The table based on a typical integer-based identity column will hold only
2,147,483,648 rows.
4. Easier to program with GUIDs than with identity columns.
Guidelines for choosing the attribute on which the index would be created:
1. Columns that are frequently used in a SELECT list and a WHERE clause.
2. Columns where data will be accesses in sequence by a range of values.
3. Columns that will be used with the GROUP BY or ORDER BY clause to sort the data.
Columns used in joins, such as FOREIGN KEY column, so that joins can execute faster.
11
Features of Indexes
1. Indexes accelerate queries that join tables, and perform sorting and grouping
2. Indexes can be used to enforce uniqueness of rows.
3. Indexes are useful on column in which the majority of data is unique. An index on columns
containing large amount of duplicate data is not useful.
4. When you modify the data of an indexed column, the associated indexes are updated
automatically.
5. Maintaining indexes requires time and resources. You should not create an index that would
not be used frequently.
6. The clustered index should be created before nonclustered index. Clustered index changes the
order of rows. The nonclustered index would need to be rebuilt if it is built before clustered
index.
The one important question every programmer needs to answer before commencing work on a
software project is
All database applications, whether n-tier or three-tier have three logical layers and they are:
Three-tier architecture is a client/server architecture in which all the three layers reside separately,
either on the same machine or on different machines.
The user interface (presentation layer) interacts with the user and accepts data and passes it to the
business services (Business layer) which validates the data and sends it to the data services (Data
Layer). While there will be only three logical layers in any application, the physical layers can be
many depending on the usage. Many a times the word layers and tiers are used interchangeably.
The presentation layer resides in the front as windows forms and web forms and handles input from
input devices like the keyboard, mouse, or other devices. Next to the presentation layer is the
application or business logic layer, which gives the functionality to the application program. The third
layer provides the database service.
Business logic is the implementation of rules of the business in the software system. In a three-tier
architecture, the business logic is a service. This service can be run on a separate server computer.
This server computer is called the application server. The computer which runs the database is called
12
as the database server and many a times the same server hosts both the database and business
logic layer.
In a three-tier client/server software application, the presentation layer does not have any
information about the structure and working of the database. Instead, the presentation layer
communicates with the application server using message protocol.
The multi-tier design adapted in the book, separates the Interface (Presentation Layer) from the
Business Logic and the Database Layer, so the system can be easily adapted to environments or
scaled across multiple systems.
By choosing the Multi-tier design, we facilitate unlimited scalability of the application. An overview of
the application architecture is given below.
Developing the presentation side of the database application can be grouped under three
main headings.
Menu
Transactions
Reports
Menu
In the windows environment, we use menus to enhance the user interface of an application. Menus
offer a convenient and consistent way to organize related options into a group. In Visual Basic, we
13
can create two types of menus, the menus that appear on the menu bar and context menus, which
appear when the right mouse button is clicked.
The menus that appear on the menu bar contain a list of options that a user can use for various
requirements. For example, in a word processing application, the File menu has options, such as
Open, Save and Close. Using Visual basic, we can also create similar menus for an application.
Transactions
Many events occur in a company. These events may involve many implications like financial, stock
and process implications. Whenever an event occurs a transaction is raised to record the details of
the event. In a windows database application, all events are recorded using forms. Depending on the
data to be recorded for the event, different user interface controls are used. For example, a textbox
control is used to record text data of an event.
Let us see how one such transaction, like the cash voucher transaction is used to record all cash
payments in a company.
Once you master the design and programming of this and other transactions listed in the application
series books, you can easily extend the knowledge to develop a full fledged applications.
Briefly, a transaction is associated with an event in a firm, wherein, there is an exchange of goods or
services for money. Commonly entered data in a cash voucher transaction / form are:
A transaction is a series of actions that must either succeed, or fail, as a whole. If one of the actions
fail, then the entire transaction fails and all the changes made to the database so far, must be
reversed (roll back). If all actions succeed, then the transaction is committed to the database.
To save the data entered by the user in the cash voucher we will use two tables TranTable and
AccountsTable. Both the tables are updated when we save the cash voucher, and then we can say
that the transaction is completed. Only after the transaction is committed, other users will be able to
view the effects. This process is very important to preserve the integrity of a database.
The cash voucher form uses the services of the TranClass for purposes like retrieving and filling the
ComboBox controls and saving the transaction.
In the application series books, you can learn how to create the form, how to select and place the
controls and how to set the validations.
The following are the list of functions, procedures and event handlers which will enable us to program
a complete industrial strength cash voucher transaction. These functions and procedures pertain to
the cash voucher form. We write the following functions and procedures in the code behind window
of the cash voucher form.
14
6. Private Sub btnDelete_Click()
7. Private Sub btnCancel_Click()
8. Private Sub btnEdit_Click()
9. Private Sub CheckSaveButton()
10.Private Sub btnSave_Click()
11.Private Sub refreshvar()
12.Private Function Scatter()
13.Private Function ValidControls()
14.Private Sub txtDb_LostFocus(), Private Sub txtCr_LostFocus()
15.Private Sub CreditTotal(), Private Sub DebitTotal()
16.Private Sub txtdb_TextChanged(), Private Sub txtcr_TextChanged()
17.Private Sub MainAmount_LostFocus()
18.Private Sub MainAmount_TextChanged()
19.Private Sub VouRecForm_Closing()
Purpose:
In this event, we initialize the transaction number, date, debit and credit text boxes, cash amount
controls. We disable the selector box in the header in the data grid view control with the statement
DataGridView1.AllowUserToAddRows = False. This ensures that user does not enter data directly into
the datagrid. The debit, credit and accounts combo box controls are also disabled. The statement
DataGridView1.DataSource = PrivateDataTable binds the DataGridView control to the DataTable.
GetMainAccountDataLocal()
This procedure instantiates the TranClass and calls the GetMainAccs() method to fill the MainCombo
box control.
GetAccountDataLocal()
This procedure instantiates the TranClass and calls the GetMultipleAccs() method to fill the Accounts
Combo box control.
GetTableForGrid()
15
This procedure calls the buildDataTable() procedure to build the datatable.
Purpose
This procedure is for accepting a new row of data. This new row of data is updated to the grid when
the user clicks on the accept button.
Purpose
This procedure enables the save button if the total of debit amounts is equal to the total of credit
amounts. This procedure also performs the following tasks.
a. Check whether transaction number text box is empty. If empty, set focus to the
transaction number textbox control.
b. Check whether transaction date text box is empty. If empty, set focus to the transaction
date textbox control.
c. Check whether account has been entered in the MainComboBox. If empty, set focus to the
MainComboBox control.
d. Check whether amount has been entered in the Amount textbox control. If empty, set
focus to the control.
e. Call function Scatter() to save the transaction.
16
Dim lret As Boolean
Dim dtot As Double
Dim ctot As Double
dtot = 0
ctot = 0
If (LTrim(RTrim(txtTranNo.Text)) = "") Then
MsgBox("Enter Transaction Number")
txtTranNo.Focus()
Exit Sub
End If
Purpose
This function is an important function. This function performs the following tasks.
a. The data which is entered in Tran No, Date, Main AccountsCombo, and Amount controls
are assigned to TranClass property procedures.
b. Calls TranClass- SaveTransaction() method to save the transaction.
17
Purpose
The purpose of this procedure is to validate the numeric data. The MainAmount_LostFocus() event
triggers if the focus is leaving the amount text box control.
Creating Reports
In an accounting application, data is entered when recording transactions. At the end of the day or at
the end of the month, the management may need to view reports which reflect the working of the
firm. There are various reports which are prepared in a firm. Let us see how to program the Register
report.
The Business Objects Crystal Reports product is one of the world’s best reporting tools. A special
edition of Crystal Reports has been embedded within the Visual Studio product. The datasource is the
database in which data has been entered using the transaction forms.
Cash voucher Register is a report which shows cash payment Transactions for a period. The format
for this report is suitable for checking the cash voucher transactions.
To display cash voucher in the report, we have to retrieve the filtered data from the TranTable. We
will connect the Crystal report to an ADO.NET DataSet through a DataSet schema. We need to
18
perform a few extra steps to generate a report from an ADO.NET DataSet, because the report is not
connected directly to a database.
A ADO.NET DataSet schema provides a template of the data structure in XML. However, a report
cannot retrieve data from the DataSet schema alone. The DataSet schema must first be instantiated
as a strongly-typed DataSet instance. The DataSet instance must be filled with data through use of
the DataAdapter class.
We use a GUI approach to generate the DataSet schema. Visual Studio 2005 includes the DataSet
Designer. It is a tool and is identical to the DataAdapter Configuration Wizard of Visual Studio.Net. In
the Solution Explorer, right-click the project name, point to Add, and then click Add New Item. In the
Add New Item dialog box, in the Templates list, select DataSet. In the Name field, enter
“TranDataSetSchema.xsd,” and then click Add. From the Server Explorer drag the TranTable onto the
TranDataSetSchema.xsd window. From the Build menu, click Build Solution. A strongly-typed
DataSet class is generated from the schema. From the File menu, click Save All. The DataSet schema
that we have created for the TranTable is a data structure. At runtime, code is required to populate
the DataSet structure with data from the database.
We will create this Crystal report that bases its data connectivity on the TranDataSetSchema schema.
In Solution Explorer, right-click the project name, point to Add, and then click Add New Item. In the
Add New Item dialog box, select Crystal Report. In the Name field, enter the name “Register.rpt” and
click Add. Right click the Database fileds node and select Database Expert option. Expand the
ADO.NET DataSets node and expand the TranDataSetSchema node. Expand the Tables node and
select the TranTable node. Double-click the TranTable to move the table into the Selected Tables
panel, and then click. Expand the TranTable in the Field Explorer window and drag the fields as
shown below. The report is created with data connectivity to the TranDataSetSchema
Binding the Report and Setting the DataSource to the Populated DataSet
Create a form and name it as CashReg. Select CrystalReportViewer control from the ToolBox and
place it on the form. We will now write code that binds the Crystal report to the DataSet. For the
Crystal report binding code, we do the following steps in Form_Load method of CashReg windows
form.
Imports System.Data
Imports System.Data.SqlClient
19
Dim myConnection As New SqlConnection()
MyCommand.Connection = myConnection
MyCommand.CommandText = “select * from TranTable where TranCat=’a’”
MyCommand.CommandType = CommandType.Text
Dim MyDA As New SqlDataAdapter()
MyDA.SelectCommand = MyCommand
Dim myd As New TranDataSetSchema
MyDA.Fill(myd, “TranTable”)
‘Call the SetDataSource() method of the Register report instance and pass into it the
DataSet instance.
myCashReg.SetDataSource(myd)
Connect the report to the menu and view the Crystal Report.
20
OOPS
A real life model is what we see and live among. The cars we see and the pens we use and
tables we write on, are called objects in Object Oriented terminology. Every object in a real life
situation or model can be said to belong to a Class. Cars belong to the Class automobile.
The real life model can be extended. Suppose, we say that automobiles are classified into four
wheelers and two wheelers, then car becomes the instance of the four wheeler sub class and a
jeep another instance of the four wheeler sub class. So, the Object Oriented methodology is a
classifying system in order to better understand a system. The benefit of OOPs is that we can
understand and design a software application in a logical manner.
In other words, in OOPs, we use the concept of Classes and Objects, and if required Sub
Classes, to define a system. If we define the Class automobile as a class consisting of things
which transport people, then the next step is to define the characteristics. The characteristics
could be, the four wheels, and the seating, and the steering wheel. In OOPs terminology we call
these as attributes or properties. Methods and attributes together are known as the interface of
the class.
In a real life model we say the automobile class has the behavior of transporting people. In
OOPs terminology, behaviour is referred to as service or method.
In the domain (that is the Inventory domain) which we have considered, two of the classes and
their objects are:
Class Object
The success of the Object Oriented approach lies in the fact that we can commence the design
and analysis of the application by using real life situations and approach.
a. Abstraction.
b. Encapsulation.
c. Inheritance.
d. Polymorphism.
These are key requirements and are often used as evaluation criteria when defining a system.
Abstraction
Abstraction is a technique that we all use to manage the complexity of the information. Using
abstraction we can focus on the objects of an application and not on the implementation. This
lets us think about what needs to be done and not how the computer will do it.
21
Encapsulation
Encapsulation is the ability to contain and hide the information about an object
such as internal data structures and code. Encapsulation isolates the internal
complexity of an object’s operation from the rest of the application.
Polymorphism
Two or more classes having the same behavior or methods that are named the same and have
the same basic purpose but different implementations, is polymorphism. For example,
ItemClass has Save behavior or method and TradeClass also has Save behavior. But, the
implementation of that behavior is completely different in each case. When the Save button is
hit, the object knows the class it belongs to and automatically calls the appropriate Class save
method.
There are many features in VB which support Object Oriented Programming. Some of them are
detailed below:
a. Defining a Class.
b. Property Procedures.
c. Polymorphic Methods.
d. Generating Events.
e. Viewing a Class.
f. Creating Objects.
g. Using Forms as Objects.
a. Defining a Class
A Class is defined using a feature called Class Module. The Class Module can be added into the
project using the Add Class Module option in the Project Menu. Using the Class Module,
properties and property procedures can be defined. Behaviors or methods of the class can be
implemented using sub and function procedures.
b. Property Procedures
Property procedures provide the public interface to the private properties in a class. With
property procedures we can get and set the value of object property.
c. Polymorphic Methods
Methods are the sub and function procedures in a class that provide the implementation of the
object behaviors. Same names can be used for similar properties and methods in different
classes which is polymorphism.
d. Generating Events
In VB events can be defined in a Class. Events are the means to communicate between
components.
e. Viewing a Class
22
The object browser provides a list of all classes within the current project and the properties,
methods and events for each class. You can use the Object Browser to quickly review the
interface of a class. The Object Browser also provides a convenient online reference
information.
f. Creating Objects
Objects can be created from the classes. The reference to the created object is stored in an
object variable. The object variable is then used to set or retrieve the object’s properties and
invoke object’s methods.
In VB, forms are treated as classes. Many of the features provided for classes are available in
forms as well. You can add public properties and methods to a form class defined in a form
module. A form object is created by VB when the form is loaded.
The above seven points explain the OOPs features of VB. Implementation of these features is
explained in the coming topics.
SP vs Triggers
A stored procedure is a routine written in T-SQL by using the DML, which acts on a rows of a
table in a database. SQL does not support IF statements and functions which manipulate
strings, formatting functions, whereas T-SQL supports all of them. Stored procedures are stored
in SQL Server databases. We can use stored procedures to build business rules into the
database. After stored procedures have been stored to the database, users and applications can
call them as if they were another SQL statement or a built-in T-SQL function. The main
advantage of using stored procedures is performance. Stored procedures execute on the
database server, close to the data. Stored procedures which are nothing but data manipulation
code, execute faster than passing SQL statements fromVB. A stored procedure can scan
thousands of records, perform calculations, and return a single number to an application. All
calculations occur on the database server and data is not moved across the network. For this
reason stored procedures are faster than equivalent SQL statements. After stored procedures
are defined, they become part of the database and appear as database objects, like tables or
views. This makes it easier to access the stored procedure statements and manipulate them.
Once they are tested, stored procedures do not require compiling as is the case with VB code.
We can set security on the stored procedure so that only callers with appropriate permissions
can execute the logic. Using stored procedures we can encapsulate the business logic, hiding
database structure changes from an application. We can also change the structure of the
underlying tables, by modifying the stored procedure without affecting applications that use the
stored procedure. By providing a stored procedure for editing the transactions, we can ensure
the integrity of the data.
We can use the SQL Server Query Analyzer or the Enterprise Manager to write, debug, and
execute stored procedures against a database. To create a stored procedure, we enter the
definition of the procedure into the database. We create a new stored procedure by using the
CREATE PROCEDURE statement and save it to the database. This step does not actually execute
the stored procedure. To execute a procedure saved into the database, we must use the
EXECUTE statement.
23
Triggers are special types of stored procedures. Triggers are very important in SQL
programming. A trigger is a procedure that SQL Server invokes automatically when certain
changes applied to data. These actions are inserting, deleting, and updating a row. We can
think of triggers as VB event handlers for onUpdate, onInsert, and onDelete events. Creating a
trigger is similar to creating a stored procedure.
Web services
I have put up a detailed set of articles about web services, including how to create one at:
http://www.vkinfotek.com/webservice/createwebservce.aspx
24