При выполнении некоторых живых запросов, возвращающих единственную запись, BDE ругаетсяDelphi , Базы данных , Ошибки БДПри выполнении некоторых живых запросов, возвращающих единственную запись, BDE ругаетсяАвтор: Nomadic При выполнении некоторых живых запросов, возвращающих единственную запись, BDE ругается 'multiple records found, but only one was expected'. Запросы вида SELECT c, b, a, q FROM T WHERE b = :b,где ключ c, но BDE посчитала ключом a. Интересный запрос, да? Такое впечатление, что, поскольку ключом в исходной таблице являлась третья колонка, то Дельфы посчитали ключом третью колонку. Перестановкой SELECT a, b, c, q... все исправилось. Я решил теперь использовать в таких (live) запросах только SELECT *. Классическое поведение BDE! Проблема заключается в том, что порядок столбцов в клаузе Когда вы используете Изменение порядка столбцов на Использование Чтобы избежать этой проблемы вообще, вам всегда нужно явно указывать необходимые столбцы в вашем запросе, даже если вы не уверены, какой столбец будет считаться первичным ключом. Это обеспечивает, что ваши запросы более устойчивы и менее склонны к ошибкам. Если вам нужно выполнить запрос с одиночной записью, 考虑 использовать Помните, что всегда полезно тестировать свои запросы тщательно и понимать, как они обрабатываются underlying database engine. Happy coding! В ходе выполнения некоторых запросов, возвращающих единственную запись, BDE ругается ошибкой 'multiple records found, but only one was expected' из-за неправильного определения ключевого поля. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |