Получение сообщений от postgres

я инициирую вакуумный процесс в postgres из исполняемого файла C#. Я хочу, чтобы сообщение было возвращено обратно в мой исполняемый файл, но я не могу получить сообщение из окна вывода.

короче говоря, я ищу эквивалент этого в postgres, используя NPGSQL, как:

// 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;
};

Я хочу получить это сообщение в моем коде C# с помощью NPGSQL.

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();

}

попробуйте NpgsqlConnection.Событие уведомления, которое является аналогом PostgreSQL для SqlConnection.InfoMessage. Смотрите здесь: архив http://npgsql.projects.pgfoundry.org/docs/api/Npgsql.NpgsqlConnection.Notification.html.