Вопрос № 73065: Доюрый день! где у меня ошибка в запросе!!! заранее всем спасибо за ответы!!!...
Вопрос № 73.065
Доюрый день! где у меня ошибка в запросе!!! заранее всем спасибо за ответы!!!
Приложение:
Отправлен: 29.01.2007, 07:32
Вопрос задал: ERA (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, ERA!
Чтобы выявить ошибку, необходимо текст запроса разбить на значащие строки и рассматривать каждую по отдельности.
Смотрим:
'select * from kiris
where like '''+edit1.Text+'%''
and datareg like '''+edit2.Text+'%''
and nomenklatura like '''+edit3.Text+'%''
and sendtodoc like ''' +edit4.Text+'%''
order by vnomer';
Во второй строчке, после служебного слова where находим одинокую и безутешную like. :) Ее надо срочно соотнести к какому-нибудь текстовому полю.
Далее. Поскольку все строковые значения должны быть в кавычках и чтобы не разводить зоопарк из тысячи кавычек, нужно применить функцию QuotedStr():
'select * from kiris ' +
'where like ' + QuotedStr(edit1.Text+'%') +
'and datareg like ' + QuotedStr(edit2.Text+'%') +
'and nomenklatura like ' + QuotedStr(edit3.Text+'%') +
'and sendtodoc like ' + QuotedStr(edit4.Text+'%') +
'order by vnomer';
Согласитесь, так стало немного более понятно. :)
Кроме того не исключено, что в текстовых полях Edit могут присутствовать лишние пробелы с начала и в конце значений. Поэтому недурно было бы их удалять с помощью функции Trim().
Ответ отправил: sir henry (статус: Академик) Россия, Красноярск ---- Ответ отправлен: 29.01.2007, 07:56 Оценка за ответ: 5 Комментарий оценки: Спасибо за ответ!!!
Отвечает: Volhit
Здравствуйте, ERA!
Вот здесь не задано поле, по которому поиск идет:
'select * from kiris where ---> [ИМЯ_ПОЛЯ] <--- like '''+edit1.Text+'%'' and datareg like '''+edit2.Text
Ответ отправил: Volhit (статус: 3-ий класс)
Ответ отправлен: 29.01.2007, 15:24 Оценка за ответ: 5