Ошибка базы данных 10005 в приложении PowerBuilder

Я использую PowerBuilder 9.0+ Sql Server 2000, и компьютер подключен к локальной сети через беспроводную точку доступа. При изменении состояния сети (отключение беспроводной точки доступа или отключение сетевого подключения) в приложении ПБ возникает "Ошибка базы данных 10005". Затем я отключил автоматическое закрытие и автоматическое сжатие в свойствах используемой базы данных. Ошибка по-прежнему возникает, когда я отключаю сетевое соединение, но не при отключении AP. Как избежать этой ошибки в этом состоянии? Любое предложение будет оценено. Спасибо.


person Trista    schedule 18.12.2013    source источник
comment
Вы могли бы получить более качественный ответ, если бы предоставили SQLErrText объекта транзакции при возникновении ошибки. Иногда это проливает больше света на проблему, чем просто номер ошибки.   -  person Terry    schedule 18.12.2013
comment
Какое соединение вы отключаете? Сервер? Как вы его отключаете? Зачем нужно выключать точку доступа или отключаться от сети?   -  person Hugh Brackett    schedule 20.12.2013
comment
Нам также необходимо увидеть вашу строку подключения. Измените любую конфиденциальную информацию, такую ​​как пароль, на xxx.   -  person Hugh Brackett    schedule 20.12.2013


Ответы (1)


Поиск в Google этого кода ошибки предполагает, что соединение разорвано, когда генерируется это сообщение. Это могло быть:

  • ошибка в пб
  • ошибка в клиентском программном обеспечении SQL Server
  • ошибка в программном обеспечении сервера SQL Server
  • функция SQL Server (если подумать, ваш клиент теперь заходит с совершенно другого IP-адреса; позволяет другому IP-адресу «продолжать» использование существующего соединения с установленными учетными данными и разрешениями, звучит как угроза безопасности)

Вот некоторые комментарии с точки зрения ПБ. (Надеюсь, кто-то, лучше разбирающийся в SQL Server, тоже сможет присоединиться.)

Ошибка PB Поиск в Google выявил множество проблем до PB10, сообщающих об этом сообщении об ошибке; это может означать, что это была проблема с PB или с DBLib (PB10 и более поздние версии отказались от устаревшего интерфейса MSS/DBLib в пользу более новых стандартов). Версия PB, которую вы используете, довольно старая; вы можете бороться с ошибками, которые были исправлены много лет назад.

Обходные пути PB Если SQL Server (клиентское или серверное программное обеспечение) делает это с вами (преднамеренно или случайно), самое элегантное, что вы можете сделать, это сделать все вашу базу данных доступ более устойчивый, поиск ошибок, таких как 10005, повторное установление соединения и повторная попытка. Это сделало бы восстановление прозрачным, но, как я полагаю, потребовало бы много работы. (И если кто-то предусмотрительно инкапсулирует весь ваш доступ к базе данных таким образом, чтобы упростить это, он лучше меня.)

Более уродливым решением был бы пункт меню, который будет ОТКЛЮЧАТЬ и повторно ПОДКЛЮЧАТЬ к базе данных, а также давать пользователям инструкции по использованию этого при переключении сетевых сред.

Оба из них заставят вас задуматься о том, поддерживается ли что-то конкретное для сеанса базы данных (например, физические блокировки таблиц или строк, в отличие от логической блокировки, которую изначально использует DataWindow), поскольку все это будет потеряно, когда сеанс будет уничтожен.

Удачи,

Терри.

person Terry    schedule 18.12.2013