CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes PropMan Mark Johnson CS 8628, Summer 2003 A Property Management Database Interface.

Slides:



Advertisements
Similar presentations
Microsoft® Access® 2010 Training
Advertisements

WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
Access 2007 ® Use Databases How can Microsoft Access 2007 help you structure your database?
MS-Access XP Lesson 1. Introduction to MS-Access Database Management System Software (DBMS) Store data in databases Database is a collection of table.
Stored procedures and views You can see definitions for stored procedures and views in the demo databases but you can’t change them. For views, expand.
Tutorial 8: Developing an Excel Application
CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Final Project TackSoo Im CS 8628, Summer 2003 Video Rental Store Database for PDA.
CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes TaskMaster Ken Crosson CS 8628, Summer 2003 Priority Manager.
Microsoft Office 2010 Access Chapter 1 Creating and Using a Database.
Access Lesson 2 Creating a Database
Let’s try Oracle. Accessing Oracle The Oracle system, like the SQL Server system, is client / server. For SQL Server, –the client is the Query Analyser.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
IS 1181 IS 118 Introduction to Development Tools VB Chapter 06.
Automating Tasks With Macros
Using Visual Basic 6.0 to Create Web-Based Database Applications
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Macros Tutorial Week 20. Objectives By the end of this tutorial you should understand how to: Create macros Assign macros to events Associate macros with.
Office 2003 Introductory Concepts and Techniques M i c r o s o f t Access Project 1 Creating and Using a Database.
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Figure 1. Hit analysis in 2002 of database-driven web applications Hits by Category in 2002 N = 73,873 Results Reporting 27% GME 26% Research 20% Bed Availability.
Chapter 9 Macros, Navigation Forms, PivotTables, and PivotCharts
Advanced Tables Lesson 9. Objectives Creating a Custom Table When a table template doesn’t suit your needs, you can create a custom table in Design view.
Database Applications – Microsoft Access Lesson 2 Modifying a Table and Creating a Form 45 slides in presentation Accessibility check 9/14.
A Guide to SQL, Eighth Edition Chapter Three Creating Tables.
© 2008 The McGraw-Hill Companies, Inc. All rights reserved. ACCESS 2007 M I C R O S O F T ® THE PROFESSIONAL APPROACH S E R I E S Lesson 4 – Creating New.
XP New Perspectives on Microsoft Access 2002 Tutorial 51 Microsoft Access 2002 Tutorial 5 – Enhancing a Table’s Design, and Creating Advanced Queries and.
Copyright © 2001 by Wiley. All rights reserved. Chapter 10: Advanced Database Operations Revising Vintage Videos Setting RecordSource at run time DBGrid.
CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes BooKeeper Sridevi Srinivasan CS 8628, Summer 2003 Replication in Pocket PC Environment using.
1 MySQL and phpMyAdmin. 2 Navigate to and log on (username: pmadmin)
1 PHP and MySQL. 2 Topics  Querying Data with PHP  User-Driven Querying  Writing Data with PHP and MySQL PHP and MySQL.
Java: Chapter 1 Computer Systems Computer Programming II.
InvEasy (Project1) Please use speaker notes for additional information!
PHP meets MySQL.
1 Data Bound Controls II Chapter Objectives You will be able to Use a Data Source control to get data from a SQL database and make it available.
 Application – another name for a program.  Interface – is what appears on the screen when the application is running.  Program Code – is instructions.
Oracle Data Integrator Procedures, Advanced Workflows.
Concepts of Database Management Seventh Edition
CIS 338: Using Queries in Access as a RecordSource Dr. Ralph D. Westfall May, 2011.
Office 2003 Post-Advanced Concepts and Techniques M i c r o s o f t Access Project 7 Advanced Report and Form Techniques.
BUSINESS DRIVEN TECHNOLOGY Plug-In T5 Touring Access.
Office 2003 Introductory Concepts and Techniques M i c r o s o f t Access Project 1 Creating and Using a Database.
1 MIS309 Database Systems Introduction to Microsoft Access.
IMS 4212: Data Manipulation 1 Dr. Lawrence West, MIS Dept., University of Central Florida Additional Data Manipulation Statements INSERT.
CSC 240 (Blum)1 Introduction to Access CSC 240 (Blum)2 Click on the Access desktop icon or go to Start/Programs/Microsoft Office/Microsoft Office.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Chapter Fourteen Access Databases and SQL Programming with Microsoft Visual Basic th Edition.
VAT Calculator program Controls Properties Code Results.
Unbound Form Form not tied directly to any fields in the database Must use SQL to “bind” the fields 1.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
Task #1 Create a relational database on computers in computer classroom 308, using MySQL server and any client. Create the same database, using MS Access.
Using ADO.Net to Build a Login System Dr. Ron Eaglin.
MSOffice Access Microsoft® Office 2010: Illustrated Introductory 1 Part 1 ® Database & Table.
Starting with Oracle SQL Plus. Today in the lab… Connect to SQL Plus – your schema. Set up two tables. Find the tables in the catalog. Insert four rows.
Using a Database Access97 Please use speaker notes for additional information!
Chapter 5 Introduction To Form Builder. Lesson C Objectives  Use sequences to automatically generate primary key values in a form  Create lists of values.
Access Module Implementing a Database with Microsoft Access A Great Module on Your CD.
CIS 338: VB.NET Printing Dr. Ralph D. Westfall May, 2011.
Programming with Microsoft Visual Basic 2012 Chapter 14: Access Databases and SQL.
COMPREHENSIVE Excel Tutorial 12 Expanding Excel with Visual Basic for Applications.
Office 2003 Introductory Concepts and Techniques M i c r o s o f t Access Project 1 Creating and Using a Database.
ASP.NET Programming with C# and SQL Server First Edition
SQL and SQL*Plus Interaction
Creating and Using a Database
MODULE 7 Microsoft Access 2010
Guidelines for Microsoft® Office 2013
Presentation transcript:

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes PropMan Mark Johnson CS 8628, Summer 2003 A Property Management Database Interface

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Sequence of Tasks The following are the steps that I took in designing and creating this project. –Formulate and design a 3 table database. –Create the ERD, logical schema, and DDL. –Create the schema using Ultralite Schema Painter. –Visualize the needs and layout of the application. –Create the four forms of the application. –Add the controls and code to the Main, Properties, Tenants, and Payments forms. –Create the server database using Sybase Central. –Create the publication using Interactive SQL. –Create the synchronization user using Interactive SQL.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Sequence of Tasks Continued –Create the synchronization subscription using Interactive SQL. –Proceed to test and debug the application from within VB. –Deploy the application to the Pocket PC. –Proceed with testing and debugging. –Create the synchronization scripts using Sybase Central. –More testing and debugging. –Project completion.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Project Description PropMan is an application for entering, viewing, and modifying property management information on the Pocket PC, allowing multiple agents, with multiple Pocket PC’s, to all synchronize their remote databases with a central database containing all properties, tenants, and payments. The remote database, pm.udb, is synchronized with the server database, PropManDB.db, using Mobilink. Three forms contain information on rental property, tenants, and payments. The Properties form contains the property number, rental amount, the street address, city, state, and zip code. Properties can be added and deleted using this form, and the rental amount for a property can be modified.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Project Description Continued The Tenants form contains the tenant number, property number, tenant name, and phone number. Tenants can be added and deleted using this form, and the tenant’s name and phone number can be modified. The Payments form contains the payment number, tenant number, payment amount, and payment date. Payments can be added and deleted, but not modified. The application’s fourth form, the Main form, is the access point to the other three forms and also the form from which synchronization takes place.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes E-R Diagram Rent PropNum City Zip State Address Property PropNum Name Phone TenantNum Tenant PaymentNum TenantNum PayDate PayAmt Payment 0:N1:1 0:N 1:1

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Logical Schema The Property table contains PropNum (Primary Key), Address, City, State, Zip, and Rent. The Tenant Table contains TenantNum (Primary Key), PropNum (Foreign Key to the Property table), Name, and Phone. The Payment table contains PaymentNum (Primary Key), TenantNum (Foreign Key to the Tenant table), PayDate, and PayAmt. PropNum Address City StateZip Rent TenantNum PropNum NamePhone PaymentNum TenantNum PayDate PayAmt Property Tenant Payment

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Physical Schema (DDL) Describe Property PropNumchar(3)Not NullPrimary Key Addresschar(25)Not Null Citychar(15)Not Null Statechar(2)Not Null Zipchar(7)Not Null RentdoubleNot Null The DDL are represented on this page and the next as SQL describe statements. All of each table’s columns are represented with their respective data type and precision, and whether they accept null values. The primary keys for each table are also shown.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Physical Schema (DDL) Continued Describe Tenant TenantNumchar(3)Not NullPrimary Key PropNumchar(3)Not Null Namechar(15)Not Null Phonechar(12) Describe Payment PaymentNum char(3)Not NullPrimary Key TenantNum char(3)Not Null PayAmt doubleNot Null PayDate char(8)Not Null

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Matrix: Forms vs. Tables The Main form does not access any tables. The Properties form can create, read, update, and delete from the Property table. The Tenants form can create, read, update, and delete from the Tenant table. The Payments form can create, read, and delete from the Payment table. Tables  Forms  PropertyTenantPayment Main PropertiesCRUD TenantsCRUD PaymentsCRD

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes The publication script was created as PM_Pub for the Property, Tenant, and Payment tables. The synchronization user PM_User was created. The synchronization subscription was created for PN_User to the PM_Pub publication. The connection protocol is TCP/IP and the address is the local host address. Publication Script, etc. CREATE PUBLICATION PM_Pub { TABLE Property, TABLE Tenant, TABLE Payment }; CREATE SYNCHRONIZATION USER PM_User; CREATE SYNCHRONIZATION SUBSCRIPTION TO PM_Pub FOR PM_User TYPE ‘tcpip’ ADDRESS ‘host-localhost’

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Synchronization Scripts Property Table Upload Scripts –Upload_cursor: SELECT PropNum, Address, City, State, Zip, Rent FROM Property –Upload_insert: INSERT INTO Property(PropNum, Address, City, State, Zip, Rent) VALUES(?, ?, ?, ?, ?,?) –Upload_delete: DELETE FROM Property WHERE PropNum = ? –Upload_update: UPDATE Property SET Rent = ? WHERE PropNum = ? The upload scripts for the Property table do the following during synchronization: For Property inserts, PropNum, Address, City, Stat, Zip, and Rent are uploaded to the server database. For Property deletes, the table entry associated with the primary key is deleted. For Property updates, the Rent associated with the primary key is updated.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Synchronization Scripts Property Table Download Scripts –Download_cursor: SELECT PropNum, Address, City, State, Zip, Rent FROM Property –Download_insert: INSERT INTO Property(PropNum, Address, City, State, Zip, Rent) VALUES(?, ?, ?, ?, ?,?) –Download_delete: DELETE FROM Property WHERE PropNum = ? –Download_update: UPDATE Property SET Rent = ? WHERE PropNum = ? The download scripts for the Property table do the following during synchronization: For Property inserts, PropNum, Address, City, Stat, Zip, and Rent are downloaded to the remote database. For Property deletes, the table entry associated with the primary key is deleted. For Property updates, the Rent associated with the primary key is updated.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Synchronization Scripts Tenant Table Upload Scripts –Upload_cursor: SELECT TenantNum, Name, Phone, PropNum FROM Tenant –Upload_insert: INSERT INTO Tenant(TenantNum, Name, Phone, PropNum) VALUES(?, ?, ?, ?) –Upload_delete: DELETE FROM Tenant WHERE TenantNum = ? –Upload_update: UPDATE Property SET Name = ?, Phone = ? WHERE TenantNum = ? The upload scripts for the Tenant table do the following during synchronization: For Tenant inserts, TenantNum, PropNum, Name, and Phone are uploaded to the server database. For Tenant deletes, the table entry associated with the primary key is deleted. For Tenant updates, the Name and Phone associated with the primary key is updated.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Synchronization Scripts Tenant Table Download Scripts –Download_cursor: SELECT TenantNum, Name, Phone, PropNum FROM Tenant –Download_insert: INSERT INTO Tenant(TenantNum, Name, Phone, PropNum) VALUES(?, ?, ?, ?) –Download_delete: DELETE FROM Tenant WHERE TenantNum = ? –Download_update: UPDATE Property SET Name = ?, Phone = ? WHERE TenantNum = ? The download scripts for the tenant table do the following during synchronization: For Tenant inserts, TenantNum, PropNum, Name, and Phone are downloaded to the remote database. For Tenant deletes, the table entry associated with the primary key is deleted. For Tenant updates, the Name and Phone associated with the primary key is updated.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Synchronization Scripts Payment Table Upload –Upload_cursor: SELECT PaymentNum, PayAmt, PayDate, TenantNum FROM Payment –Upload_insert: INSERT INTO Payment(PaymentNum, PayAmt, PayDate, TenantNum) VALUES(?, ?, ?, ?) –Upload_delete: DELETE FROM Payment WHERE PaymentNum = ? The upload scripts for the Payment table do the following during synchronization: For Payment inserts, PaymentNum, TenantNum, PayAmt, and PayDate are uploaded to the server database. For Payment deletes, the table entry associated with the primary key is deleted.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Synchronization Scripts Payment Table Download –Download_cursor: SELECT PaymentNum, PayAmt, PayDate, TenantNum FROM Payment –Download_insert: INSERT INTO Payment(PaymentNum, PayAmt, PayDate, TenantNum) VALUES(?, ?, ?, ?) –Download_delete: DELETE FROM Payment WHERE PaymentNum = ? The download scripts for the Payment table do the following during synchronization: For Payment inserts, PaymentNum, TenantNum, PayAmt, and PayDate are downloaded to the remote database. For Payment deletes, the table entry associated with the primary key is deleted.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Difficulties Encountered The majority of the difficulties that I encountered were because of my unfamiliarity with Visual Basic. Trying to format a double as currency, I added a component that is not supported by MobileVB. This led to MobileVB validation errors later because I had not removed the component even though I didn’t use it. I also had a complication error from reading a double in from a text box. Realizing that the string should be cast as a double, it took me a while to figure out the Visual Basic syntax for casting. I had one major difficulty that I spent a couple of days on. After my application was complete and working when run within Visual Basic, I deployed it to the Pocket PC. The application started on the Pocket PC, but quit when any of the buttons were clicked. By a process of elimination, commenting out sections of code and creating test applications, I was able to determine that the application failed when trying to connect to any of the tables in the remote database. I sought support from AppForge. They did not see anything wrong with the code and suggested that I put bebugging code into the application.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Difficulties Encountered Continued Meanwhile, I created more test applications and a new, totally different schema. These applications worked as expected on the Pocket PC. At that point, I recreated my original schema and tried it on the Pocket PC with the original application. The application did not work. I then created a new schema and tried it on the Pocket PC with the original application and it worked. Then I renamed the new schema to the name of the original schema and the application failed. That is when I realized that the name of the schema was causing the application to fail. I changed the name of the schema, originally PropMan.usm to pm.usm and the application worked as expected. On following up with Appforge, they could not explain the behavior, but thought that maybe PropMan was a reserved word for Mobilink. I am not certain that I agree with that explanation.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Screen Snapshot # 1 The Main form contains buttons for accessing the other forms. It also contains buttons for exiting the application and synchronizing the database. The Properties form is for viewing, inserting, updating, and deleting property information. There is also a button for returning to the Main form. The Tenants form is for viewing, inserting, updating, and deleting tenant information. There is also a button for returning to the Main form. The Payments form is for viewing, inserting, and deleting payment information. There is also a button for returning to the Main form.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Screen Snapshot # 2 Here are screen captures of Adaptive Server Anywhere and Mobilink running on the server. The bottom picture is Mobilink during synchronization.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Screen Snapshot # 3 Here are the different forms viewed on the PDA.

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Code - Main Form btnDone_Click() – Closes the tables and then the connection to the database and ends the application. btnPayments_Click() – Hides the Main form and shows the Payments form. btnProp_Click() – Hides the Main form and shows the Properties form. btnSync_Click() – Specifies the synchronization parameters and synchronizes the databases. btnTenants_Click() – Hides the Main form and shows the Tenants form. Form_Load() – Calls InitDB from the mdlPropMan module. Option Explicit Private Sub btnDone_Click() PropertyTable.Close TenantTable.Close PaymentTable.Close Connection.Close End End Sub Private Sub btnPayments_Click() MainForm.Hide PayForm.Show End Sub Private Sub btnProp_Click() MainForm.Hide PropForm.Show End Sub Private Sub btnSync_Click() With Connection.SyncParms.UserName = "PM_User".Stream = ULStreamType.ulTCPIP.Version = "PM_Pub".SendColumnNames = True End With Connection.Synchronize End Sub Private Sub btnTenants_Click() MainForm.Hide TenForm.Show End Sub Sub Form_Load() InitDB End Sub

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Code - mdlPropMan Module InitDB() – Sets the database connection parameters, uid, password, database name and schema name and connects to the database. If the database is not present, it creates it using the schema. It then opens the Payment, Tenant, and Property tables. GetError() – Gets the error number in case of connection error. Option Explicit Public DatabaseMgr As New ULDatabaseManager Public Connection As ULConnection Public PropertyTable As ULTable Public PaymentTable As ULTable Public TenantTable As ULTable Public Sub InitDB() Dim conn_parms As String Dim open_parms As String Dim schema_parms As String Let conn_parms = "uid=dba;pwd=sql" Let open_parms = conn_parms & ";" & "FILE_NAME=\msacs\8628\project\pm.udb" Let schema_parms = open_parms & ";" & "SCHEMA_FILE=\msacs\8628\project\pm.usm" On Error Resume Next Set Connection = DatabaseMgr.OpenConnection(open_parms) If GetError = ulSQLE_DATABASE_NOT_FOUND Then MsgBox "Database Not Found!" MsgBox "Parms = " & open_parms Err.Clear Set Connection = DatabaseMgr.CreateDatabase(schema_parms) If GetError <> ulSQLE_NOERROR Then MsgBox "Error creating database file: " & Err.Description MsgBox "Parms = " & schema_parms End End If Set PaymentTable = Connection.GetTable("Payment") PaymentTable.Open Set TenantTable = Connection.GetTable("Tenant") TenantTable.Open Set PropertyTable = Connection.GetTable("Property") PropertyTable.Open End Sub Public Function GetError() As ULSQLCode GetError = Err.Number End Function

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Code Property, Tenant, and Payment Forms The code for the Property, Tenant, and Payment forms are almost the same, except for working with different tables and different columns. btnInsert_Click() – inserts values input from the form into the appropriate columns of the table. Option Explicit Private Sub btnInsert_Click() Dim PropNum As String Dim Rent As Double Dim Address As String Dim city As String Dim State As String Dim Zip As String Let PropNum = txtPNum.Text Let Rent = CDbl(txtRent.Text) Let Address = txtAddr.Text Let city = txtCity.Text Let State = txtState.Text Let Zip = txtZip.Text On Error GoTo InsertError PropertyTable.InsertBegin PropertyTable.Column("PropNum").StringValue = _ PropNum PropertyTable.Column("Rent").DoubleValue = _ Rent PropertyTable.Column("Address").StringValue = _ Address PropertyTable.Column("City").StringValue = _ city PropertyTable.Column("State").StringValue = _ State PropertyTable.Column("Zip").StringValue = _ Zip PropertyTable.Insert PropertyTable.MoveLast DisplayCurrentRow Exit Sub InsertError: MsgBox "Error: " & CStr(Err.Description) End Sub

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Code - Continued Property, Tenant, and Payment Forms btnReturn_Click() – Hides the current form and shows the Main form. Form_Load() – Moves to the first row in the table or moves before the first row if there are zero rows. Form_Activiate() – Displays the current row. btnNext_Click() – Moves to the next row. btnPrevious_Click() – Moves to the previous row. BtnDelete_Click() – Deletes the current row. Private Sub btnReturn_Click() PropForm.Hide MainForm.Show End Sub Sub Form_Load() PropertyTable.MoveBeforeFirst If PropertyTable.RowCount > 0 Then PropertyTable.MoveFirst End If If Err.Number <> ULSQLCode.ulSQLE_NOERROR Then MsgBox Err.Description End If End Sub Private Sub Form_Activate() DisplayCurrentRow End Sub Private Sub btnNext_Click() If Not PropertyTable.MoveNext Then PropertyTable.MoveLast End If DisplayCurrentRow End Sub Private Sub btnPrevious_Click() If Not PropertyTable.MovePrevious Then PropertyTable.MoveFirst End If DisplayCurrentRow End Sub Private Sub btnDelete_Click() If PropertyTable.RowCount = 0 Then Exit Sub End If PropertyTable.Delete PropertyTable.MoveRelative 0 DisplayCurrentRow End Sub

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Code - Continued Property, Tenant, and Payment Forms btnUpdate_Click() - updates values input from the form in the appropriate columns of the table. –The Payment form does not have the ability to update. Private Sub btnUpdate_Click() Dim PropNum As String Dim Rent As Double Dim Address As String Dim city As String Dim State As String Dim Zip As String Let PropNum = txtPNum.Text Let Rent = CDbl(txtRent.Text) Let Address = txtAddr.Text Let city = txtCity.Text Let State = txtState.Text Let Zip = txtZip.Text On Error GoTo UpdateError PropertyTable.UpdateBegin PropertyTable.Column("PropNum").StringValue = _ PropNum PropertyTable.Column("Rent").DoubleValue = _ Rent PropertyTable.Column("Address").StringValue = _ Address PropertyTable.Column("City").StringValue = _ city PropertyTable.Column("State").StringValue = _ State PropertyTable.Column("Zip").StringValue = _ Zip PropertyTable.Update DisplayCurrentRow Exit Sub UpdateError: MsgBox "Error: " & CStr(Err.Description) End Sub

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Code - Continued Property, Tenant, and Payment Forms DisplayCurrentRow() – Displays columns from the database in the appropriate text boxes on the form. If there are no rows in the table, the text boxes are displayed as blank. Private Sub DisplayCurrentRow() If PropertyTable.RowCount = 0 Then txtPNum.Text = "" txtRent.Text = "" txtAddr.Text = "" txtCity.Text = "" txtState.Text = "" txtZip.Text = "" Else txtPNum.Text = _ PropertyTable.Column("PropNum").StringValue txtRent.Text = _ PropertyTable.Column("Rent").DoubleValue txtAddr.Text = _ PropertyTable.Column("Address").StringValue txtCity.Text = _ PropertyTable.Column("City").StringValue txtState.Text = _ PropertyTable.Column("State").StringValue txtZip.Text = _ PropertyTable.Column("Zip").StringValue End If End Sub

CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes Conclusion Mobilink is a flexible and fairly straight forward means of synchronizing databases between a remote PDA and a server. Although at times confusing, the tools integrated into Visual Basic by Appforge vastly simplify development for the Pocket PC. With these tools, and the ease of development, we are likely to see a great number of applications being developed for PDA’s and the number of PDA’s produced and sold should vastly rise. My experience with these programs has shown that the development time for mobile applications can be greatly reduced by the simplicity of use that they provide. I had no experience with VB or DBMS and was able to develop the PropMan application in a reasonable timeframe with limited instruction.