Есть ли способ узнать, какой TField вызывает EDBClient с сообщением «Требуется значение поля»? - PullRequest
3 голосов
/ 17 июня 2009

У меня есть один TClientDataSet с несколькими полями, и я получаю это исключение, я уверен, что я забыл установить одно значение поля, но вопрос в том, какое поле?

Есть ли способ быстро выяснить, какое поле вызывает это исключение?

EDIT

Я решил проблему, я подключал TClientDataSet к неверному провайдеру, у которого было обязательное поле на сервере, но не было этого поля на клиенте.

Но это все еще не лишает законной силы мой вопрос, я потерял много времени, чтобы выяснить это, и если бы у меня был какой-то способ узнать, какое поле на стороне сервера вызывало эту ошибку, было бы очень быстро понять, что было моя ошибка.

РЕДАКТИРОВАТЬ 2

Соответствующие КК:

# 5557 - Решено как "как задумано".

# 54380 - Открыть

1 Ответ

4 голосов
/ 17 июня 2009

Когда отладчик уведомляет вас об исключении, посмотрите на стек вызовов. Перейдите к процедуре, которая выполняет итерацию по списку полей, и осмотрите переменную loop-control в этой точке, чтобы выяснить, как далеко через список полей прошла ваша программа, прежде чем вызвать исключение.

Если переменная управления циклом не точна, установите точку останова в этой подпрограмме и перезапустите программу. Шагайте до тех пор, пока снова не получите исключение.

Другой вариант - посмотреть на все поля и убедиться, в каком из них отсутствует значение.

...