У меня следующий код со строкой соединения для открытия соединения с SQL Сервер CE.
conStr.Format(_RT("Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=%s;Persist Security Info=False;OLE DB Services=-2;ssce:max database size=4091"), dbName);
hr = conn.OpenFromInitializationString((LPCOLESTR)conStr.GetBuffer(), false);
Где conn - CDataSource.
Выше прекрасно работает отлично. (назначен m_spInit)
Однако, когда я добавляю следующее
File Mode=Read Write;
Сделав приведенный выше код для
conStr.Format(_RT("Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=%s;Persist Security Info=False;File Mode=Read Write;OLE DB Services=-2;ssce:max database size=4091"), dbName);
hr = conn.OpenFromInitializationString((LPCOLESTR)conStr.GetBuffer(), false);
внутри m_spInit conn становится нулевым.
В соответствии с определением Microsoft SqlCeConnection.ConnectionString «Чтение-запись» должно быть по умолчанию, поэтому технически первая и вторая строки подключения должны подразумевать одно и то же.
Кто-нибудь может подумать, по какой причине это может происходить?
РЕДАКТИРОВАТЬ:
Когда я изменил File Mode=Read Write
на File Mode=Shared Read
, я снова получил m_spInit как ноль. Даже если я использую ssce:mode=
или mode=
, результат будет таким же. Я очень смущен.