Как я могу отличить ошибки базы данных ADO в VB6 - PullRequest
0 голосов
/ 15 декабря 2010

Я использую ADO для чтения и записи базы данных из приложения VB6. Естественно, доступ к базе данных может вернуть ошибки. В настоящее время я отображаю сообщение об ошибке по методу, заимствованному здесь http://www.devx.com/tips/Tip/13483, но я хотел бы, чтобы в моем коде действовать иначе, в зависимости от того, является ли ошибка нарушением ограничения индекса, нарушением ограничения столбца, триггер принудительно ошибка и пр.

Правильно ли я смотрю в .Number часть первой ошибки в коллекции? Или последний?

А кто-нибудь знает, где я могу найти список номеров ошибок, используемых здесь?

Ответы [ 3 ]

2 голосов
/ 15 декабря 2010

ErrorValueEnum указывает тип ошибки времени выполнения ADO со списком кодов ошибок ADO.

1 голос
/ 17 декабря 2010

Нет, номер Err.Number будет содержать только ошибку с точки зрения ADO. Внутренние ошибки базы данных зависят от базы данных. Например, в Oracle почти все ошибки, о которых вы заботитесь, соответствуют шаблону ORA-(\d{5}), и вы можете извлечь это значение из Err.Description, чтобы узнать точный код ошибки.

0 голосов
/ 17 декабря 2010

Более тщательное изучение возвращаемой структуры данных показывает, что у нее есть член .SQLState, который содержит то, что я ищу. Извиняюсь перед Дэном и systemptotoout за то, что не заметил этого раньше.

...