SQLiteDatabase for beginners quiz answers
These are the answers for the Quizzes in the SQLiteDatabase for Beginners Lesson. Correct answers are marked in bold.
Quiz answers
Quiz 1: Available SQLite classes
Use this Quiz to check what you have learned. Some questions may have more than one right answer.
Question 1.1: SQLiteDatabase is available for all the supported platforms.
Yes.
No.
Question 1.2: What are the platforms supported by SQLiteDatabase?
Desktop, Web
Web, Console, Mobile (iOS & Android).
Desktop, Web, Mobile (iOS & Android)
Desktop, Console, Web
Desktop, Web, Mobile (iOS & Android), Console
Question 1.3: SQLite can be used only in single user mode.
No.
Yes.
Question 1.4: SQLite works in 32-bit mode even when the app is deployed as 64-bit.
True.
False.
Quiz 2: In-memory SQLite databases
Use this Quiz to check what you have learned. Some questions may have more than one right answer.
Question 2.1: A Xojo app only can use one in-memory database at once.
Yes.
No.
Question 2.2: Sort the following lines of code to create an in-memory database
dbsource = New SQLiteDatabase
If Not dbsource.Connect Then
MessageBox("Error Creating the Database")
Exit
End If
Question 2.3: We only can create in-memory databases that are going to use less than 2 GB of RAM
True.
False.
Question 2.4: Once a table has been created, we can…
Delete columns.
Modify some of the current columns.
Add new columns to the table.
Question 2.5: Once we create a SQLite database instance and assign it to a variable we can start using it.
Yes.
No.
Yes, always the variable or property is in scope during database use.
Question 2.6: We still can use a in-memory database the next time we run the app.
Yes, always it has valid data
No, the database is deleted once we exit the app.
Question 2.7: Once we create an SQLiteDatabase we just need to use the Connect method to start using it.
Yes.
No.
Yes, always the Connect method has returned True as result.
Quiz 3: tables
Use this Quiz to check what you have learned. Some questions may have more than one right answer.
Question 3.1: SQLite sets a maximum number of tables for a database.
No.
Yes.
Question 3.2: In order to create a table in Xojo we will use the SQLSelect method from the SQLiteDatabase or iOSSQLiteDatabase classes.
True.
False.
Question 3.3: After creating a Table using SQLExecute we will get the result of the operation as a Boolean value.
True.
False.
Question 3.4: Once a Table has been created, it is possible to modify the name of any of the defined columns
True.
False.
Question 3.5: Once a Table has been created, it is possible to deleted any of its columns.
True.
False.
Quiz 4: DatabaseRecord
Use this Quiz to check what you have learned. Notice that the questions may have more than one right answer.
Question 4.1: The name of the Class to add new records to the database is…
SQLiteRecord.
DatabaseField.
Record.
DatabaseRecord.
Question 4.2: We have to observe the correct use of lowercase and uppercase letters in the name when referring the database columns.
Yes.
No, it doesn't matter when using SQLite.
Question 4.3: The method name of the SQLiteDatabase and iOSSQLiteDatabase classes to add new records is…
AddRecord.
InsertField.
AddDatabaseRecord.
InsertRecord.
Question 4.4: We can add new records using a SQL statement executed with SQLSelect on the database instance.
True.
False.
Question 4.5: Sort the lines to add a record using the DatabaseRecord Class.
Var nr As New DatabaseRecord
nr.Column("nombre") = "Nombre " + n.ToString
dbsource.InsertRecord("prueba", nr)
Quiz 5: retrieving records
Use this Quiz to check what you have learned. Some questions may have more than one right answer.
Question 5.1: The name of the class we use to navigate and access the records from a database query is…
DatabaseRecord.
DataGroup.
Records.
RecordList.
RecordSet.
Question 5.2: We can iterate the records from a RecordSet as many times as we need.
Yes.
No.
Yes, always move the cursor pointer to the first record in first place.
Question 5.3: Once we get a RecordSet we can access to it from any point of our app.
Yes.
No.
It depends if the variable or property that references the RowSet is in scope.
Question 5.4: We just need to test the RecordSet for Nil in order to start using it
True.
Not always.
We also need to make sure that AfterLastRow is False, for example.
Question 5.5: RecordSet offers methods to Delete, Edit and Insert records among other operations.
Yes.
No.
Only Delete and Edit, among other actions.
Question 5.6: What are the method names we have to use to navigate the RecordSet?
MoveFirst, MoveNext, MovePrevious, MoveLast.
JumpFirst, Next, Rewind, JumpLast.
MoveFirst, Next, Previous, MoveLast.
MoveNext, MovePrevious
Question 5.7: The method we use to know the number of records in a RecordSet is…
RecordCount.
Records.
NumberOfRecords.
TotalRecords
Question 5.8: A RecordSet is closed when…
We call the Close method on the instance.
The instance gets out of Scope.
The App quits.
A RecordSet never closes, it's always available.
We get an Error.
Quiz 6: editing records
Use this Quiz to check what you have learned. Some questions may have more than one right answer
Question 6.1: What method should we use to access a column value from a record?
Value.
Record.
DataField.
Field.
Question 6.2: Can we directly access a column value using the Field method?
Yes, sure.
No, we have to query the database using SQLSelect.
No, we have to use a DataRecord instance.
No, we do it using a DatabaseField instance.
Question 6.3: What RecordSet method should we call before we can modify a record data?
Prepare.
Rollback.
DataEdit.
Edit.
Question 6.4: What's the main advantage of using SQLExecute instead of RecordSet when updating a record?
None, in fact it is preferable and easier to use RecordSet.
SQLExecute provides greater flexibility.
SQLExecute provides greater flexibility and returns a new RecordSet with the data already updated.
Quiz 7: file-based SQLite databases
Use this Quiz to check what you have learned. Some questions may have more than one right answer.
Question 7.1: Sort the lines of code to create a file based SQLite database
DBSourceDisk = New SQLiteDatabase.
Var file As FolderItem = SpecialFolder.Documents.Child("tet.sqlite")
If file <> Nil Then
DBSourceDisk.DatabaseFile = file.
Try
DBSourceDisk.CreateDatabase
Catch error As IOException
MessageBox("Error Creating the Database".)
End Ty
Else
MessageBox("Error Found while Creating the File")
End If
Question 7.2: What's the effect when calling the 'CreateDatabase' on a file that already has SQLite data on it?
It will delete the current contents, initializing again the file in order to be used by the SQLite database instance.
The app will raise an Exception.
The app will create a copy of the file, initializing it so it can be used by the SQLite database instance.
It will act as if the method 'Connect' was called.
Question 7.3: SQLite creates the database file encrypted by default.
True.
False.
It's true, but using a 128 bits length.
Question 7.4: What SQL statement we will use to delete all the records from a Table?
DELETE FROM table_name.
DELETE * FROM table_name.
DELETE all FROM table_name.
DELETE FROM table_name WHERE id = *.
DROP TABLE table_name.
Question 7.5: Can we change the file used by a SQLite database instance on the fly?
Yes.
No.
Quiz 8: backup
Use this Quiz to check what you have learned. Notice that the questions may have more than one right answer.
Question 8.1: We only can backup in-memory databases
Yes.
No.
Question 8.2: The backup is done over…
A valid FolderItem instance that is in scope during all the process.
Another in-memory or file based database.
Another file based and initialized SQLite database.
Question 8.3: What modes can we use to backup a SQLite database?
Synchronous and Asynchronous modes.
Synchronous, Direct and Muliuser modes.
Synchronous and Asynchronous modes.
Question 8.4: What measure of time should we use to set the period in a Synchronous backup?
Seconds.
Microseconds.
Milliseconds.
We have to pass -1 as the value for the parameter.
Question 8.5: Once the backup has finished, the SQLite database instance will use the file of the target database.
True.
False.
Quiz 9: asynchronous backup
Use this Quiz to check what you have learned. Some questions may have more than one right answer.
Question 9.1: Why is it preferable to use asynchronous backups instead of synchronous?
The app is not blocked.
It only works with big database files.
It provides more control, for example the ability to cancel the backup process.
We can receive information about the process progress and possible errors.
Question 9.2: What is the name of the Class Interface that we have to implement in the class used as backup handle?
SQLiteBackupInterface.
SQLiteBackupProgress.
SQLiteBackupInformation.
Question 9.3: Do we have to implement (add code) in all the methods added by the SQLiteBackupInterface?
Yes.
No.
Question 9.4: The object used as backup handle, has to be in scope during all the process?
Yes.
No.
Only if we had implement code on any of the Class Interface methods.
Question 9.5: It's mandatory to pass the time period parameter to the Backup method?
No.
Yes.
Quiz 10: ciphering SQLite databases
Use this Quiz to check what you have learned. Some questions may have more than one right answer.
Question 10.1: Xojo uses by default a ciphering length of 256 bits?
Yes.
No.
Question 10.2: What prefix string should we use in the password to enable the 256 bits ciphering length?
aes256:
256:
maxSecure:
Question 10.3: What method should we use in order to encrypt an already existing SQLite database file?
Encrypt.
EncryptionKey.
CipherDB.
Encrypt("").
Question 10.4: How can we decrypt an already ciphered database once we are connected to it?
Encrypt("").
Decrypt.
Wipe.
EncryptionKey = "".