PvModifyDatabase()
Modify an existing database using the specified information for the new database name, dictionary and data paths and the database flag.
Header File: catalog.h (See also
Header Files
)
Function First Available In Library: w3dbav75.dll (Windows), libpsqldti.so (Linux), libpsqldti.dylib (OS X) (See also
Link Libraries
)
Syntax
BTI_API PvModifyDatabase(
BTI_LONG
hConnection,
BTI_CHAR_PTR
dbNameExisting,
BTI_CHAR_PTR
dbNameNew,
BTI_CHAR_PTR
dictPath,
BTI_CHAR_PTR
dataPath,
BTI_ULONG
dbFlags
);
Arguments
In
hConnection
Connection handle that identifies the server. Connection handles are obtained with the
PvConnectServer()
function.
In
dbNameExisting
Name of the existing database
In
dbNameNew
Name of the new database. Set this parameter to NULL if you want the database name to remain unchanged.
In
dictPath
Dictionary path.
In
dataPath
Data path. Set this value to NULL to use the default data path (that is, the same as the dictionary path)
If you want to modify a database to include MicroKernel Engine data files located in multiple paths, specify this parameter as a semicolon (;) delimited list. For example:
C:\data\path1;C:\data\path2
In
dbFlags
Database flags, which can be a combination of the P_DBFLAG_ constants.
P_DBFLAG_RI (enforce integrity constraints, including referential integrity and triggers)
P_DBFLAG_BOUND (stamps the database name on the dictionary files so only that database can use them)
P_DBFLAG_DBSEC_AUTHENTICATION (use database security authentication, Mixed security policy. See
Btrieve Security Policy
.)
P_DBFLAG_DBSEC_AUTHORIZATION (use database security authorization, Database security policy. See
Btrieve Security Policy
.)
P_DBFLAG_LONGMETADATA (use V2 metadata. See
Metadata Version
.)
Return Values
P_OK
The operation was successful.
P_E_INVALID_HANDLE
Invalid connection handle.
P_E_NULL_PTR
Call with NULL pointer
P_E_ACCESS_RIGHT
Insufficient access right for the operation
P_E_NOT_EXIST
Named database does not exist on the server.
P_E_FAIL
Failed for other reasons.
Remarks
The following precondition must be met:
•
DTI session started by calling
PvStart()
.
•
Connection established by
PvConnectServer()
,
or if you are performing the operation on a local machine, P_LOCAL_DB_CONNECTION may be used as the connection handle.
Btrieve Security Policy
The following table indicates how to specify a security model in a new database, or to interpret the security model of an existing database. Using any other combination of flags for security will result in status code 7024.
This Flag Combination
Represents this Security Model
No flags
Classic
P_DBFLAG_DBSEC_AUTHENTICATION
Mixed
P_DBFLAG_DBSEC_AUTHENTICATION P_DBFLAG_DBSEC_AUTHORIZATION
Database
See Also
PvStart()
PvConnectServer()
PvCreateDatabase()
PvGetDbNamesData()
PvGetDbName()
PvGetDbFlags()
PvGetDbDataPath()
PvGetDbDictionaryPath()
PvGetDbServerName()
PvFreeDbNamesData()
PvDisconnect()
PvStop()