2016-06-29 3 views
0

У меня есть очень длинный запрос вставки с более чем 40 полями (из «унаследованной» базы данных Foxpro), обработанной с использованием OleDb, которая создает исключение «Несоответствие типов данных». Есть ли способ узнать, какое поле запроса создает это исключение?Как найти поле, которое создает исключение «несоответствие типа данных»?

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

ответ

2

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

Или, альтернативно, глядя на структуру (-ки) таблицы в DBF и убедитесь, что типы полей соответствуют типам OleDB, которые вы используете. Сведения о том, как типы .NET сопоставляются с типами полей таблицы Visual FoxPro, это here.

Если у вас есть доступ к среде Visual FoxPro, вы, вероятно, могли бы сделать это намного быстрее, выбив небольшую программу или даже просто выполнив ее в Окно команд.

0

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

В основном то, что вы могли бы сделать это: Получить структуру, Разбирает оператор вставки и получить значение, Сравнение типов данных.

Это должен быть короткий код для этой проверки.