本文整理汇总了C++中DatabasePtr::getInfo方法的典型用法代码示例。如果您正苦于以下问题:C++ DatabasePtr::getInfo方法的具体用法?C++ DatabasePtr::getInfo怎么用?C++ DatabasePtr::getInfo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DatabasePtr
的用法示例。
在下文中一共展示了DatabasePtr::getInfo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleURI
bool DatabaseInfoHandler::handleURI(URI& uri)
{
bool isEditSweep, isEditForcedWrites, isEditReserve, isEditReadOnly,
isEditPageBuffers;
isEditSweep = (uri.action == "edit_db_sweep_interval");
isEditForcedWrites = (uri.action == "edit_db_forced_writes");
isEditReserve = (uri.action == "edit_db_reserve_space");
isEditReadOnly = (uri.action == "edit_db_read_only");
isEditPageBuffers = (uri.action == "edit_db_page_buffers");
if (!isEditSweep && !isEditForcedWrites && !isEditReserve
&& !isEditReadOnly && !isEditPageBuffers)
{
return false;
}
DatabasePtr d = extractMetadataItemPtrFromURI<Database>(uri);
wxWindow* w = getParentWindow(uri);
// when either the database or the window does not exist
// return immediately. Because this function returns whether
// the specified uri is handled, return true.
if (!d || !w || !d->isConnected())
return true;
IBPP::Database& db = d->getIBPPDatabase();
IBPP::Service svc = IBPP::ServiceFactory(
wx2std(d->getServer()->getConnectionString()),
db->Username(), db->UserPassword());
svc->Connect();
if (isEditSweep || isEditPageBuffers)
{
long oldValue = 0;
wxString title, label;
if (isEditSweep)
{
oldValue = d->getInfo().getSweep();
title = _("Enter the new Sweep Interval");
label = _("Sweep Interval");
}
else if (isEditPageBuffers)
{
oldValue = d->getInfo().getBuffers();
title = _("Enter the new value for Page Buffers");
label = _("Page Buffers");
}
while (true)
{
wxString s;
long value = oldValue;
s = ::wxGetTextFromUser(title, label,
wxString::Format("%d", value), w);
// return from the iteration when the entered string is empty, in
// case of cancelling the operation.
if (s.IsEmpty())
break;
if (!s.ToLong(&value))
continue;
// return from the iteration when the interval has not changed
if (value == oldValue)
break;
if (isEditSweep)
svc->SetSweepInterval(wx2std(d->getPath()), value);
else if (isEditPageBuffers)
svc->SetPageBuffers(wx2std(d->getPath()), value);
// Before reloading the info, re-attach to the database
// otherwise the sweep interval won't be changed for FB Classic
// Server.
db->Disconnect();
db->Connect();
d->loadInfo();
break;
}
}
else if (isEditForcedWrites || isEditReserve || isEditReadOnly)
{
bool fw = !d->getInfo().getForcedWrites();
bool reserve = !d->getInfo().getReserve();
bool ro = !d->getInfo().getReadOnly();
// setting these properties requires that the database is
// disconnected.
db->Disconnect();
if (isEditForcedWrites)
svc->SetSyncWrite(wx2std(d->getPath()), fw);
if (isEditReserve)
svc->SetReserveSpace(wx2std(d->getPath()), reserve);
if (isEditReadOnly)
svc->SetReadOnly(wx2std(d->getPath()), ro);
db->Connect();
//.........这里部分代码省略.........