2013-07-19 4 views
5

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

Короче говоря, я ищу эквивалент этого в 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.

+0

Получите, что сообщение? Вы пытаетесь получить выход VACUUM VERBOSE? –

+0

Некоторые быстрые поиски не нашли способ получить сообщения журнала «NOTICE» и более низкого уровня в клиенте nPgSQL. Вы можете установить 'client_min_messages', но я не знаю, как получить доступ к журналам из nPgSQL. Взгляните на исходный код? –

+0

Есть ли у вас код NPGSQl? – prvnsaini

ответ

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

}