6

我正在从 C# 可执行文件在 postgres 中启动真空过程。我希望将消息返回到我的可执行文件,但我无法从输出窗口取回消息。

简而言之,我正在使用 NPGSQL 在 postgres 中寻找类似的东西:

// Display messages this code is for SQL server to reteive data back from message tab

conn.InfoMessage += delegate(object sender, SqlInfoMessageEventArgs e) {
  stdmForm.txtLastSQLMessages.Text +`=` "\n" + e.Message;
};

我想使用 NPGSQL 在我的 C# 代码中获取此消息。

4

2 回答 2

2

我尝试了下面的代码。它将为您提供完整的执行日志。从这里我刚刚解析了我需要的日志。这不是最好的方法,但我找不到其他任何东西。

//log the Vacuum command information
NpgsqlEventLog.Level = LogLevel.Debug;
NpgsqlEventLog.LogName = VacuumLogFilePath + "rolling.log"; 
NpgsqlEventLog.EchoMessages = false;

try
{
    //Run the Vacuum Command
    NpgsqlCommand comm = new NpgsqlCommand("VACUUM VERBOSE ANALYZE", connection); 
    comm.ExecuteNonQuery();

}
于 2013-09-26T16:23:59.270 回答
0

尝试 NpgsqlConnection.Notification 事件,它是 PostgreSQL 与 SqlConnection.InfoMessage 对应的事件。请参阅此处: http: //npgsql.projects.pgfoundry.org/docs/api/Npgsql.NpgsqlConnection.Notification.html 的存档

于 2014-10-17T13:45:35.257 回答