Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > > DELPHI Paradox 5.x Выборка за промижуток дат и в |
Автор: Ripperr 22.12.2008, 15:36 | ||||||
Надо произвести выборку за период дат дата1-дата2 с последующим введением ограничения датавремя1 -датавремя2. Парадокс связан через ADO MicroSoftJEt
неработает результат пусто значения праметра
я уже незнаю что с этим делать стою на одном месте уже голова болит с MSSQL, MySQL, Access некогда таких боков небыло. ![]() |
Автор: pseud 22.12.2008, 15:53 | ||||
такая штука в SQL Explorer отрабатывает нормально?
а лучше такая
|
Автор: Ripperr 22.12.2008, 16:41 | ||
Если оба запроса вставить на пряму в адокювери результат пусто
если так то говорит "несоотведствие типов в выражении условий отбора" если без каваычек результат пусто |
Автор: pseud 22.12.2008, 17:36 |
CallDate и CallBegin - это кто? |
Автор: Ripperr 22.12.2008, 17:57 |
Это поле дата и время отдельные |
Автор: pseud 22.12.2008, 19:34 | ||
а так?
|
Автор: Ripperr 22.12.2008, 20:11 | ||
это немного по логике другой вопрос но пишет что не совмесимость типов данных и выражений в условиях отбора... Тут походу особеность что это Paradox и ADO. .. надо поробовать через BDE хотя я ранше некогда им не пользовался... Драйвер подключения для адо соствален так :
|
Автор: Akella 22.12.2008, 20:14 | ||||||||||
когда народ начнёт различать Exec и Open? Добавлено через 7 минут и 45 секунд Ripperr, запомни, если твой запрос должен что-то тебе вернуть, показать, например, в гриде, или тебе нужна навигация по записям полученного набора данных, то
или
затем нужно закрывать
Если тебе нужно выполнить, например, хранимую процедуру, или вставить/обновить запись, то
в этом случае уже закрывать не нужно, т.к. закрывать нечего, ты послал запрос серверу БЕЗ получения данных. Добавлено через 12 минут и 8 секунд http://citforum.univ.kiev.ua/programming/application/glava2_2.shtml Добавлено через 13 минут и 38 секунд http://www.citforum.ru/programming/32less/les37.shtml
|
Автор: pseud 23.12.2008, 12:08 |
никогда не пользовал парадокс/АДО бде мой последний запрос съедает запросто |
Автор: Ripperr 23.12.2008, 15:05 | ||
Я копирую твой запрост просто а ADOQuery если так как оно у тебя написано говорит несоотведствие типов если возле дат и врмени убрать кавыки говорит что неопределены параметры если убрать даты то запрос выполняется без ощибки но результат пустота.... |
Автор: Ripperr 23.12.2008, 19:34 | ||||
Запрос сейчас который скармливается ADO выглядит так
код адо
|
Автор: Akella 23.12.2008, 20:07 |
![]() Ripperr, ты перед этим всем этим ИЗУЧИ хоть маломальски методы компонент, а ты ты так и будешь тыкаться по форумам как слепой котёнок. Что такое Close, что такое Active, что такое Open хотябы ![]() |
Автор: pseud 24.12.2008, 10:17 | ||||||
Ripperr, пояняю смех Акеллы:
это тоже самое, что и
и
т.е. ты, не успев открыть выборку, ее сразу закрываешь. так что ты хочешь увидеть, если выборка закрыта??? |
Автор: Ripperr 24.12.2008, 13:06 | ||||
В исправленом варианте тоже пустота... Неощибки не результата просто пустая таблица.......
Пишет Ощибка синтаксиса пропущен оператор в выражении запроса... где
|
Автор: Akella 24.12.2008, 19:22 | ||||||
Ripperr, подсказываю:
во вторых это: '01/01/2008';, а с чего ты взял, что так нужно передавать дату? я бы сделал так
а у сервера точно формат даты такой, как ты передаёшь? ну сам запрос попробовать переделать с использованием скобок
Добавлено через 56 секунд ну и откуда нам знать, что у тебя в query1? |
Автор: Ripperr 26.12.2008, 05:02 | ||||
такой вещи нет есть
оно показывает то что надо http://ipicture.ru/Gallery/Viewfull/10789680.html а вот что мы имеем http://ipicture.ru/Gallery/Viewfull/10789685.html так мы передаем параметры http://ipicture.ru/Gallery/Viewfull/10789694.html запрос загнали просто в компонент ADOquery В винде формат через точку а от единственый пока рабочий вариант выглядит так http://ipicture.ru/Gallery/Viewfull/10789788.html ток как сюда припоять диапазон времени если поле в котором хранится время CallBegin |
Автор: Akella 26.12.2008, 12:09 |
по идее там должны быть подставлены реальные значения вместо имён параметров Добавлено @ 12:12 у ADOQuery должно быть свойство CheckParams, помоему, нет дельфи под рукой, не могу проверить CheckParams должно быть установлено в True |
Автор: Ripperr 26.12.2008, 15:12 |
Но в рабочем варианте тоже показывает имя параметра но при этом все работает. |
Автор: Ripperr 29.12.2008, 03:57 |
Есть еще какието мысли на эту тему.... Или возможно как-то объеденить 3 запроса в 1 ? типо три запроса одна результирующая таблица ? |
Автор: Ripperr 7.1.2009, 18:17 |
тема все еще актуална получилось выберать инфу за период дата1-дата2 но некак не могу наложиить ограничения по времени... |
Автор: Akella 8.1.2009, 11:30 |
Не знаю, есть ли в парадоксе 5 CAST, а то можно было бы из полей firstDate и secodDate выделять на лету время. |
Автор: Ripperr 9.1.2009, 05:17 |
дайп правильный синтаксис я попробую |
Автор: Akella 9.1.2009, 10:54 | ||
неужели в гугле трудно набрать: select cast? Добавлено через 2 минуты и 17 секунд
Хотя я не уверен, что в парадоксе такое прокатит. Возможно прийдётся в дельфи, в наборах данных создавать калькулируемые поля, где будет храниться только время и с помощью их фильтровать данные |
Автор: Ripperr 9.1.2009, 16:40 |
Так стой в поле дата там ж токо дата откудо оно будет брать время время у меня отдельно поле `Calltime` |
Автор: Akella 9.1.2009, 19:52 | ||||||
Тогда никак, просто столку меня сбило несколько сообщений
|
Автор: Ripperr 9.1.2009, 23:13 | ||||||
Я попробую еще раз но походу оно у меня не работает просто пустота... И так в делфе непонятно что творится сново говорит что не может найти параметры попробовал запрос напрямую засунуть в DataBase Tour и так что мы имеем
Type missmach in expression
это работает но не то что мне надо оно выводит данные за 01/01/2008 до 12/22/2008 с ограничением с 00:00 до 12:00 на каждый день а мне надо ограничить токо граничне данные тоесть с 01/01/2008 00:00 по 12/22/2008 12:00 ток вопрос что надо поправить в синтаксисе
вот приблезительно что мне надо но он сильно нагружен текстом а я хотел запрос чтобы генирировался автоматически тут придется поморочится и что самое удевительное похоже что оно работает Пробовал INTERSECT И MINUS Paradox такого не знает =( мыла мысль сделать исколечение 2х периодов до и после и вывести оставшыйся тобиш искомый |
Автор: pseud 10.1.2009, 12:18 | ||
а так?
|
Автор: Ripperr 10.1.2009, 18:28 | ||
В делфе пустота
результат пустота В DataBase Tour type missmatch in expression Да и еще одно если мой запрос вставить в Delphi то оно говорит что внешняя таблица не имеет проедпологаемый формат что это значит. |
Автор: pseud 10.1.2009, 19:13 | ||||
в дельфи - это как? ну а такой запрос хоть отрабатывает?
Добавлено через 6 минут и 43 секунды ------ и вот еще попробуй:
|
Автор: Akella 10.1.2009, 22:13 | ||
ты ж сам меня упрекал, что не хранится в поле время ![]() Добавлено через 40 секунд сомневаюсь, что так правильно Добавлено через 1 минуту и 40 секунд Я уже запутался, что у тебя там в полях и какие типы ![]() Добавлено через 2 минуты и 48 секунд вот так видимо
|
Автор: Ripperr 11.1.2009, 03:31 | ||||
просто по датам работает а при наложении времни показывает чуш |
Автор: pseud 12.1.2009, 10:09 |
т.е. таки показывает? отбирает? может все таки CallDate + CallBegin - переосмыслить? |
Автор: Ripperr 12.1.2009, 12:35 |
чтото выбирает но несовсем коректо пишу с 1 по 3 в реальности отбражает с 2 по 3 |
Автор: pseud 12.1.2009, 13:13 | ||
ты про числа или про время? |
Автор: Ripperr 12.1.2009, 20:37 |
Числа в запросе с 1/01/2009 по 3/01/2009 а в результате с 2 по 3 щас выложу сурс... http://upload.com.ua/get/900643896/ запросы добавляй просто в ADOQuery и отредактируй путь к базе в Adoconnection |
Автор: pseud 13.1.2009, 10:49 |
upload.com.ua не хватило меня на просмотр ссылок на сомнительные ресурсы, не гарантирующий таки загруку. залей плиз на ifolder.ru |
Автор: Akella 13.1.2009, 13:01 |
pseud, нормально там всё качается |
Автор: pseud 13.1.2009, 14:47 | ||
первые грабли ADO в твой TADOQuery ввел запрос без параметров:
получил интересную картину по CallBegin (который якобы просто Time) http://ipicture.ru/ |
Автор: pseud 13.1.2009, 15:41 | ||||||
с параметрами - НЕ РАБОТАЕТ копать здесь: во-первых не
а
кликаем в дизайне в Parameters и видим что наши параметры типа DataType = ftFixedChar даже если руками ставим ftDate(ftDateTime) все-равно лажа. ПУСТО. Parameters.ParseSQL(SQL.Text,True) - возвращает на местах наших параметров ? РЕШЕНИЕ:
выводы - с парадоксом следует работать через бде (правда его придется ставить на все машины) |
Автор: Ripperr 13.1.2009, 20:54 |
О спасибо болшое я поробую просто я с таким сталкнулся первый раз и с бде некогда не работал.... Спасибо за основательный подход |
Автор: Ripperr 14.1.2009, 04:30 |
А как всетаки быть с временем мне надо ограничивать типо с 1.01.09 12:00 по 10.01.09 12:00 |
Автор: pseud 14.1.2009, 13:13 | ||||
замени строки
и
StartTime и EndTime - контролы для ввода времени |
Автор: Ripperr 14.1.2009, 15:45 | ||||
Спс шас попробую а что значит "#13#10 " а как можно видоизменить просто я хотел чтобы в зависимостри от того что выбрал видоизменялся запрос Так у меня было ранше ....
|
Автор: pseud 14.1.2009, 16:28 | ||
читай мою подпись. от много жирного бывет изжога. во-первых. вопрос решен. ставь птицу. во-вторых. ты издеваешься. в-третьих. если таки ты и вправду не в силах разложить свою кашу по тарелкам, то помогу разложить позже... возможно... если будет настроение... |
Автор: Ripperr 14.1.2009, 19:33 |
похоже я уже тебя достал =) ладно буду мучать мозг... |