Базы данных для новичков

Тема в разделе "Delphi - Базы данных", создана пользователем _DeMiUrG_, 21 окт 2007.

  1. _DeMiUrG_

    _DeMiUrG_ Гость

    Здравствуйте столкнулся с такой проблемой

    пишу запрос на выборку из базы данных Access

    'SELECT Name,Company,Number FROM orders where ''Дата''<'+chr(39)+edEndDate.text+chr(39)+
    ' and ''Дата''>'+chr(39)+edBegDate.text+chr(39);

    поле данных Дата в базе DataTime и почему то
    даты за период не выбираются.


    Может подсказать красивый вариант получения выборки
    на основе сравнения дат?
     
  2. Silver Wind

    Silver Wind Гость

    Что поле в базе так и называется по-русски Дата? Не все базы корректно с такими именами полей работать будут, а тут вобще какая-то смесь - судя по началу select`а поля дожны быть английскими.

    Ну а по сути логические связки and, or и.т.п. имеют более высокий приоритет, чем операции сравнения. Обрамляй условия скобками, примерно так:
    Код (Text):
    'SELECT Name,Company,Number FROM orders where (''Дата''<'''+edEndDate.text+''') and (''Дата''>'''+edBegDate.text+''')';
    Далее я бы еще проверил в каком формате edXXXDate.text возвращает дату. Тоже заморочки могут быть, если движок базы не разберется в таком строковом представлении даты.
     
  3. _DeMiUrG_

    _DeMiUrG_ Гость

    edXXXDate.text формат __.__.___ это TMaskEdit
    поля названы по русски просто я обозвал их тут для упрощения.

    если я ищу конкретную дату и ставлю "=" запрос работает корректно
    а вот с ">" и "<" не работает как правильно вообще
    сделать поля в таблице БД и оформить запрос с получением данных из TMaskEdit?
     
  4. AnEi

    AnEi Гость

    попробуй оператор between:

    Between «Выражение» And «Выражение»
     
  5. _DeMiUrG_

    _DeMiUrG_ Гость

    пробовал все варианты кроме Parameters
    неполучается
     
  6. _DeMiUrG_

    _DeMiUrG_ Гость

    в вобщем получилось когда оформил так
    [cod]...where Дата<#месяц/день/год# [/cod]
     
Загрузка...

Поделиться этой страницей