powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ADO, Jet 4, SQLState 3218 или 3197, это нормальные числа?
7 сообщений из 7, страница 1 из 1
ADO, Jet 4, SQLState 3218 или 3197, это нормальные числа?
    #39002909
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче ADO (2.8), Jet 4.0 и база на аксесе с параллельным доступом процессов к ней.

При таймауте доступа к записи заблокированной другим процессом подключение выдает ошибку с SQLState 3218. Это при писсимистическом типе бллкировки.

При оптимистическом же типе блокировки конфликтный параллельный доступ выдает SQLState 3197.

Штука в том что я не разбираюсь в ODBC, но глядя во всякие документации я не нахожу таких номеров SQLSTATE (причем 4-х значные).

Вопрос следующий, на сколько можно доверять этим номерам что они нкстоящие (действиьельно имеют отношение к SQLSTATE) и, самое главное, останутся ли эти номера такими же при смене провайдера?

Я, например, собираюсь переводить программу на серверную БД, и боюсь что бы еще и не пришлось номера ошибок параллельного доступа менять.
Спасибо.
...
Рейтинг: 0 / 0
ADO, Jet 4, SQLState 3218 или 3197, это нормальные числа?
    #39002952
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginnerЯ, например, собираюсь переводить программу на серверную БД, и боюсь что бы еще и не пришлось номера ошибок параллельного доступа менять.
Спасибо.
этого не надо бояться - это произойдёт
коды сильно смахивают на коды ошибок jet
...
Рейтинг: 0 / 0
ADO, Jet 4, SQLState 3218 или 3197, это нормальные числа?
    #39002953
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginnerШтука в том что я не разбираюсь в ODBC, но глядя во всякие документации я не нахожу таких номеров SQLSTATE (причем 4-х значные).И не найдешь. Потому что это не ODBC ошибки. Все ODBC ошибки кодируются в виде пятизначного шестнадцатеричного числа. Две самых старших разряда это тяжесть ошибки (предупреждение, ошибка, катастрофа и тп) А три младших уже собственно номер ошибки.



nrmBeginnerВопрос следующий, на сколько можно доверять этим номерам что они нкстоящие (действиьельно имеют отношение к SQLSTATE) и, самое главное, останутся ли эти номера такими же при смене провайдера?Нет не останутся. Твои цифры это как раз собственные кода провайдера.


nrmBeginnerЯ, например, собираюсь переводить программу на серверную БД, и боюсь что бы еще и не пришлось номера ошибок параллельного доступа менять.Правильно боишься.
...
Рейтинг: 0 / 0
ADO, Jet 4, SQLState 3218 или 3197, это нормальные числа?
    #39002958
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чем же тогда смысл этих ADODB.Error.SQLState, в чем отличие их использования от использования родных кодов ADO и провайдера? Или это просто Jet меня обманул?
...
Рейтинг: 0 / 0
ADO, Jet 4, SQLState 3218 или 3197, это нормальные числа?
    #39002959
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginner,

чем быстрее забудете jet - тем лучше
...
Рейтинг: 0 / 0
ADO, Jet 4, SQLState 3218 или 3197, это нормальные числа?
    #39002962
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginnerВ чем же тогда смысл этих ADODB.Error.SQLState, в чем отличие их использования от использования родных кодов ADO и провайдера? Или это просто Jet меня обманул?В теории, ADODB.Error.SQLState это универсальные кода независящие от провайдера. В теории.... А на практике, читаем внимательно документацию:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681570(v=vs.85).aspx Use the SQLState property to read the five-character error code that the provider returns when an error occurs during the processing of an SQL statement. For example, when using the Microsoft OLE DB Provider for ODBC with a Microsoft SQL Server database, SQL state error codes originate from ODBC, based either on errors specific to ODBC or on errors that originate from Microsoft SQL Server, and are then mapped to ODBC errors. These error codes are documented in the ANSI SQL standard, but may be implemented differently by different data sources.То есть это напрямую кода провайдера. Если провайдер захочет - он смаппирует их в более-менее стандартные. А не захочет то и опаньки.

Вот если бы ты действительно использовал ODBC драйвера, то было бы замечательно, потому как там это действительно стандартизировано. И вот тогда уже можно было бы говорить о разнице между ADODB.Error.SQLState и ADODB.Error.NativeError - первое содержало бы стандартные ODBC кода, а второе собственные кода провайдера.
...
Рейтинг: 0 / 0
ADO, Jet 4, SQLState 3218 или 3197, это нормальные числа?
    #39003069
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, парни, буду теперь умнее.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / ADO, Jet 4, SQLState 3218 или 3197, это нормальные числа?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]