2013-10-15 1 views
3

через различные API я приезжаю к тому же коду с теми же параметрамиОшибка: - Интерфейс ITransactionLocal не поддерживается поставщиком Microsoft.ACE.OLEDB.12.0. Есть ли какие-либо предварительные условия?

public void Foo(string nprPath, int maxConnections = 3) 
{ 
    var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + nprPath; 

    using (var connectionPool = new ConnectionPool(maxConnections, connectionString)) 
    { 
     .... 
    } 
} 

Я вхожу в mefhod с точными парами. Один API преуспевает и другой бросает следующий

{"The ITransactionLocal interface is not supported by the 'Microsoft.ACE.OLEDB.12.0' 
provider.Local transactions are unavailable with the current provider."} 

Есть ли предпосылки для использования ACE.OLEDB.12

ответ

4

Вы можете попробовать добавить ";OLE DB Services=-4" в строке подключения.

Что-то вроде этого:

var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;OLE DB Services=-4;Data Source=" + nprPath; 

Также проверьте этот связанный forum.

EDIT: -

Когда «OLE DB Services = -4, а это означает, что: -

All except pooling and automatic transaction enlistment

Проверьте связанные MSDN

+1

Отлично решаемые спас меня часов.. Я полагаю, у вас есть идея, почему это было иначе? – Jeb

+0

@rails: - Обновлен мой ответ. Надеюсь, что это поможет! :) –

Смежные вопросы