Откройте шалфей 300 AccPac DBLink Подключение к сеансу
Я пытаюсь написать код C# вокруг открытия Sage 300 Connection с помощью C#. Я использую библиотеку Acccpac.Advantage.
Вот мой код
try
{
sage300Session.Init(sessionHandle, appID, programName, appVersion);
sage300Session.Open(_user, _ppswd, _companyID, DateTime.Today, 0);
// Open a database link.
sage300DbLink = sage300Session.OpenDBLink(DBLinkType.Company, DBLinkFlags.ReadWrite);
}
Проблема, с которой я сталкиваюсь, заключается в том, что независимо от того, что я ввел в пароль, вызов.Open, похоже, будет успешным. Если я введу недопустимый идентификатор пользователя или компании, я получу ошибки, как и ожидалось. (статус connestion, кажется, говорит открытый в любом случае).
Мой вопрос - что происходит с паролем, который, кажется, не используется, и 2 - когда я закончу с тем, что я делаю, есть ли способ правильно закрыть соединение?
DLL-файл Accpac.Advantage v 2.0.50727, и я подключаюсь к среде Sage 300 2014.
2 ответа
На самом деле, и Session, и DBLink реализуют IDisposable, и для завершения сеанса будет достаточно вызова.Dispose (или ключевое слово using). (Я бы хотел добавить это как комментарий, но не смог).
Как оказалось, параметр безопасности не был включен в системной базе данных, чтобы требовать пароли для входа в систему. Параметр, который "решил" проблему и позволил использовать пароль. Я никогда не находил способ отключиться от сеанса, поэтому я позволил ему отключиться после завершения обработки, когда соединение выходит из области видимости.