我正在使用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#代码中获取此消息。
答案 0 :(得分: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();
}
答案 1 :(得分:0)
尝试NpgsqlConnection.Notification事件,它是PostgreSQL与SqlConnection.InfoMessage的对应物。见这里:archive of http://npgsql.projects.pgfoundry.org/docs/api/Npgsql.NpgsqlConnection.Notification.html。