Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 277
от 03.02.2007, 10:35

Администратор:Gh0stik
В рассылке:Подписчиков: 285, Экспертов: 43
В номере:Вопросов: 1, Ответов: 2


Вопрос № 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


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.43 beta от 26.01.2007
Яндекс Rambler's Top100

В избранное