Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/22: Рейтинг темы: голосов - 22, средняя оценка - 4.68
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 57

Вывод информации по дате в таблицу

11.11.2010, 04:04. Показов 4562. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Подскажите пожалуйста.У меня есть форма с отчетом на которой должна выводится информация в таблицу при указании интервала даты от и до и нажатии кнопи. В таблице должны отображаться F,I,O(в одном столбце) из таблицы owner, номер карты card_number из таблицы card и дата начисления бонусов charge_date , количество начисленых бонусов charge_summ из таблицы ChargeBirth.Помогите пожалуйста так сделать. Связываются таблицы с помощью card_id.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.11.2010, 04:04
Ответы с готовыми решениями:

Вывод информации с базы данных по возрастанию (по дате)
помогите пожалуйста, вот у меня в таблице есть тема, ФИО, дата, как зделать чтоб она выводила всю информацию об этом по возрастанию (по...

Как разбить по дате вывод информации из базы
Имеется файл php <?php $dbHost='localhost'; $dbName='premiya'; $dbUser='root'; $dbPass=''; $myConnect =...

Вывод на таблицу по дате календаря
Подскажите, пожалуйста, как можно сделать выборку...? На форме расположены компоненты DBGrid и MonthCalendar. Необходимо, указывая на...

33
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 57
11.11.2010, 10:53  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от SAMZ Посмотреть сообщение
Посмотри внимательно, оттрассируй программу, поищи, м.б. у тебя где-то принудительно очищается QUERY.SQL
После этой строки влетает ошибка DM.query.ParamByName ('D1').AsDateTime := DateTimePicker1.Date;
0
 Аватар для sCreator
39 / 39 / 2
Регистрация: 19.09.2010
Сообщений: 97
11.11.2010, 10:53
Т.е. Ты нажал на кнопку с многоточием в свойстве Params в редакторе свойств компонента query.
В открывшемся окошке увидел два параметра
0 - D1
1 - D2
настроил их свойства как написано и получил ошибку "не найден параметр 'D1' ?
( кстати в какой строке? )

и еще у тебя в коде лишние строчки
Delphi
1
2
dm.query.Open;
DM.query.First;
в твоем посте №№ 45,46
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
11.11.2010, 10:59
После этой строки влетает ошибка DM.query.ParamByName ('D1').AsDateTime := DateTimePicker1.Date;
Перед этой строкой вставь
Delphi
1
ShowMessage(DM.query.SQL.Text);
и посмотри, что выведется на экран
0
 Аватар для sCreator
39 / 39 / 2
Регистрация: 19.09.2010
Сообщений: 97
11.11.2010, 11:19
Да, кстати, если у тебя DM.query используется еще для других таблиц и задается строчки в разных методах то возвращай строку DM.query.SQL.Text:=....
( только не забудь про "+" )
а перед DM.query.ParamByName ('D1').AsDateTime := DateTimePicker1.Date;
пиши
Delphi
1
2
3
DM.query.ParamByName ('D1').DataType := ftDateTime;
DM.query.ParamByName ('D1').ParamType := ptInput;
DM.query.ParamByName ('D1').AsDateTime := DateTimePicker1.Date;
и аналогично для второго
0
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 57
11.11.2010, 11:30  [ТС]
Цитата Сообщение от SAMZ Посмотреть сообщение
Перед этой строкой вставь
Delphi
1
ShowMessage(DM.query.SQL.Text);
и посмотри, что выведется на экран
select count(*) from bonus_dbTest.dbo.spiski where act_0=1

Добавлено через 9 минут
Цитата Сообщение от sCreator Посмотреть сообщение
Да, кстати, если у тебя DM.query используется еще для других таблиц и задается строчки в разных методах то возвращай строку DM.query.SQL.Text:=....
( только не забудь про "+" )
а перед DM.query.ParamByName ('D1').AsDateTime := DateTimePicker1.Date;
пиши
Delphi
1
2
3
DM.query.ParamByName ('D1').DataType := ftDateTime;
DM.query.ParamByName ('D1').ParamType := ptInput;
DM.query.ParamByName ('D1').AsDateTime := DateTimePicker1.Date;
и аналогично для второго
Да используется еще для двух таблиц. Сделал вот так
Delphi
1
2
3
4
5
6
7
DM.query.SQL.Text:='select F+'+char(39)+' '+char(39)+'+I+'+char(39)+' '+char(39)+'+O AS FIO, C.card_number, B.charge_date, B.charge_summ FROM OWNER O INNER JOIN CARD C ON C.card_id = O.card_id INNER JOIN ChargeBirth B ON B.card_id = O.card_id WHERE (B.charge_date BETWEEN :D1 AND :D2)';
DM.query.ParamByName ('D1').DataType := ftDateTime;
DM.query.ParamByName ('D1').ParamType := ptInput;
DM.query.ParamByName ('D1').AsDateTime := DateTimePicker1.Date;
DM.query.ParamByName ('D2').DataType := ftDateTime;
DM.query.ParamByName ('D2').ParamType := ptInput;
DM.query.ParamByName ('D2').AsDateTime := DateTimePicker2.Date;
Опять ошибка.
Ошибка dbExpress Error :Invalide Field Type
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
11.11.2010, 11:35
select count(*) from bonus_dbTest.dbo.spiski where act_0=1
Это называется "приехали"! Есть еще другие подходящие слова из великого и могучего нашего языка, но здесь приводить не будем.
Скажи, зачем в один объект QUERY заталкивать разные SQL - тексты? Специально, чтобы иметь этот гемор. Ты затолкал на этапе пректирования приложения текст SQL, описал параметры, потом заменил на этапе исполнения программы этот текст на
SQL
1
SELECT COUNT(*) FROM bonus_dbTest.dbo.spiski WHERE act_0=1
и именно в этот момент все и похерил. Чего ты наэкономил? Один указатель на объект. А поимел проблему.
Есть конечно ситуации, когда по каким-то причинам разработчик меняет текст SQL на лету во время выполнения программы. Но это должно быть обоснованно.
0
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 57
11.11.2010, 11:38  [ТС]
Цитата Сообщение от SAMZ Посмотреть сообщение
Это называется "приехали"! Есть еще другие подходящие слова из великого и могучего нашего языка, но здесь приводить не будем.
Скажи, зачем в один объект QUERY заталкивать разные SQL - тексты? Специально, чтобы иметь этот гемор. Ты затолкал на этапе пректирования приложения текст SQL, описал параметры, потом заменил на этапе исполнения программы этот текст на
SQL
1
SELECT COUNT(*) FROM bonus_dbTest.dbo.spiski WHERE act_0=1
и именно в этот момент все и похерил. Чего ты наэкономил? Один указатель на объект. А поимел проблему.
Есть конечно ситуации, когда по каким-то причинам разработчик меняет текст SQL на лету во время выполнения программы. Но это должно быть обоснованно.
Это не я делал , а другой человек я доделываю программу. Что мне делать теперь?
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
11.11.2010, 12:04
Что мне делать теперь?
Думаю, что вариантов ровно два.
1. Найти то место в программе, в котором "портится" статически задаваемый текст SQL. Для этого запроса создать отдельный объект (допустим QUERY2) и использовать его. На этом пути есть много подводных камней. Ты должен знать сколько таких мест в программе. Ты должен определить где используются результаты этих запросов. Короче говоря, ты должен отчетливо представлять программу, логику ее работы, последовательность использования объектов
2. Снова вернуться к динамическому созданию запроса
Для этого задаешь
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
DM.QUERY.SQL.Clear;
DM.QUERY.SQL.ADD('SELECT O.F  + O.I + O.o AS FIO, C.card_number, ');
DM.QUERY.SQL.ADD('B.charge_date, B.charge_summ ');
DM.QUERY.SQL.ADD('FROM OWNER O');
DM.QUERY.SQL.ADD('INNER JOIN CARD C ON C.card_id = O.cardid');
DM.QUERY.SQL.ADD('INNER JOIN ChargeBirth B ON B.card_id = O.cardid');
DM.QUERY.SQL.ADD('WHERE (B.charge_date BETWEEN  :D1 AND :D2) ');
DM.QUERY.SQL.PARAMS[0].DataType := ftDateTyme;
DM.QUERY.SQL.PARAMS[0].ParamType := ptInput;
DM.QUERY.SQL.PARAMS[1].DataType := ftDateTyme;
DM.QUERY.SQL.PARAMS[1].ParamType := ptInput;
DM.QUERY.Open
Все это там, где у тебя ранее задавался текст DM.QUERY.SQL.Text
Можно сделать и немного иначе, вставляя в текст SQL вместо параметров
DateToStr(DateTimePicker1.Date)
0
 Аватар для sCreator
39 / 39 / 2
Регистрация: 19.09.2010
Сообщений: 97
11.11.2010, 12:13
Похоже я пас. ( или давай бекап базы и полный проект - на какой Delphi пишешь я так и не понал у меня сейчас стоит XE ).
Напоследок - добавь еще один SQLQuery и настрой как сказано и используй только для этого.

Добавлено через 3 минуты
Delphi
1
DM.QUERY.SQL.ADD('SELECT O.F + '' ''  + O.I + '' ''  + O.o AS FIO, C.card_number, ');
насколько помню двойной апостроф [''] какраз для вставки его в строку.
0
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 57
12.11.2010, 05:08  [ТС]
Помогите пожалуйста как сделать так чтобы excel документ формировался автоматически на сервере каждый день после изменений данных в таблицах базы.Нужен скрипт специальный или что то другое?
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
12.11.2010, 06:20
Цитата Сообщение от slai Посмотреть сообщение
так чтобы excel документ формировался автоматически на сервере каждый день после изменений данных в таблицах базы
Постановка вопроса не вполне понятна! Документ должен фрмироваться каждый день 1 раз в день и содержать внесенные в течение суток изменения в таблицах. Или имеется ввиду нечто другое.
0
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 57
12.11.2010, 06:22  [ТС]
Цитата Сообщение от SAMZ Посмотреть сообщение
Постановка вопроса не вполне понятна! Документ должен фрмироваться каждый день 1 раз в день и содержать внесенные в течение суток изменения в таблицах. Или имеется ввиду нечто другое.
Да вот так должно быть.
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
12.11.2010, 06:49
Да вот так должно быть
Тогда, если это твоя БД (т.е. ты разработчик и все про эту БД знаешь), тебе надо себе самому ответить на несколько вопросов
1. Предусмотрено ли в этой БД автоматическое логирование подключений юзеров к БД, вводда новых записей, редактирования записей, удаления записей
2. Если предусмотрено, то какая информация логируется, в каком объеме
3. И, наконец, сформулировать, какую информацию их лог - таблиц выгружать в Exel - документ
Если лог не формируется, то никакой выгрузки изменений не реализуешь
Если логирование реализовано, то выгрузка это дело техники. Можно написать приложение, которое раз в сутки будет выгружать необходимую информацию
0
0 / 0 / 1
Регистрация: 28.09.2010
Сообщений: 57
13.11.2010, 03:03  [ТС]
Цитата Сообщение от SAMZ Посмотреть сообщение
Тогда, если это твоя БД (т.е. ты разработчик и все про эту БД знаешь), тебе надо себе самому ответить на несколько вопросов
1. Предусмотрено ли в этой БД автоматическое логирование подключений юзеров к БД, вводда новых записей, редактирования записей, удаления записей
2. Если предусмотрено, то какая информация логируется, в каком объеме
3. И, наконец, сформулировать, какую информацию их лог - таблиц выгружать в Exel - документ
Если лог не формируется, то никакой выгрузки изменений не реализуешь
Если логирование реализовано, то выгрузка это дело техники. Можно написать приложение, которое раз в сутки будет выгружать необходимую информацию
Нет я не разработчик этой БД. Нашел способ решить эту проблему с помощью копонента bcp:
bcp "bonus_dbTest.dbo.vlogchange" out C:\Users\Gavrikov\Desktop\text.txt -Sprosto_srv -Uлогин -Pпароль -C1251
но выдает ошибку :
SQLState = 08001, NativeError = 53
Error = [Microsoft][SQL Native Client]Named Pipes Provider: Could not open a con
nection to SQL Server [53].
SQLState = 08001, NativeError = 53
Error = [Microsoft][SQL Native Client]An error has occurred while establishing a
connection to the server. When connecting to SQL Server 2005, this failure may
be caused by the fact that under the default settings SQL Server does not allow
remote connections.
SQLState = S1T00, NativeError = 0
Error = [Microsoft][SQL Native Client]Login timeout expired
Как исправить эту ошибку?

И еще один способ но при его выполнении он сохраняет информацию в файл но буквы отображаются не корректно:
osql -S prosto-srv -U логин -P пароль -w1024 -Q "SELECT * FROM bonus_dbTest.dbo.vlogchange " -b -o C:\Users\Gavrikov\Desktop\myoutput.txt
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2010, 03:03

Поиск человека по заданной дате рождения и вывод информации о нём
Ребят, помогите пожалуйста с задачей! Задача: Написать программу, в которой описывается массив записей, хранящий в текстовом файле...

Вывод в таблицу данных, фильтрующихся по дате
Добрый день. Есть некая таблица в БД MySql. Программа получает из неё данные и выводит в QTableView таким образом: QSqlDatabase db =...

Обеспечить вывод информации о дате и времени на хостах во второй столбец компонента DataGridView
Дается список адресов, который содержится в компоненте DataGridView в одном столбце. Обеспечить вывод информации о дате и времени на хостах...

Вывод информации из Combobox в таблицу
Здравствуйте, товарищи. Есть на форме несколько combobox, каждый выводит информацию (название различных деталей) из разных таблиц, так вот,...

Вывод информации в таблицу table
У меня есть папка, в нее я загружаю текстовики (их может быть штук 20) который имеют название имени, а в текстовики записаны фамилии. Как...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru