17
‘Tirgul’ # 8 Enterprise Enterprise Development Development Using Visual Basic Using Visual Basic 6.0 6.0 Autumn 2002 Autumn 2002 Tirgul #8 Tirgul #8

Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #8

  • Upload
    javen

  • View
    33

  • Download
    1

Embed Size (px)

DESCRIPTION

Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #8. Objectives. SQL Queries & Statements Useful SQL techniques DB Comparison. retrieve All records. SELECT * FROM Users Use Constants: Use inside Function:. Public Const GET_ALL_USERS = "Select * From Users". - PowerPoint PPT Presentation

Citation preview

Page 1: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

Enterprise Enterprise Development Development

Using Visual Basic 6.0 Using Visual Basic 6.0 Autumn 2002Autumn 2002

Tirgul #8Tirgul #8

Page 2: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

ObjectivesObjectives

• SQL Queries & Statements

• Useful SQL techniques

• DB Comparison

Page 3: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

retrieve All recordsretrieve All records

• SELECT * FROM Users

• Use Constants:

• Use inside Function:

Public Const GET_ALL_USERS = "Select * From Users"

Public Function GetAllUsers() As ADODB.Recordset

'...

Set RS = Connection.execute(GET_ALL_USERS)

'...

End Function

Page 4: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

retrieve Some fieldsretrieve Some fields• SELECT UserID, UserName FROM Users• Use Constants:

• Inside a function

Public Const GET_USERS_FIELDS = "Select UserID, UserName” & _

“ From Users"

Public Function GetUsersFields() As ADODB.Recordset

'...

Set RS = Connection.execute(GET_USERS_FIELDS)

'...

End Function

Page 5: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

ConditionsConditions

• SELECT UserID, UserName FROM Users WHERE UserName = 'James‘

• SELECT UserID, UserName FROM Users WHERE UserID < 10

• SELECT UserID, UserName FROM Users WHERE UserID < 10 OR UserName = 'James'

Page 6: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

ConditionsConditions• Cannot build all string

• Use inside Function:

Public Const GET_USER_BY_NAME =

"SELECT UserID, UserName FROM Users WHERE UserName = '"

Public Function GetUserByName(strUserName As String) As ADODB.Recordset

'...

Dim strQuery As String strQuery = GET_USER_BY_NAME & strName & "'"

Set RS = Connection.execute(strQuery) '...

End Function

Page 7: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

SortingSorting

• SELECT * FROM Users ORDER BY UserName DESC

• SELECT * FROM Users ORDER BY UserName

• SELECT * FROM Users ORDER BY UserName ASC

• SELECT * FROM Users ORDER BY UserName, UserID DESC

Page 8: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

SortingSorting

• Use Constants:

• Use inside Function:

Public Const GET_USERS_ORDER_DESC =

"SELECT * FROM Users ORDER BY UserName DESC"

Public Function GetUserOrderDesc() As ADODB.Recordset

'...

Set RS = Connection.execute(GET_USERS_ORDER_DESC)

'...

End Function

Page 9: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

Add recordsAdd records

• INSERT INTO Users VALUES (10, 'James Crowley', 'PASSWORD')

• INSERT INTO Users (UserName, UserID) VALUES ('James Crowley', 10)

• INSERT INTO Users (UserName, Password) VALUES ('James Crowley', 'PASSWORD')

Page 10: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

Add recordsAdd records• Use Constants:

• Use inside Function:

Public Const INSERT_USER = "INSERT INTO Users (UserID,” & _

UserName) VALUES (‘"

Public Function InsertUser(strUserID As String, _

strUserName As String)

'...

Dim strQuery As String

strQuery = INSERT_USER & strUserID & "'" & strUserName & "')"

Set RS = Connection.execute(strQuery)

'...

End Function

Little an Evil..

No Return value

Page 11: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

Another option.Another option.• Use Array:

Public Function InsertUser(UserDataArr)

'...

Dim strQuery As String

strQuery = INSERT_USER & UserDataArr(0) & "'" & UserDataArr(0) & "')"

Connection.execute(strQuery)

'...

End Function

Public Function InsertUser(UserDataArr)

'...

RS!UserID = UserDataArr(0)

RS!UserName = UserDataArr(1)

'...

End Function

Page 12: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

UpdateUpdate recordsrecords

• UPDATE Users SET UserName = 'James Smith', Password = 'NEWPASSWORD' WHERE UserID = 10

• UPDATE Furniture SET Price = 10 WHERE ItemType = 'Cupboard'

Page 13: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

UpdateUpdate recordsrecords

• Use Constants:

• Use inside Function:

Public Const UPDATE_USER = "UPDATE Users SET UserName = ‘"

Public Function UpdateUser(strUserName As String)

'...

Dim strQuery As String

strQuery = UPDATE_USER & strUserName & "'"

Connection.execute(strQuery)

'...

End Function

Page 14: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

Delete a recordDelete a record

• DELETE FROM Users WHERE UserID = 10

• DELETE FROM Furniture WHERE Price < 10

• TRUNCATE TABLE authors

TRUNCATE TABLE is faster and uses fewer system and transaction log resources than

DELETE

Page 15: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

SQL Transaction statementsSQL Transaction statements

• BEGIN TRANSACTION

• COMMIT TRANSACTION

• ROLLBACK TRANSACTION

Page 16: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

Transaction UseTransaction UsePublic Function Insert() As Boolean

Conn.BeginTrans

'Add

'Delete

'Update

If Err.Number <> 0 Then

Conn.RollBack

Insert = False

Exit Function

End If

Conn.Commit

End Function

Page 17: Enterprise Development  Using Visual Basic 6.0   Autumn 2002 Tirgul #8

‘Tirgul’ # 8

Commercial Databases Commercial Databases • Access

– Simple yet useful– For a single/double work stations– Limit data size

• MS SQL Server– Very common– Only Microsoft…– Ease of use– Time-to-market

• Oracle– More “Commercial”– Known as a powerful tool– Multi platform – Win/Unix/Linux

• IBM DB2– More “Commercial”– Multi platform – Win/Unix/Linux– Useful for IBM family & tools