qdb_data_source()

Extract the data source for a database

Synopsis:

#include <qdb/qdb.h>

int qdb_data_source( qdb_hdl_t *hdl, char *buffer, int buflen );

Arguments:

hdl
A pointer to the database handle.
buffer
A buffer to hold the resulting source path information. You can set this parameter to NULL to make the function return the required buffer size. The buffer memory is managed by the client application, not QDB.
buflen
The length of buffer; this argument is relevant only when that parameter is not NULL.

Library:

qdb

Description:

This function fills in a string to describe the data source used to initialize the database. This source may be one of several paths, or a list of the schema creation and data population files, depending on the state of the specified database when qdb is started and on how the database is initialized:

  • If the database is empty, the string will be empty.
  • If the database is created with a schema only, the string will be the path to the schema file used to create the database.
  • If the database is created with a schema and initialized with one or more data schemas, the string will be a colon-delimited list of schema:data_schema1[:data_schema2...]
  • If the database is created from an existing database that is neither corrupted nor a backup database, the string will be the path to that database (which will be the same as the Filename entry).
  • If the database is created from a backup database, the string will be the path to the restoring database from one of the BackupDir entries.

If you don't know the buffer size required to hold the data source string, call qdb_data_source() with buffer set to NULL and use the function's return value for the amount of memory to allocate for the buffer. Then, call the function again, passing in the address and length of the created buffer, to get the data source.

Returns:

>=0
Depending on the arguments, either the buffer size required for storing the data source or the length of the string stored in buffer (both size values include the null-terminator).
-1
An error occurred (errno is set).

Classification:

QNX Neutrino

Safety:
Interrupt handler No
Signal handler No
Thread Yes
Page updated: