Позвольте мне начать с того, что я веб-разработчик, наследующий приложение VB6/Crystal Reports, и я не очень хорошо знаю.Как найти причину ошибки «Здесь требуется строка»
Мой клиент использовал Access как свою базу данных, и я перенес их на SQL Server. Возвращение - это не вариант. После миграции у меня почти все приложение работает, но в Crystal Reports возникают проблемы.
Раньше я слышал об ошибке «Сервер еще не открыт». Чтобы исправить это, я преобразовал драйвер из ODBC в OLE DB. Теперь я получаю сообщение об ошибке «Строка требуется здесь». Вот и все ... нет трассировки стека, нет кнопки отладки. Поэтому я не знаю, как отследить проблему.
Все остальные подобные вопросы, которые я нашел, всегда имеют конкретную формулу, которая вызывает проблему, но вот где я застрял. Без трассировки стека или кнопки отладки или чего-либо, я не знаю, где искать ошибку.
Так что мой вопрос скорее относится к стратегии отладки, чем к конкретной проблеме с кодом. Где искать ошибку?
Если вам нужны образцы кода, я могу предоставить их, но вам нужно будет указать, как получить любые отвалы, которые вам нужно увидеть. Я использую редактор Microsoft Visual Basic 6.0. Я вижу сообщение об ошибке всякий раз, когда я нажимаю правой кнопкой мыши по полям базы данных и нажимаю . Проверяем базу данных (она сначала говорит: «База данных обновлена», а затем «Здесь требуется строка»). Я также вижу ошибку при попытке запустить фактический отчет в приложении.
Я пробовал пройти все поля Формулы и обернуть поля базы данных в CStr(...)
, но я все еще получаю сообщение об ошибке. Где еще я должен смотреть?
Речь идет не о преобразовании в строку ... есть ли у вас какие-либо условия в полях формул ... если да, вы можете опубликовать их, то попытаетесь решить – Siva
Если вы не можете предоставить проверку того, что оба и еще должны возвращать одинаковые datatype ... вы не можете вернуть строку в if и integer в else ... это один вариант отладки в соответствии с вашим вопросом, если это не работает, дайте мне знать, попробуем другой вариант отладки .... Как вы знаете кристалл очень плох в предоставлении правильных исключений – Siva
@Siva - В этом сценарии, я считаю, я, возможно, только что решил проблему. Я нашел поле даты, которое использовалось непосредственно в отчете, поэтому я сделал поле формулы, которое делает некоторое преобразование и дефолт, чтобы гарантировать, что это будет строка.Но я не хочу добавлять это в качестве ответа, потому что главный вопрос заключается в том, как ** найти ошибку, а не причину этой конкретной проблемы. Я ожидаю, что в ближайшем будущем вы столкнетесь со многими из этих ошибок. Есть ли где-нибудь еще, чтобы смотреть в сторону от полей Формулы? – Travesty3