Contents
function sqlite_test_access_mode
clear all
close all
clc
dummy = mksqlite('version mex');
fprintf( '\n\n' );
db_name = 'sql_test_access2.db';
if exist( db_name, 'file' )
delete( db_name );
end
mksqlite Version 2.5 build: 133, ein MATLAB Interface zu SQLite
(c) 2008-2017 by Martin Kortmann <mail@kortmann.de>
Andreas Martin <andimartin@users.sourceforge.net>
basierend auf SQLite Version 3.16.2 - http://www.sqlite.org
mksqlite verwendet:
- DEELX perl kompatible regex engine Version 1.3 (Sswater@gmail.com)
- BLOSC/LZ4 1.3.0-rc3.dev zur Datenkompression (Francesc Alted / Yann Collett)
- MD5 Message-Digest Algorithm (RFC 1321) Implementierung von Alexander Peslyak
Platform: PCWIN64, little endian
Without write access the following command will fail...
try
s = 'mksqlite( ''open'', db_name, ''RO'' );';
fprintf( [s,'\n'] );
eval( s );
error( 'Test failed!' )
catch
fprintf( 'Catch block: Unable to create database with read-only-access, test succeeded!\n' );
end
mksqlite( 'open', db_name, 'RO' );
Catch block: Unable to create database with read-only-access, test succeeded!
Create database with some records
mksqlite( 'open', db_name );
mksqlite( 'CREATE TABLE data (Col_1)' );
mksqlite( 'insert into data (Col_1) values( "A String")' );
mksqlite( 'close' );
fprintf( 'Database with one record (%s) has been created\n', db_name );
Database with one record (sql_test_access2.db) has been created
Now since the database is existing, we're able to open it with read-only access:
fprintf( 'Open database with read-only access:\n' );
s = 'mksqlite( ''open'', db_name, ''RO'' );';
fprintf( [s,'\n'] );
eval( s );
Open database with read-only access:
mksqlite( 'open', db_name, 'RO' );
Write access to the database should not be possible:
try
s = 'mksqlite( ''insert into data (Col_1) values( "A String")'' );';
fprintf( [s,'\n'] );
eval( s );
error( 'Test failed!' )
catch
fprintf( 'Catch block: Write access denied, test succeeded!\n' );
end
mksqlite( 'insert into data (Col_1) values( "A String")' );
Catch block: Write access denied, test succeeded!
Now open database in multithreading mode (without further tests
fprintf( 'Open database in multithreading modes...\n');
mksqlite( 0, 'close' );
mksqlite( 'open', db_name, 'RW', 'Multi' );
mksqlite( 0, 'close' );
mksqlite( 'open', db_name, 'RW', 'Serial' );
mksqlite( 0, 'close' );
fprintf( 'Tests successfully done.\n' );
Open database in multithreading modes...
Tests successfully done.