Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495

Не получается сделать запрос с двумя параметрами

08.05.2013, 12:55. Показов 977. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. В общем такая проблема, имеется БД Access подключаюсь к ней через ADOconnection + ADOdataset. Делаю выборку данных по определённой дате, дата является параметром, который меняется в зависимости от значения в DateimePicker на форме. В общем, когда отфильтровываю по одной дате - всё хорошо, т.е. вот такой вот запрос выполняется как нужно:
C++
1
2
3
4
5
6
7
8
9
10
11
        DM->ADSPre_record->Open();
        DM->ADSPre_record->CommandText =
        "SELECT pre_record.*, customers.name, customers.phone, "
                "performers.performer,group_brend.name_group,car.model "
        "FROM pre_record,customers,performers,group_brend,car, "
        "pre_record LEFT JOIN customers ON (pre_record.id_client = customers.id_сlient), "
        "pre_record LEFT JOIN performers ON (pre_record.id_performer = performers.id_performer), "
        "pre_record LEFT JOIN group_brend ON (pre_record.id_brend = group_brend.id_group), "
        "pre_record LEFT JOIN car ON (pre_record.id_model = car.id_car) "
        "WHERE pre_record.date_record =:date1;";
        DM->ADSPre_record->Open();
Но когда мне нужно установить диапазон значений от одной даты до другой, то dataset меня посылает, мол я какую-то ерунду прописал в parametr - "Не правильно определён объект Parametr. Представлены несогласованные или не полные сведения".
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
            DM->ADSPre_record->Close();
            DM->ADSPre_record->CommandText =
            "SELECT pre_record.*, customers.name, customers.phone, "
                        "performers.performer,group_brend.name_group,car.model "
            "FROM pre_record,customers,performers,group_brend,car, "
            "pre_record LEFT JOIN customers ON (pre_record.id_client = customers.id_сlient), "
            "pre_record LEFT JOIN performers ON (pre_record.id_performer = performers.id_performer), "
            "pre_record LEFT JOIN group_brend ON (pre_record.id_brend = group_brend.id_group), "
            "pre_record LEFT JOIN car ON (pre_record.id_model = car.id_car) "
            "WHERE pre_record.date_record BETWEEN #:date1# AND #:date2#;";
            DM->ADSPre_record->Open();
У обоих параметров тип одинаковый WideString.
Объясните пожалуйста, в чём ошибка?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2013, 12:55
Ответы с готовыми решениями:

Послать POST запрос запрос с двумя и более параметрами?
Делаю так: string ProxyString = ""; string URI = @"http://www.easyprog.ru/test.php";; string...

Запрос LIKE с двумя параметрами
Здравствуйте для того чтобы найти данные по 2 столбцам использую такой запрос: SELECT ID, , Адресс FROM ...

запрос не полностью выполняется с двумя параметрами
Здравствуйте, если так пишу, то только картинку читает с базы, а остальное нет string sql = "select * from msg where...

4
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
08.05.2013, 15:06
skorik-1992, во-первых,
Цитата Сообщение от skorik-1992 Посмотреть сообщение
C++
1
...BETWEEN #:date1# AND #:date2#
-неверно, т.к. дополнительнорго форматирваония параметр не требует.
C++
1
...BETWEEN :date1 AND :date2

Во-вторых, где сами параметры?


В-третьих,
Цитата Сообщение от skorik-1992 Посмотреть сообщение
У обоих параметров тип одинаковый WideString
Почему WideString? Работаем же с датами.
1
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
08.05.2013, 17:11  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
Почему WideString? Работаем же с датами.
Ну....у меня так работало, с одной датой, я решил так и делать, просто когда передаю значение параметру перевожу дату в строку(DateToStr).


Цитата Сообщение от The_Immortal Посмотреть сообщение
Во-вторых, где сами параметры?
Здесь я немного не понял, а разве :date1 и :date2 не являются параметрами? У датасета в свойстве params я прописал именно их, я видимо не правильно понимаю значения слово параметры, не могли бы растолковать пожалуйста?

Цитата Сообщение от The_Immortal Посмотреть сообщение
BETWEEN :date1 AND :date2
Завтра на работе попробую, к сожалению сейчас нет возможности проверить.
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
09.05.2013, 04:27
У датасета в свойстве params я прописал именно их
Надеюсь без двоеточия?

Добавлено через 16 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
DM->ADSPre_record->Close();
            DM->ADSPre_record->CommandText =
            "SELECT pre_record.*, customers.name, customers.phone, "
            "performers.performer,group_brend.name_group,car.model "
            "FROM pre_record,customers,performers,group_brend,car, "
            "pre_record LEFT JOIN customers ON (pre_record.id_client = customers.id_сlient), "
            "pre_record LEFT JOIN performers ON (pre_record.id_performer = performers.id_performer), "
            "pre_record LEFT JOIN group_brend ON (pre_record.id_brend = group_brend.id_group), "
            "pre_record LEFT JOIN car ON (pre_record.id_model = car.id_car) "
            "WHERE pre_record.date_record BETWEEN :date1 AND :date2;";
            DM->ADSPre_record->Parameters->ParamByName("date1")->Value = //значение
            DM->ADSPre_record->Parameters->ParamByName("date2")->Value = //значение
            DM->ADSPre_record->Open();
А че ADODataSet, а не ADOQuery?
2
 Аватар для dalay_lama
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
09.05.2013, 06:36  [ТС]
Цитата Сообщение от _Dimon_ Посмотреть сообщение
Надеюсь без двоеточия?
Да, без двоеточия))

Цитата Сообщение от _Dimon_ Посмотреть сообщение
А че ADODataSet, а не ADOQuery?
Ну, часто на форуме встречал, что лучше пользоваться связкой AdoDataSet + AdoCommand, нежели AdoQuery, мол она глючная или что-то в этом роде. Ну в общем проект свой начал с датасетом делать и как то прижилось....)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2013, 06:36
Помогаю со студенческими работами здесь

Обобщенные делегаты с несколькими параметрами не получается сделать
Здравствуйте) Вопрос сугубо учебный, навряд ли пригодится когда-либо. Как создать обобщенный делегат без возвращаемого значения...

Не получается сделать запрос
Таблицы : САМОЛЕТ (номер самолета, тип, число мест, скорость полета). РЕЙС (номер самолета, номер маршрута, дата и время вылета, дата и...

Не получается сделать запрос обновлением
Здравствуйте. У меня есть некоторая нехватка знаний, потому обращаюсь к вам за помощью. БД по предметной области...

Не получается сделать GET запрос из-за кодировки
"?ogrn="+Inogrn+"&inn="+Ininn+"&name="+companyIn+"&month=&control=&set_filter=Y" В get запросе присутствуют русские символы(переменная...

Не получается сделать перекрестный запрос
Здравствуйте. Я создал небольшую базу по данной мне теме (Дошкольное образование), сделал пару простых запросов, оформил справки, но когда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru