Symbian3/PDK/Source/GUID-27A393D5-C7DF-5541-855A-2CB0E4C46D6D.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Fri, 22 Jan 2010 18:26:19 +0000
changeset 1 25a17d01db0c
child 3 46218c8b8afa
permissions -rw-r--r--
Addition of the PDK content and example code for Documentation_content according to Feature bug 1607 and bug 1608

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-27A393D5-C7DF-5541-855A-2CB0E4C46D6D"><title>The DBMS server</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>A session with the DBMS server provides the basis for sharing databases with other threads; the DBMS server allows shared read/write access to databases by multiple clients.</p> <p>A session with the DBMS server is set up through an instance of the <codeph>RDbs</codeph> class. The behaviour of this class is similar to other session classes, for example, the file server session class, <codeph>RFs</codeph>.</p> <p>A client opens a connection with the DBMS server using the <codeph>Connect()</codeph> member function of <codeph>RDbs</codeph> and closes the connection by calling <codeph>Close()</codeph> on <codeph>RDbs</codeph>.</p> <p>Some useful points to note:</p> <ul><li id="GUID-2CBE14E2-B9B9-59C0-B4A2-ED0A4C4DCFF7"><p>a thread can open any number of simultaneous connections to the DBMS server</p> </li> <li id="GUID-B9F8CA69-3594-5692-9B39-19800D8E8AB8"><p>a session can be used to open any number of databases.</p> </li> <li id="GUID-29CF3CF7-0786-5454-B79D-BD4B451701F1"><p>the same database can be opened many times within a single session; each such database object behaves independently with regard to transactions. </p> </li> <li id="GUID-9436A9F0-D007-5ED6-8E96-713F44EEF4A4"><p>a database cannot be opened for client-side read access and client-server write access at the same time; if write access is required by one client, then all clients must use the DBMS server.</p> </li> <li id="GUID-D52B72B2-699C-561A-B290-9FD1AEA0790F"><p>a session must be kept open until all DBMS objects opened through it have been closed.</p> </li> </ul> <p>Shared databases support all DBMS API functionality except database creation and changing the security key:</p> <ul><li id="GUID-EAD7BB8E-5E08-50B7-A158-2125D32E1539"><p>databases should only be shared once they have a fully constructed schema, otherwise clients may attempt to access a half-created database.</p> </li> <li id="GUID-B65A6BA3-55EA-555D-9FBF-F13D8B916694"><p>using the <codeph>ChangeSecurity()</codeph> member function of <codeph>RDbDatabase</codeph> to change the security key for a secure database makes no sense if the database is currently shared.</p> </li> </ul> <p>The client server interface offers utility functions which allow the client to check the number of allocated DBMS objects.</p> <p>The interface also offers heap debugging support for the server's heap.</p> </conbody></concept>