Building Database-Powered Mobile Applications
|
|
|
- Sydney McLaughlin
- 10 years ago
- Views:
Transcription
1 132 Informatica Economică vol. 16, no. 1/2012 Building Database-Powered Mobile Applications Paul POCATILU Bucharest University of Economic Studies Almost all mobile applications use persistency for their data. A common way for complex mobile applications is to store data in local relational databases. Almost all major mobile platforms include a relational database engine. These databases engines expose specific API (Application Programming Interface) to be used by mobile applications developers for data definition and manipulation. This paper focus on database-based application models for several mobile platforms (Android, Symbian, Windows CE/Mobile and Windows Phone). For each selected platform the API and specific database operations are presented. Keywords: Mobile Application, Data Persistence, Embedded Database, SQL, Mobile Platform 1 Introduction The use of mobile databases is present in numerous mobile applications from different areas: productivity, m-learning, games etc. Almost all mobile platforms include a relational database engine. These database engines are embedded into platform and are used by built in applications also (contacts, calendar, messaging etc.). As it can be seen from Table 1, all major mobile operating systems include the API for database operations. The developers can access de databases using database engine native API or using wrapper libraries. Table 1. Example of database management engines embedded on mobile platforms Platform Mobile database API Android SQLite Java ios SQLite C/C++ Symbian SQLite C++ Windows CE/Windows Embedded Compact/ Windows Mobile Windows Phone EDB SQL Server CE/ Compact SQL Compact Server C/C++ C/C# C# One of the most common database engine found on mobile devices is SQLite. SQLite makes available to the majority of existing functions in the management of relational databases. Data types supported by SQLite are INTEGER, REAL, TEXT and BLOB. Unlike other management systems databases, SQLite does not generate errors when a value has a data type different from associated column data type. Instead, the value is converted based on affinity types. SQLite does not support certain types of association (join), referential restriction and nested transactions. EDB and SQL Server CE/Compact Edition/Compact are proprietary solutions developed by Microsoft available on mobile devices. Depending on implementation and version, there are APIs available for C/C++, C#, LINQ etc. An EDB database consists of volumes stored as files. Each volume contains one or more databases. Databases contain records; each record is characterized by a set of attributes (properties). SQL Server Compact is part of Microsoft's SQL Server family. The objective of this paper is to present several embedded database engine APIs used in mobile applications development. 2 Android Android uses SQLite database management system [1], [5]. For database operations are available classes SQLiteOpenHelper, SQLiteDatabase and Cursor. To create a new database it is used a class derived from SQLiteOpenHelper abstract
2 Informatica Economică vol. 16, no. 1/ class. There are two methods that need to be implemented: oncreate() and onupgrade(): void oncreate(sqlitedatabase bd) is called to create the database; the function body contains the code to create tables and other database objects (VIEW, TRIGGER etc.); void onupgrade(sqlitedatabase db, int olvers, int newvers) - is called when the database structure is modified (tables and other database objects). The SQLiteDatabase class implements database operations. An instance of SQLiteDatabase is obtained by calling getwritabledatabase() or getreadabledatabase() methods, available SQLiteOpenHelper class and all classes derived from it: SQLiteDatabase bd = accesbd.getreadabledatabase(); SQLiteDatabase class exposes methods that allow direct execution of SQL commands. execsql() is used for commands that don't return data (CREATE, INSERT etc.) and rawquery() is used for SQL commands that return data as a Cursor (SELECT). Databases created by an Android application are accessible only to that application. To access by other applications content providers are used. The following example is used to create a database with a single table: public class AccesBD extends SQLiteOpenHelper //table name public static String TABELA_INTILNIRI = "Intilniri"; //table creating script public static String CREARE_TABELA_INTILNIRI = "CREATE TABLE " + TABELA_INTILNIRI +" (id INTEGER PRIMARY KEY AUTOINCREMENT, data INTEGER, subiect TEXT, loc TEXT)"; //database name protected static String BAZA_DE_DATE = "pdm.db"; public AccesBD(Context context) super(context, BAZA_DE_DATE, null, public void oncreate(sqlitedatabase bd) //is called when database structure changes public void onupgrade(sqlitedatabase bd, int versant, int vernoua) bd.execsql("drop TABLE IF EXISTS " + TABELA_INTILNIRI); oncreate(bd); Also in the class SQLiteDatabase includes specialized methods for: adding records: insert(); deleting records: delete(); changing records: update(); data queries: query(). The next listing shows a part of BDIntilniri class that implements methods for data manipulation (insert, update, delete and query). The Intilniri class includes the fields: id, data, loc and subiect and corresponding getter and setters methods. class BDIntilniri AccesBD accesbd; protected static final String COL_ID = "id"; protected static final String COL_DATA = "data"; protected static final String COL_SUBIECT = "subiect";
3 134 Informatica Economică vol. 16, no. 1/2012 protected static final String COL_LOC = "loc"; BDIntilniri(Context context) accesbd = new AccesBD(context); // //inserts an appointment in the table long adaugainregistrare(intilnire intilnire) SQLiteDatabase bd = null; long rezinsert = 0; ContentValues valori = new ContentValues(); try bd = accesbd.getwritabledatabase(); valori.put(col_data, intilnire.getdata()); valori.put(col_subiect, intilnire.getsubiect()); valori.put(col_loc, intilnire.getloc()); rezinsert = bd.insert(accesbd.tabela_intilniri, null, valori); catch(sqlexception ex) ex.printstacktrace(); return rezinsert; //... The usage of BDIntilniri class is presented in the following example: AccesBD bda = new AccesBD(this); BDIntilniri bd = new BDIntilniri(this); //current date and time Calendar c = Calendar.getInstance(); //insert a new record bd.adaugainregistrare(new Intilnire(1, c.gettimeinmillis() , "Curs 1", "2204")); When using dedicated methods for database operations, if the WHERE clause is present, the corresponding parameter is initialized properly without its corresponding keyword. Instead of values it can be used question marks (?) that are replaced with corresponding String value from the following parameter (an array of strings). Data query results are found in an object that implements Cursor interface. Records are managed through its results. Interface exposes methods to browse records (move(), movetofirst(), movetolast(), movetonext(), movetoprevious(), movetoposition()) and to obtain the value of any field in the current record type methods gettype(), based on column index, depending on data type. The next example presents record selection and processing using the WHERE clause arguments. String [] paramwhere = new String[]"2204"; String cond = COL_LOC + "=?"; String orderby = COL_DATA + " ASC"; String [] paramwhere = new String[]"2204";
4 Informatica Economică vol. 16, no. 1/ String cond = COL_LOC + "=?"; String orderby = COL_DATA + " ASC"; //... Cursor rez = bd.query(accesbd.tabela_intilniri, null, cond, paramwhere, null, null, orderby); rez.movetofirst(); //... for (int i=0; i < ninreg; i++) //sau while(rez.isafterlast()!= false) intilniri[i] = new Intilnire(rez.getInt(0), rez.getlong(1), rez.getstring(2), rez.getstring(3)); rez.movetonext(); Typically, databases are saved to the associated application data directory (/data/data/package_name). 3 Symbian Symbian C++ API provides several classes to access SQLite database engine [1], [2]. The RSqlDatabase class is used for database management. The class allows execution of SQL statements that doesn't return values. SQL commands that return data or use parameters are managed by RSqlStatement class. In order to access these classes sqldb.h header file and sqldb.lib library are required. In order to create a new database Create() or CreateL() methods are used. The methods receive the parameters associated with the database file name and, optionally, specific security policy flags (TSecurityPolicy and RSqlSecurityPolicy) and configuration parameters. The flags determine database and its objects access mode and the access rights (read, write, etc.). Opening a database is done with the Open() or OpenL() method that receives as parameters the database name and optional configuration parameters. Execution of SQL that does not return results achieved with the method Exec() which receives as parameter a descriptor initialized with SQL command. RSqlDatabase class includes methods to copy (Copy()) and delete (Delete()) databases. Method Close() is called to release resources. The following example shows a Symbian C++ sequence that creates a database with a single table. _LIT(KBD, "c:\\pdm.db"); _LIT(KExecCreate, "CREATE TABLE Intilniri (id INTEGER PRIMARY KEY AUTOINCREMENT, data INTEGER, subiect TEXT, loc TEXT)"); RSqlDatabase bd; //database creation bd.createl(kbd); CleanupClosePushL(bd); //CREATE command execution bd.exec(kexeccreate); CleanupStack::PopAndDestroy(); bd.close(); SQL queries requests that return values or uses parameters are implemented using RSqlStatement class. Objects initialization is achieved by Prepare()/PrepareL() method calls. The methods receive as parameters an opened database handle and a descriptor initialized with a SQL command. An exception is thrown if the database is not initialized or the SQL command is invalid. The method Next() is called in order to receive the current record. The method returns KSqlAtRow value if the current
5 136 Informatica Economică vol. 16, no. 1/2012 record is valid. The method ColumnTYPE() is called with the column index in order to obtain the corresponding value. TYPE represents the column data type (Text, Int64, Binary, etc.). The following example shows a simple selection. _LIT(KBD, "c:\\pdm.db"); _LIT(KSelect, "SELECt * FROM Intilniri;"); RSqlDatabase bd; RSqlStatement sqlselect; //open database User::LeaveIfError(bd.Open(KBD)); CleanupClosePushL(bd); //command initialization User::LeaveIfError(sqlSelect.Prepare(bd, KSelect)); CleanupClosePushL(sqlSelect); TBuf<20> subiect; TBuf<20> loc; TInt64 ms; //query execution while(sqlselect.next() == KSqlAtRow) ms = sqlselect.columnint64(1); TTime data(ms); sqlselect.columntext(2, subiect); sqlselect.columntext(3, loc); //process current record CleanupStack::PopAndDestroy(2); bd.close(); If SQL commands use parameters, their names are included in the constant descriptor preceded by colon symbol (:). ParameterIndex() method is called to obtain the parameter associated index. The index is later used by methods of like BindTYPE() for initialization with the desired values (BindText(), BindInt64(), etc.). After the parameter initialization the SQL command is executed by calling Exec() methods. In order to reuse the RSqlStatement object (parameter initialization with other values) the method Reset() has to be called before. The following code sequence exemplifies record insertion using parameters. _LIT(KBD, "c:\\pdm.db"); _LIT(KInsert, "INSERT INTO Intilniri(data, subiect) values(:vdata, :vsubiect);"); RSqlDatabase bd; RSqlStatement sqlinsert; TInt64 data1; TInt64 data2 //... User::LeaveIfError(bd.Open(KBD)); CleanupClosePushL(bd); User::LeaveIfError(sqlInsert.Prepare(bd, KInsert)); CleanupClosePushL(sqlInsert); //obtain parameter index TInt p1 = sqlinsert.parameterindex(_l(":vdata")); TInt p2 = sqlinsert.parameterindex(_l(":vsubiect")); //parameter initialization for first record User::LeaveIfError(sqlInsert.BindInt64(p1, data1)); User::LeaveIfError(sqlInsert.BindText(p2, _L("Curs 1"))); // INSERT execution User::LeaveIfError(sqlInsert.Exec());
6 Informatica Economică vol. 16, no. 1/ //reset User::LeaveIfError(sqlInsert.Reset()); //parameter initialization for second record User::LeaveIfError(sqlInsert.BindInt64(p1, data2)); User::LeaveIfError(sqlInsert.BindText(p2, _L("Curs 2"))); //INSERT execution User::LeaveIfError(sqlInsert.Exec()); CleanupStack::PopAndDestroy(2); bd.close(); 4 Windows Mobile Windows CE includes a proprietary database system called EDB (Embedded Database) [1], [3]. The following steps are required in order to populate a database: create or open a volume and mount it using CeMountDBVolEx() function; the volumes are identified by CEGUID type. It is initialized when to volume is mounted. if database doesn't exists it is created by calling CeCreateDatabaseWithProps() function; if database exists it is opened by CeOpenDatabaseInSession() calling function; session identifier is obtained in advance by calling CeCreateSession() function; the records are written by calling CeWriteRecordProps() function, for data stream operation CeStreamWrite() is used; function CeStreamSaveChanges() is called to effectively write data; the handle are released calling CloseHandle() function. To read records from an existing database: open and mount an existing volume by calling CeMountDBVolEx(); open a session with CeCreateSession(); open the database by calling CeOpenDatabaseInSession(), using the existing session identifier; if necessary, find a specific record using CeSeekDatabaseEx() function; read records with CeReadRecordProps() function, if carried out operations on the data stream the CeStreamRead() function is used; release the handles using CloseHandle(). Operations can be performed and the transaction level. In this case it is necessary to call CeBeginTransaction() function at beginning and CeEndTransaction() to the end in order to save updates made. The functions CeFindFirstDatabaseEx() and CeFindNextDatabaseEx() are used to search a database in a volume. Database information are obtained by using CeOidGetInfoEx2() function. Attributes are stored with the records in the database. CEPROPVAL structure is used access properties from a database [1], [3]. The properties are identified by a code and an associated data type. These components are coded in proprid field. The val field is presented as a union of type CEVALUNION, and it store a property value for the current record. Property types are shown in Table 2. Table 2. EDB Data Types Type C/C++ Field type CEVT_I2 short ival CEVT_UI2 USHORT uival CEVT_I4 long lval CEVT_UI4 ULONG ulval CEVT_FILETIME FILETIME filetime CEVT_LPWSTR LPWSTR lpwstr CEVT_BLOB CEBLOB blob CEVT_BOOL BOOL boolval CEVT_R8 double dblval CEVT_STREAM - - CEVT_RECID CEGUID CEVT_AUTO_I4 long lval CEVT_AUTO_I8 double dblval The following listing shows how to display all records from all databases within a volume.
7 138 Informatica Economică vol. 16, no. 1/2012 CEGUID guid; CEVOLUMEOPTIONS cevo = 0; cevo.wversion = 1; CEOIDINFOEX oidinfo = 0; wchar_t buff[250]; HANDLE hses, hbd, hbds; BOOL rez; rez = CeMountDBVolEx(&guid, L"pim.vol", &cevo,open_existing); if (rez == FALSE) /*erorr*/ hbd = CeFindFirstDatabaseEx(&guid, 0); if (hbd!= INVALID_HANDLE_VALUE) oidinfo.wversion = CEOIDINFOEX_VERSION; oidinfo.wobjtype = OBJTYPE_DATABASE; //creare sesiune hses = CeCreateSession(&guid); if (hses == INVALID_HANDLE_VALUE) /* error */ CEOID oidbd = CeFindNextDatabaseEx(hBD, &guid); while (oidbd!= 0) //obtain database information rez = CeOidGetInfoEx2(&guid, oidbd, &oidinfo); if (rez!= TRUE) /* error */ //open database hbds = CeOpenDatabaseInSession(hSes, &guid, &oidbd, oidinfo.infdatabase.szdbasename, NULL, CEDB_AUTOINCREMENT, NULL); if (hbds == INVALID_HANDLE_VALUE) /* error */ PCEPROPVAL pinreg = NULL; PBYTE pbuffinreg = NULL;//memory is allocated by function WORD wprop;//number of properties DWORD dwlginreg;// record lengths //memory is allocatd by function CEOID ceoid = CeReadRecordPropsEx(hBDS, CEDB_ALLOWREALLOC, &wprop, NULL, &(LPBYTE)pBuffInreg, &dwlginreg, NULL); int k = 0; while(ceoid!= 0) pinreg = (PCEPROPVAL)pBuffInreg; //for each field for (int i = 0; i < wprop; i++) switch(loword(pinreg->propid)) case CEVT_LPWSTR: //process string values break; //integers case CEVT_I2: case CEVT_I4: case CEVT_UI2: case CEVT_UI4: case CEVT_AUTO_I4: case CEVT_BOOL: //process integer values break; case CEVT_R8: //process floating point values break; default: //other types break; OutputDebugString(buff); //next field pinreg++; LocalFree(pBuffInreg);
8 Informatica Economică vol. 16, no. 1/ //next record ceoid = CeReadRecordPropsEx(hBDS, CEDB_ALLOWREALLOC, &wprop, NULL, &(LPBYTE)pBuffInreg, &dwlginreg, NULL); k++; CloseHandle(hBDS); //next database oidbd = CeFindNextDatabaseEx(hBD, &guid); CloseHandle(hBD); CloseHandle(hSes); CeUnmountDBVol(&guid); Functions and structures for EDB database operations are defined in the file header windbase_edb.h and EDB symbol should be defined. SQL Server CE databases are accessible through ADO.NET using.net Compact Framework platform [1], [7]. It includes the System.Data.SqlServerCe namespace that exposes classes such as: SqlCeConnection, SqlCeCommand, SqlCeDataReader, SqlCeDataAdapter, SqlCeEngine, SqlCeResultSet, SqlCeUpdatableRecord. 5 Windows Phone Windows Phone includes support for SQL Server Compact database. Database access is done through LINQ (Language Integrated Query) [1], [4]. NET platform includes LINQ to SQL component for relational data management using objects. Therefore, projects must include a reference to System.Data.Linq library and the related namespace. In order to access database objects in Windows Phone applications is necessary to create classes associated with the relational model. The classes associated to database tables are decorated Table attribute. Associated column properties are marked with the attribute Column. If a property is the primary key, Column attribute constructor is receive IsPrimaryKey parameter initialized to true. If field values are generated automatically, the IsDbGenerated property is initialized to true. In order to index data in a table the attribute Index is used. For dynamic data linking and notifications related to data changes, the interfaces INotifyPropertyChanging (the event PropertyChanging fires before changing the value of property) and INotifyPropertyChanged (the PropertyChanged event is fired after changing occurs) are implemented. Database connection is managed using DataContext class. It is responsible for translating the object model in a database. In applications, the database associated class is derived from DataContext class. The database connection string is "Data Source=isostore:/database_name.sdf" and it is passed as a parameter to DataContext class constructor. In addition to filename, the connection string allows transmission of database-specific parameters like user, password etc. Database associated class include tables as objects of type Table<T>. The class Table<T> includes InsertOnSubmit() method to add new records. The method receives as parameter an object of associated table class type. Update operations are made by changing the associated properties values using a table object. Deleting a record is made by DeleteOnSubmit() method and deleting multiple records by using DeleteAllOnSubmit() method. The methods receive as parameter the object that will be deleted, respectively the collection of records that will be deleted (as a result of a query). Data query is made through LINQ. In order to save changes the method SubmitChanges() form existing DataContext class has to be called. Creating a new database is done by calling method CreateDatabase() the DataContext class. To delete an existing database deletedatabase() method is called.
9 140 Informatica Economică vol. 16, no. 1/2012 DatabaseExists() method returns true if a database exists. To change the database structure and object of DatabaseSchemaUpdater type need to be initialized by calling CreateDatabaseSchemaUpdater(). The class provides methods for adding tables and relationships and columns. The method Execute() is called to apply changes. The existing databases created using the development environment or through dedicated applications, can be included in the project as resources or as content. This is a database table associated class: [Table] public class Test : INotifyPropertyChanged, INotifyPropertyChanging //test description string descriere; //test date DateTime data; public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangingEventHandler PropertyChanging; [Column(IsPrimaryKey=true, IsDbGenerated=true)] public int Id get; set; [Column] public string Descriere get return descriere; set if(propertychanging!= null) PropertyChanging(this, new PropertyChangingEventArgs("Descriere")); descriere = value; if (PropertyChanged!= null) PropertyChanged(this, new PropertyChangedEventArgs("Descriere")); [Column] public DateTime Data get return data; set if(propertychanging!= null) PropertyChanging(this, new PropertyChangingEventArgs("Data")); data = value; if (PropertyChanged!= null) PropertyChanged(this, new PropertyChangedEventArgs("Data")); [Column] public int NumarIntrebari get; set; The associated database class is defined as follows: public class TestDataContext : DataContext
10 Informatica Economică vol. 16, no. 1/ public static string connstring = "Data Source=isostore:/Teste.sdf"; public TestDataContext(string connstring) : base(connstring) public Table<Test> Teste; This code sequence is used to create the database: using TestDataContext bd = new TestDataContext(TestDataContext.connString) //if the database not exists it will be created if (!bd.databaseexists()) bd.createdatabase(); This code sequence is used to add new records in the table: Test test = new Test Descriere = editdescriere.text, //if the current value is null, the current date is used Data = dp.value?? DateTime.Now, NumarIntrebari = Int32.Parse(editIntrebari.Text) ; using (var bd = new TestDataContext(TestDataContext.connString)) //insert records bd.teste.insertonsubmit(test); //commit the changes bd.submitchanges(); In order to update a record, the following code sequence is used: using (var bd = new TestDataContext(TestDataContext.connString)) //get the test with the given id var test = (from Test test in bd.teste where test.id == id select test).first(); //apply the changes //dp is a DatePicker test.data = dp.value?? DateTime.Now; //editdescriere is a TextBox test.descriere = editdescriere.text; // editintrebari is a TextBox test.numarintrebari = Int32.Parse(editIntrebari.Text); // commit the changes bd.submitchanges(); 6 Conclusion and future work Every mobile modern operating system and platform includes a database engine and makes APIs available to developers. The development complexity of databasepowered mobile applications varies from platform to platform. Future work includes database performance analysis on each presented platform. Another aspect that has to be analyzed is related to database security. References [1] P. Pocatilu, Programarea dispozitivelor
11 142 Informatica Economică vol. 16, no. 1/2012 mobile, ASE Publishing House, Bucharest, 2012 [2] I. Litovski, R. Maynard, Inside Symbian SQL: A Mobile Developer s Guide to SQLite, John Wiley & Sons, 2010 [3] D. Boling, Programming Microsoft Windows Embedded CE 6.0, Microsoft Press, 2008 [4] Rob Miles, Windows Phone Programming in C#, available online at: one%20blue%20book.pdf, [October 2011] [5] S. Hashimi, S. Komatineni, D. MacLean, Pro Android 3, Apress, 2011 [6] P. Yao, D. Durant,.NET Compact Framework Programming with C#, Prentice Hall PTR, 2004 [7] A. Wigley, D. Mothand, P. Foot, Microsoft Mobile Development Handbook, Microsoft Press, 2007 Paul POCATILU graduated the Faculty of Cybernetics, Statistics and Economic Informatics in He achieved the PhD in Economics in 2003 with thesis on Software Testing Cost Assessment Models. He has published as author and co-author over 45 articles in journals and over 40 articles on national and international conferences. He is author and co-author of 10 books, (Mobile Devices Programming and Software Testing Costs are two of them). He is associate professor in the Department of Economic Informatics of the Academy of Economic Studies, Bucharest. He teaches courses, seminars and laboratories on Mobile Devices Programming, Economic Informatics, Computer Programming and Project Management to graduate and postgraduate students. His current research areas are software testing, software quality, project management, and mobile application development.
getsharedpreferences() - Use this if you need multiple preferences files identified by name, which you specify with the first parameter.
Android Storage Stolen from: developer.android.com data-storage.html i Data Storage Options a) Shared Preferences b) Internal Storage c) External Storage d) SQLite Database e) Network Connection ii Shared
Creating and Using Databases for Android Applications
Creating and Using Databases for Android Applications Sunguk Lee * 1 Research Institute of Industrial Science and Technology Pohang, Korea [email protected] *Correspondent Author: Sunguk Lee* ([email protected])
ANDROID APPS DEVELOPMENT FOR MOBILE GAME
ANDROID APPS DEVELOPMENT FOR MOBILE GAME Lecture 7: Data Storage and Web Services Overview Android provides several options for you to save persistent application data. Storage Option Shared Preferences
Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
Improving SQL Server Performance
Informatica Economică vol. 14, no. 2/2010 55 Improving SQL Server Performance Nicolae MERCIOIU 1, Victor VLADUCU 2 1 Prosecutor's Office attached to the High Court of Cassation and Justice 2 Prosecutor's
آموزش DataGrid در WPF به همراه صفحه بندي و جستجوي انتخابی. کلیک کن www.papro-co.ir
آموزش DataGrid در WPF به همراه صفحه بندي و جستجوي انتخابی در پاپرو برنامه نویسی را شیرین یاد بگیرید کلیک کن www.papro-co.ir WPF DataGrid Custom Paging and Sorting This article shows how to implement custom
Programming Database lectures for mathema
Programming Database lectures for mathematics students April 25, 2015 Functions Functions are defined in Postgres with CREATE FUNCTION name(parameter type,...) RETURNS result-type AS $$ function-body $$
Java ME Clients for XML Web Services
66 Java ME Clients for XML Web Services Paul POCATILU Academy of Economic Studies, Bucharest Using Web services in developing applications has many advantages like the existence of standards, multiple
Using IRDB in a Dot Net Project
Note: In this document we will be using the term IRDB as a short alias for InMemory.Net. Using IRDB in a Dot Net Project ODBC Driver A 32-bit odbc driver is installed as part of the server installation.
Webapps Vulnerability Report
Tuesday, May 1, 2012 Webapps Vulnerability Report Introduction This report provides detailed information of every vulnerability that was found and successfully exploited by CORE Impact Professional during
MS ACCESS DATABASE DATA TYPES
MS ACCESS DATABASE DATA TYPES Data Type Use For Size Text Memo Number Text or combinations of text and numbers, such as addresses. Also numbers that do not require calculations, such as phone numbers,
C++ Wrapper Library for Firebird Embedded SQL
C++ Wrapper Library for Firebird Embedded SQL Written by: Eugene Wineblat, Software Developer of Network Security Team, ApriorIT Inc. www.apriorit.com 1. Introduction 2. Embedded Firebird 2.1. Limitations
Facebook Twitter YouTube Google Plus Website Email
PHP MySQL COURSE WITH OOP COURSE COVERS: PHP MySQL OBJECT ORIENTED PROGRAMMING WITH PHP SYLLABUS PHP 1. Writing PHP scripts- Writing PHP scripts, learn about PHP code structure, how to write and execute
Embedded SQL programming
Embedded SQL programming http://www-136.ibm.com/developerworks/db2 Table of contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Before
The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.
Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...
Getting Started with Telerik Data Access. Contents
Contents Overview... 3 Product Installation... 3 Building a Domain Model... 5 Database-First (Reverse) Mapping... 5 Creating the Project... 6 Creating Entities From the Database Schema... 7 Model-First
SQL Server. 2012 for developers. murach's TRAINING & REFERENCE. Bryan Syverson. Mike Murach & Associates, Inc. Joel Murach
TRAINING & REFERENCE murach's SQL Server 2012 for developers Bryan Syverson Joel Murach Mike Murach & Associates, Inc. 4340 N. Knoll Ave. Fresno, CA 93722 www.murach.com [email protected] Expanded
SQLITE C/C++ TUTORIAL
http://www.tutorialspoint.com/sqlite/sqlite_c_cpp.htm SQLITE C/C++ TUTORIAL Copyright tutorialspoint.com Installation Before we start using SQLite in our C/C++ programs, we need to make sure that we have
Package sjdbc. R topics documented: February 20, 2015
Package sjdbc February 20, 2015 Version 1.5.0-71 Title JDBC Driver Interface Author TIBCO Software Inc. Maintainer Stephen Kaluzny Provides a database-independent JDBC interface. License
Using SQL Server Management Studio
Using SQL Server Management Studio Microsoft SQL Server Management Studio 2005 is a graphical tool for database designer or programmer. With SQL Server Management Studio 2005 you can: Create databases
Specifications of Paradox for Windows
Specifications of Paradox for Windows Appendix A 1 Specifications of Paradox for Windows A IN THIS CHAPTER Borland Database Engine (BDE) 000 Paradox Standard Table Specifications 000 Paradox 5 Table Specifications
A Brief Introduction to MySQL
A Brief Introduction to MySQL by Derek Schuurman Introduction to Databases A database is a structured collection of logically related data. One common type of database is the relational database, a term
OBJECTSTUDIO. Database User's Guide P40-3203-03
OBJECTSTUDIO Database User's Guide P40-3203-03 Release information for this manual ObjectStudio Database User's Guide, P40-3203-03, is dated vember 1, 2003. This document supports Release 6.9 of ObjectStudio.
D61830GC30. MySQL for Developers. Summary. Introduction. Prerequisites. At Course completion After completing this course, students will be able to:
D61830GC30 for Developers Summary Duration Vendor Audience 5 Days Oracle Database Administrators, Developers, Web Administrators Level Technology Professional Oracle 5.6 Delivery Method Instructor-led
Intro to Embedded SQL Programming for ILE RPG Developers
Intro to Embedded SQL Programming for ILE RPG Developers Dan Cruikshank DB2 for i Center of Excellence 1 Agenda Reasons for using Embedded SQL Getting started with Embedded SQL Using Host Variables Using
Easy-Cassandra User Guide
Easy-Cassandra User Guide Document version: 005 1 Summary About Easy-Cassandra...5 Features...5 Java Objects Supported...5 About Versions...6 Version: 1.1.0...6 Version: 1.0.9...6 Version: 1.0.8...6 Version:
SQL and Programming Languages. SQL in Programming Languages. Applications. Approaches
SQL and Programming Languages SQL in Programming Languages Read chapter 5 of Atzeni et al. BD: Modelli e Linguaggi di Interrogazione and section 8.4 of Garcia-Molina The user does not want to execute SQL
Informatica Cloud Connector for SharePoint 2010/2013 User Guide
Informatica Cloud Connector for SharePoint 2010/2013 User Guide Contents 1. Introduction 3 2. SharePoint Plugin 4 3. Objects / Operation Matrix 4 4. Filter fields 4 5. SharePoint Configuration: 6 6. Data
Salesforce Mobile Push Notifications Implementation Guide
Salesforce.com: Summer 14 Salesforce Mobile Push Notifications Implementation Guide Last updated: May 6, 2014 Copyright 2000 2014 salesforce.com, inc. All rights reserved. Salesforce.com is a registered
ASP.NET Programming with C# and SQL Server
ASP.NET Programming with C# and SQL Server First Edition Chapter 8 Manipulating SQL Server Databases with ASP.NET Objectives In this chapter, you will: Connect to SQL Server from ASP.NET Learn how to handle
Database Programming with PL/SQL: Learning Objectives
Database Programming with PL/SQL: Learning Objectives This course covers PL/SQL, a procedural language extension to SQL. Through an innovative project-based approach, students learn procedural logic constructs
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with Azure Malte Lantin Technical Evanglist Microsoft Azure Agenda Mobile Services Features and Demos Advanced Features Scaling and Pricing 2 What is Mobile Services? Storage
Data Tool Platform SQL Development Tools
Data Tool Platform SQL Development Tools ekapner Contents Setting SQL Development Preferences...5 Execution Plan View Options Preferences...5 General Preferences...5 Label Decorations Preferences...6
Certified PHP/MySQL Web Developer Course
Course Duration : 3 Months (120 Hours) Day 1 Introduction to PHP 1.PHP web architecture 2.PHP wamp server installation 3.First PHP program 4.HTML with php 5.Comments and PHP manual usage Day 2 Variables,
Mimer SQL. Programmer s Manual. Version 8.2 Copyright 2000 Mimer Information Technology AB
Mimer SQL Version 8.2 Copyright 2000 Mimer Information Technology AB Second revised edition December, 2000 Copyright 2000 Mimer Information Technology AB. Published by Mimer Information Technology AB,
Implementation of a HomeMatic simulator using Android
Fakultät für Informatik der Technische Universität München Bachelor s Thesis in Informatics Implementation of a HomeMatic simulator using Android Johannes Neutze Fakultät für Informatik der Technische
Introduction to Windows Mobile Development. Daniel Moth Developer and Platform Group Microsoft UK http://www.danielmoth.com/blog
Introduction to Windows Mobile Development Daniel Moth Developer and Platform Group Microsoft UK http://www.danielmoth.com/blog Same skills, same tools.net Visual Studio AGENDA Same tools, same skills,
El Dorado Union High School District Educational Services
El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming II (#495) Rationale: A continuum of courses, including advanced classes in technology is needed.
J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX
Oracle Application Express 3 The Essentials and More Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Arie Geller Matthew Lyon J j enterpririse PUBLISHING BIRMINGHAM
A table is a collection of related data entries and it consists of columns and rows.
CST 250 MySQL Notes (Source: www.w3schools.com) MySQL is the most popular open-source database system. What is MySQL? MySQL is a database. The data in MySQL is stored in database objects called tables.
Relational Databases. Christopher Simpkins [email protected]
Relational Databases Christopher Simpkins [email protected] Relational Databases A relational database is a collection of data stored in one or more tables A relational database management system
Database Migration from MySQL to RDM Server
MIGRATION GUIDE Database Migration from MySQL to RDM Server A Birdstep Technology, Inc. Raima Embedded Database Division Migration Guide Published: May, 2009 Author: Daigoro F. Toyama Senior Software Engineer
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
CUSTOMISING CRUISECONTROL.NET
MICROSOFT CUSTOMISING CRUISECONTROL.NET Going Beyond the Box Craig Sutherland TABLE OF CONTENTS Introduction... 4 What is CruiseControl.NET?... 4 What Does This Document Cover?... 4 Versions... 5 About
v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com
v1.1.0 SimpleSQL SQLite manager for Unity3D echo17.com Table of Contents Table of Contents................................................................ ii 1. Overview 2. Workflow...................................................................
www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk
CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling
Integrating Web & DBMS
Integrating Web & DBMS Gianluca Ramunno < [email protected] > english version created by Marco D. Aime < [email protected] > Politecnico di Torino Dip. Automatica e Informatica Open Database Connectivity
TABLE OF CONTENTS...2 INTRODUCTION...3 APPLETS AND APPLICATIONS...3 JAVABEANS...4 EXCEPTION HANDLING...5 JAVA DATABASE CONNECTIVITY (JDBC)...
Advanced Features Trenton Computer Festival May 1 sstt & 2 n d,, 2004 Michael P.. Redlich Senior Research Technician ExxonMobil Research & Engineering [email protected] Table of Contents
INFORMATION BROCHURE Certificate Course in Web Design Using PHP/MySQL
INFORMATION BROCHURE OF Certificate Course in Web Design Using PHP/MySQL National Institute of Electronics & Information Technology (An Autonomous Scientific Society of Department of Information Technology,
Beginning C# 5.0. Databases. Vidya Vrat Agarwal. Second Edition
Beginning C# 5.0 Databases Second Edition Vidya Vrat Agarwal Contents J About the Author About the Technical Reviewer Acknowledgments Introduction xviii xix xx xxi Part I: Understanding Tools and Fundamentals
SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24. Data Federation Administration Tool Guide
SAP Business Objects Business Intelligence platform Document Version: 4.1 Support Package 7 2015-11-24 Data Federation Administration Tool Guide Content 1 What's new in the.... 5 2 Introduction to administration
14 Triggers / Embedded SQL
14 Triggers / Embedded SQL COMS20700 Databases Dr. Essam Ghadafi TRIGGERS A trigger is a procedure that is executed automatically whenever a specific event occurs. You can use triggers to enforce constraints
Raima Database Manager Version 14.0 In-memory Database Engine
+ Raima Database Manager Version 14.0 In-memory Database Engine By Jeffrey R. Parsons, Senior Engineer January 2016 Abstract Raima Database Manager (RDM) v14.0 contains an all new data storage engine optimized
sqlite driver manual
sqlite driver manual A libdbi driver using the SQLite embedded database engine Markus Hoenicka [email protected] sqlite driver manual: A libdbi driver using the SQLite embedded database engine
Writing Scripts with PHP s PEAR DB Module
Writing Scripts with PHP s PEAR DB Module Paul DuBois [email protected] Document revision: 1.02 Last update: 2005-12-30 As a web programming language, one of PHP s strengths traditionally has been to make
MAP524/DPS924 MOBILE APP DEVELOPMENT (ANDROID) MIDTERM TEST OCTOBER 2013 STUDENT NAME STUDENT NUMBER
MAP524/DPS924 MOBILE APP DEVELOPMENT (ANDROID) MIDTERM TEST OCTOBER 2013 STUDENT NAME STUDENT NUMBER Please answer all questions on the question sheet This is an open book/notes test. You are allowed to
XMailer Reference Guide
XMailer Reference Guide Version 7.00 Wizcon Systems SAS Information in this document is subject to change without notice. SyTech assumes no responsibility for any errors or omissions that may be in this
Setting Up ALERE with Client/Server Data
Setting Up ALERE with Client/Server Data TIW Technology, Inc. November 2014 ALERE is a registered trademark of TIW Technology, Inc. The following are registered trademarks or trademarks: FoxPro, SQL Server,
ODBC Client Driver Help. 2015 Kepware, Inc.
2015 Kepware, Inc. 2 Table of Contents Table of Contents 2 4 Overview 4 External Dependencies 4 Driver Setup 5 Data Source Settings 5 Data Source Setup 6 Data Source Access Methods 13 Fixed Table 14 Table
Syllabus for CS 134 Java Programming
- Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.
Explain the relationship between a class and an object. Which is general and which is specific?
A.1.1 What is the Java Virtual Machine? Is it hardware or software? How does its role differ from that of the Java compiler? The Java Virtual Machine (JVM) is software that simulates the execution of a
Developing a Three Tier Web Application Using ASP.NET and Open Source Object-Oriented Database DB4Objects
Developing a Three Tier Web Application Using ASP.NET and Open Source Object-Oriented Database DB4Objects Morris M. Liaw Ph. D. [email protected] Venkata Durbhakula [email protected] Mahesh Molakalapalli
Engagement Analytics API Reference Guide
Engagement Analytics API Reference Guide Rev: 2 April 2014 Sitecore 6.5 or later Engagement Analytics API Reference Guide A developer's reference guide to the Engagement Analytics API Table of Contents
agileworkflow Manual 1. agileworkflow 2. The repository 1 of 29 Contents Definition
agileworkflow Manual Contents 1. Intro 2. Repository 3. Diagrams 4. Agents 4.1. Dispatcher Service 4.2. Event Service 4.3. Execution Service 5. Variables 6. Instances 7. Events 7.1. External 7.2. File
Advanced Object Oriented Database access using PDO. Marcus Börger
Advanced Object Oriented Database access using PDO Marcus Börger ApacheCon EU 2005 Marcus Börger Advanced Object Oriented Database access using PDO 2 Intro PHP and Databases PHP 5 and PDO Marcus Börger
Object-Oriented Databases db4o: Part 2
Object-Oriented Databases db4o: Part 2 Configuration and Tuning Distribution and Replication Callbacks and Translators 1 Summary: db4o Part 1 Managing databases with an object container Retrieving objects
Knocker main application User manual
Knocker main application User manual Author: Jaroslav Tykal Application: Knocker.exe Document Main application Page 1/18 U Content: 1 START APPLICATION... 3 1.1 CONNECTION TO DATABASE... 3 1.2 MODULE DEFINITION...
relational database tables row column SQL
SQLite in Android 1 What is a database? relational database: A method of structuring data as tables associated to each other by shared attributes. a table row corresponds to a unit of data called a record;
"SQL Database Professional " module PRINTED MANUAL
"SQL Database Professional " module PRINTED MANUAL "SQL Database Professional " module All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or
Database Connectivity Toolkit for Big Data. User Manual
Database Connectivity Toolkit for Big Data User Manual Ovak Technologies 2015 Contents 1. Introduction... 3 1.1. Definitions and Acronyms... 3 1.2. Purpose... 3 1.3. Overview... 3 2. Open Database Connectivity
Using Microsoft SQL Server A Brief Help Sheet for CMPT 354
Using Microsoft SQL Server A Brief Help Sheet for CMPT 354 1. Getting Started To Logon to Windows NT: (1) Press Ctrl+Alt+Delete. (2) Input your user id (the same as your Campus Network user id) and password
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
Web Services API Developer Guide
Web Services API Developer Guide Contents 2 Contents Web Services API Developer Guide... 3 Quick Start...4 Examples of the Web Service API Implementation... 13 Exporting Warehouse Data... 14 Exporting
Package uptimerobot. October 22, 2015
Type Package Version 1.0.0 Title Access the UptimeRobot Ping API Package uptimerobot October 22, 2015 Provide a set of wrappers to call all the endpoints of UptimeRobot API which includes various kind
Firebird. Embedded SQL Guide for RM/Cobol
Firebird Embedded SQL Guide for RM/Cobol Embedded SQL Guide for RM/Cobol 3 Table of Contents 1. Program Structure...6 1.1. General...6 1.2. Reading this Guide...6 1.3. Definition of Terms...6 1.4. Declaring
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Course Objectives. Database Applications. External applications. Course Objectives Interfacing. Mixing two worlds. Two approaches
Course Objectives Database Applications Design Construction SQL/PSM Embedded SQL JDBC Applications Usage Course Objectives Interfacing When the course is through, you should Know how to connect to and
Access Queries (Office 2003)
Access Queries (Office 2003) Technical Support Services Office of Information Technology, West Virginia University OIT Help Desk 293-4444 x 1 oit.wvu.edu/support/training/classmat/db/ Instructor: Kathy
ITG Software Engineering
Basic Android Development Course ID: Page 1 Last Updated 12/15/2014 Basic Android Development ITG Software Engineering Course Overview: This 5 day course gives students the fundamental basics of Android
Apache Cassandra Query Language (CQL)
REFERENCE GUIDE - P.1 ALTER KEYSPACE ALTER TABLE ALTER TYPE ALTER USER ALTER ( KEYSPACE SCHEMA ) keyspace_name WITH REPLICATION = map ( WITH DURABLE_WRITES = ( true false )) AND ( DURABLE_WRITES = ( true
Maintaining Stored Procedures in Database Application
Maintaining Stored Procedures in Database Application Santosh Kakade 1, Rohan Thakare 2, Bhushan Sapare 3, Dr. B.B. Meshram 4 Computer Department VJTI, Mumbai 1,2,3. Head of Computer Department VJTI, Mumbai
A Comparison of Database Query Languages: SQL, SPARQL, CQL, DMX
ISSN: 2393-8528 Contents lists available at www.ijicse.in International Journal of Innovative Computer Science & Engineering Volume 3 Issue 2; March-April-2016; Page No. 09-13 A Comparison of Database
Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today.
& & 1 & 2 Lecture #7 2008 3 Terminology Structure & & Database server software referred to as Database Management Systems (DBMS) Database schemas describe database structure Data ordered in tables, rows
ETL as a Necessity for Business Architectures
Database Systems Journal vol. IV, no. 2/2013 3 ETL as a Necessity for Business Architectures Aurelian TITIRISCA University of Economic Studies, Bucharest, Romania [email protected] Today, the
Web Development using PHP (WD_PHP) Duration 1.5 months
Duration 1.5 months Our program is a practical knowledge oriented program aimed at learning the techniques of web development using PHP, HTML, CSS & JavaScript. It has some unique features which are as
COSC 6397 Big Data Analytics. 2 nd homework assignment Pig and Hive. Edgar Gabriel Spring 2015
COSC 6397 Big Data Analytics 2 nd homework assignment Pig and Hive Edgar Gabriel Spring 2015 2 nd Homework Rules Each student should deliver Source code (.java files) Documentation (.pdf,.doc,.tex or.txt
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
Oracle to MySQL Migration
to Migration Stored Procedures, Packages, Triggers, Scripts and Applications White Paper March 2009, Ispirer Systems Ltd. Copyright 1999-2012. Ispirer Systems Ltd. All Rights Reserved. 1 Introduction The
Chulalongkorn University International School of Engineering Department of Computer Engineering 2140105 Computer Programming Lab.
Chulalongkorn University Name International School of Engineering Student ID Department of Computer Engineering Station No. 2140105 Computer Programming Lab. Date Lab 2 Using Java API documents, command
Android Persistency: SQL Databases
17 Android Persistency: Victor Matos Cleveland State University Notes are based on: Android Developers http://developer.android.com/index.html 17. Android Using SQL databases in Android. Android (as well
Integrating VoltDB with Hadoop
The NewSQL database you ll never outgrow Integrating with Hadoop Hadoop is an open source framework for managing and manipulating massive volumes of data. is an database for handling high velocity data.
Salesforce Mobile Push Notifications Implementation Guide
Salesforce Mobile Push Notifications Implementation Guide Salesforce, Winter 16 @salesforcedocs Last updated: December 10, 2015 Copyright 2000 2015 salesforce.com, inc. All rights reserved. Salesforce
CHAPTER 23: USING ODBC
Chapter 23: Using ODBC CHAPTER 23: USING ODBC Training Objectives In this section, we introduce you to the Microsoft Business Solutions Navision NODBC driver. However, it is recommended that you read and
Chair of Software Engineering. Java and C# in depth. Carlo A. Furia, Bertrand Meyer. C#: Persistence
Chair of Software Engineering Carlo A. Furia, Bertrand Meyer C#: Persistence Outline C# Serialization Connecting to a RDBMS with ADO.NET LINQ (Language Integrated Queries) NoSQL Solutions for C# and Java
C++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
