本文整理汇总了C#中DigitalPlatform.rms.Client.RmsChannel.DoRefreshDB方法的典型用法代码示例。如果您正苦于以下问题:C# RmsChannel.DoRefreshDB方法的具体用法?C# RmsChannel.DoRefreshDB怎么用?C# RmsChannel.DoRefreshDB使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DigitalPlatform.rms.Client.RmsChannel
的用法示例。
在下文中一共展示了RmsChannel.DoRefreshDB方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RefreshDatabase
//.........这里部分代码省略.........
string strOutputPath = "";
string strMetaData = "";
string strStyle = "content,data,metadata,timestamp,outputpath";
MemoryStream exist_stream = new MemoryStream();
try
{
long lRet = channel.GetRes(
strPath,
exist_stream,
null, // stop,
strStyle,
null, // byte [] input_timestamp,
out strMetaData,
out timestamp,
out strOutputPath,
out strError);
if (lRet == -1)
{
// 配置文件不存在,怎么返回错误码的?
if (channel.ErrorCode == ChannelErrorCode.NotFound)
{
timestamp = null;
goto DO_CREATE;
}
return -1;
}
exist_stream.Seek(0, SeekOrigin.Begin);
{
StreamReader sr = new StreamReader(exist_stream, Encoding.UTF8);
strExistContent = ConvertCrLf(sr.ReadToEnd());
}
}
finally
{
if (exist_stream != null)
exist_stream.Close();
}
// 比较本地的和服务器的有无区别,无区别就不要上载了
if (strExistContent == strNewContent)
{
continue;
}
DO_CREATE:
// 在服务器端创建对象
// parameters:
// strStyle 风格。当创建目录的时候,为"createdir",否则为空
// return:
// -1 错误
// 1 已经存在同名对象
// 0 正常返回
nRet = NewServerSideObject(
channel,
strPath,
"",
new_stream,
timestamp,
out strError);
if (nRet == -1)
return -1;
if (nRet == 1)
{
strError = "NewServerSideObject()发现已经存在同名对象: " + strError;
return -1;
}
if (strName.ToLower() == "keys")
bKeysChanged = true;
}
finally
{
new_stream.Close();
}
}
if (bKeysChanged == true)
{
// 对数据库及时调用刷新keys表的API
long lRet = channel.DoRefreshDB(
"begin",
strDatabaseName,
false,
out strError);
if (lRet == -1)
{
strError = "数据库 '" + strDatabaseName + "' 的定义已经被成功刷新,但在刷新内核Keys表操作时失败: " + strError;
return -1;
}
return 1;
}
return 0;
}
示例2: RefreshDB
void RefreshDB(bool bClearAllKeyTables)
{
if (this.SelectedNode == null)
{
MessageBox.Show(this, "尚未选择要刷新定义的数据库节点");
return;
}
if (this.SelectedNode.ImageIndex != RESTYPE_DB)
{
MessageBox.Show(this, "所选择的节点不是数据库类型。请选择要刷新定义的数据库节点。");
return;
}
ResPath respath = new ResPath(this.SelectedNode);
string strText = "确实要刷新位于服务器 '" + respath.Url + "' 上的数据库 '" + respath.Path + "' 的定义吗?\r\n\r\n注:刷新数据库定义,会为数据库增补在keys配置文件中新增的SQL表,不会损坏数据库中已有的数据。";
DialogResult msgResult = MessageBox.Show(this,
strText,
"刷新数据库定义",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2);
if (msgResult != DialogResult.OK)
{
MessageBox.Show(this, "刷新数据库定义的操作被放弃...");
return;
}
this.channel = Channels.GetChannel(respath.Url);
Debug.Assert(channel != null, "Channels.GetChannel() 异常");
string strError = "";
#if NO
DigitalPlatform.Stop stop = null;
if (stopManager != null)
{
stop = new DigitalPlatform.Stop();
stop.Register(this.stopManager, true); // 和容器关联
stop.OnStop += new StopEventHandler(this.DoStop);
stop.Initial("正在刷新数据库定义: " + respath.FullPath );
stop.BeginLoop();
}
#endif
DigitalPlatform.Stop stop = PrepareStop("正在刷新数据库定义: " + respath.FullPath);
long lRet = channel.DoRefreshDB(
"begin",
respath.Path,
bClearAllKeyTables,
out strError);
EndStop(stop);
#if NO
if (stopManager != null)
{
stop.EndLoop();
stop.OnStop -= new StopEventHandler(this.DoStop);
stop.Initial("");
stop.Unregister(); // 和容器脱离关联
}
#endif
this.channel = null;
if (lRet == -1)
{
MessageBox.Show(this, strError);
}
else
{
MessageBox.Show(this, "位于服务器'" + respath.Url + "'上的数据库 '" + respath.Path + "' 被成功刷新了定义。");
}
}
示例3: DoRebuildKeys
//.........这里部分代码省略.........
//
// 如果为多库重建
if (dbpaths.Length > 1)
{
// 如果为全选
if (this.radioButton_all.Checked == true
|| f > 0)
{
// 恢复为最大范围
this.textBox_startNo.Text = "1";
this.textBox_endNo.Text = "9999999999";
}
// 校验起止号
if (checkBox_verifyNumber.Checked == true)
{
nRet = VerifyRange(channel,
strDbName,
out strError);
if (nRet == -1)
MessageBox.Show(this, strError);
if (nRet == 0)
{
// 库中无记录
AutoCloseMessageBox.Show(this, "数据库 " + strDbName + " 中无记录。");
strInfo += "(无记录)";
/*
if (bClearKeysAtBegin == true)
{
// 结束Refresh数据库定义
lRet = channel.DoRefreshDB(
"end",
strDbName,
false, // 此参数此时无用
out strError);
if (lRet == -1)
goto ERROR1;
}
* */
continue;
}
}
else
{
if (this.textBox_startNo.Text == "")
{
strError = "尚未指定起始号";
goto ERROR1;
}
if (this.textBox_endNo.Text == "")
{
strError = "尚未指定结束号";
goto ERROR1;
}
}
}
Int64 nStart;
Int64 nEnd;
Int64 nCur;
示例4: ManageKeysIndex
int ManageKeysIndex(
string strDbUrl,
string strAction,
string strMessage,
out string strError)
{
strError = "";
ResPath respath = null;
if (strDbUrl == null)
{
if (this.SelectedNode == null)
{
strError = "尚未选择要要操作的数据库节点";
goto ERROR1;
}
if (this.SelectedNode.ImageIndex != RESTYPE_DB)
{
strError = "所选择的节点不是数据库类型。请选择要操作的数据库节点。";
goto ERROR1;
}
respath = new ResPath(this.SelectedNode);
}
else
respath = new ResPath(strDbUrl);
this.channel = Channels.GetChannel(respath.Url);
Debug.Assert(channel != null, "Channels.GetChannel() 异常");
#if NO
DigitalPlatform.Stop stop = null;
if (stopManager != null)
{
stop = new DigitalPlatform.Stop();
stop.Register(this.stopManager, true); // 和容器关联
stop.OnStop += new StopEventHandler(this.DoStop);
stop.Initial("正在导出数据 " + respath.FullPath);
stop.BeginLoop();
}
#endif
DigitalPlatform.Stop stop = PrepareStop(
strMessage == null ?
"正在对 " + respath.FullPath + " 进行管理操作 " + strAction + " ..."
: strMessage);
TimeSpan old_timeout = channel.Timeout;
if (strAction == "endfastappend")
{
// 收尾阶段可能要耗费很长的时间
channel.Timeout = new TimeSpan(3, 0, 0);
}
try
{
long lRet = channel.DoRefreshDB(
strAction,
respath.Path,
false,
out strError);
if (lRet == -1)
{
strError = "管理数据库 '" + respath.Path + "' 时出错: " + strError;
goto ERROR1;
}
}
finally
{
EndStop(stop);
#if NO
if (stopManager != null)
{
stop.EndLoop();
stop.OnStop -= new StopEventHandler(this.DoStop);
stop.Initial("");
stop.Unregister(); // 和容器脱离关联
}
#endif
if (strAction == "endfastappend")
{
channel.Timeout = old_timeout;
}
this.channel = null;
}
return 0;
ERROR1:
return -1;
}