Recording a log in database

Proud::CDbLogWriter class helps recording a log in MSSQL DBMS.

As explained in Making a log, this function runs asynchronously.

In order to use this, you need to generate LogTable by executing LogTable.sql from Sample/DbmsSchema. How to build DBMS is guided in Creating a sample database.

The general usage is as followed..

// This function will handle error
class CTestLogWriterDelegate : public ILogWriterDelegate
{
virtual void OnLogWriterException(Proud::AdoException& Err) override
{
// ...
}
};
CTestLogWriterDelegate g_dblogDelegate;
void main()
{
// ...
// Fill in a value in CDbLogParameter.
dbparam.m_dbmsConnectionString = L"Data Source=localhost;Database=Log-Test;Trusted_Connection=yes";
dbparam.m_loggerName = L"LoggerName";
dbparam.m_dbLogTableName = L"DbLog";
// Generate CDbLogWriter.
CAutoPtr<Proud::CDbLogWriter> dbLogWriter;
dbLogWriter.Attach(Proud::CDbLogWriter::New(dbparam, &g_dblogDelegate));
// Let's add a new field that isn't supported by ProudNet.
// WARNING!! When adding a custom field, you must generate a field in Log-Test Table of DBMS.
// After making TestField in DBMS and setting int for datatype, generate CPropNode as shown in below and add it to WriteLine.
Proud::String TestField = L"TestField";
Proud::CVariant TestValue = 123;
newnode.Add(TestField, TestValue);
dbLogWriter->WriteLine(L"Contents of Log", &newnode);
// ...
}