Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
1

Почему запрос на добавление работает не одинаково в двух указанных случаях

05.02.2016, 07:12. Показов 947. Ответов 12
Метки нет (Все метки)

Сразу прошу извинить, так как знания мои не так обширны, как хотелось бы.
На мой неопытный взгляд, раз я меняю значение MyStrDate , то и результат в обоих случаях должен
быть одинаковым но нет результат разный.
Есть предположение, что язык SQL по разному трактует данные запросы, и уместнее всего в данном случае применять запрос с параметрами вместо второго варианта.

Вариант №1
Delphi
1
2
3
4
5
6
7
8
9
While MyDateIn < MyDateOT do
    Begin
    que[myindex].Close;
    que[myindex].SQL.Clear;
    sql_line:=('INSERT INTO MyTable ([Cfo],['+MyStrDate+']) VALUES ("Москва",5)');
    que[myindex].SQL.Add(sql_line);
    que[myindex].ExecSQL;
    MyDateIn:=IncMonth(MyDateIn);
    MyStrDAte:=DateToStr(MyDateIn);
Вариант№2
Delphi
1
2
3
4
5
6
7
8
9
que[myindex].Close;
    que[myindex].SQL.Clear;
    sql_line:=('INSERT INTO MyTable ([Cfo],['+MyStrDate+']) VALUES ("Москва",5)');
    que[myindex].SQL.Add(sql_line);
    While MyDateIn < MyDateOT do
    Begin
    que[myindex].ExecSQL;
    MyDateIn:=IncMonth(MyDateIn);
    MyStrDAte:=DateToStr(MyDateIn);
А вот с параметром не знаю возможно ли здесь?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2016, 07:12
Ответы с готовыми решениями:

Почему для двух разных строк программма работает одинаково?
1 вариант program aa real :: a=7., y=0.4 ...

Почему задача, одинаково решенная на C++ и на Java, работает только на C++?
условие: Даны две строки. Создайте Java-метод, который заменяет все символы первой строки на...

Метод класса работает одинаково для двух объектов
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; class Monster { int health,...

Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;}
Препод мне доказывает, что void в main`е писать неправильно, а объяснить не может почему. Кто...

12
4933 / 3841 / 1278
Регистрация: 14.04.2014
Сообщений: 17,731
Записей в блоге: 18
05.02.2016, 08:06 2
имя колонки - дата ???
0
3584 / 3055 / 821
Регистрация: 29.08.2013
Сообщений: 20,378
Записей в блоге: 2
05.02.2016, 08:48 3
Цитата Сообщение от mserg1972 Посмотреть сообщение
Есть предположение, что язык SQL по разному трактует данные запросы
sql никак не трактует запросы
есть движок конкретной СУБД который их выполняет

Скажите что у вас не так? Запросы одинаковые - в чем проблема?
1
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
05.02.2016, 08:56  [ТС] 4
В первом случае данные добавляются с начало в первый столбец, потом переходит на следующую строку и добавляет в следующий столбец.
Во втором случае данные добавляются только в один столбец
То есть в первом варианте значение MyStrDate в запросе меняется, а во втором случае не меняется.

Добавлено через 4 минуты
Цитата Сообщение от krapotkin Посмотреть сообщение
имя колонки - дата ???
Да дата, на каждое первое число месяца в разрезе подразделений.
Скажем так - это не таблица для хранения данных, а отчет в виде временной таблицы для выгрузки в Excel,
Знаю что не правильно, но пока реализовал так.
0
Хитрая блондиночка $)
1461 / 976 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
05.02.2016, 09:04 5
Цитата Сообщение от mserg1972 Посмотреть сообщение
Да дата, на каждое первое число месяца в разрезе подразделений.
Имя поля. Дата.
Понимаешь разницу между именем поля и записью?
Как выглядит структура таблицы MyTable ?
0
3584 / 3055 / 821
Регистрация: 29.08.2013
Сообщений: 20,378
Записей в блоге: 2
05.02.2016, 09:21 6
Лучший ответ Сообщение было отмечено mserg1972 как решение

Решение

Цитата Сообщение от mserg1972 Посмотреть сообщение
В первом случае данные добавляются с начало в первый столбец, потом переходит на следующую строку и добавляет в следующий столбец.
Во втором случае данные добавляются только в один столбец
так в первом случае ты SQL запрос меняешь в цикле, а во втором не меняешь
раз ты не меняешь запрос, то выполняется старый
это же очевидно
1
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
05.02.2016, 09:21  [ТС] 7
Имя поля дата в текстовом выражении.
0
Миниатюры
Почему запрос на добавление работает не одинаково в двух указанных случаях  
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
05.02.2016, 09:22  [ТС] 8
Цитата Сообщение от qwertehok Посмотреть сообщение
так в первом случае ты SQL запрос меняешь в цикле, а во втором не меняешь
раз ты не меняешь запрос, то выполняется старый
это же очевидно
А нельзя как то не менять запрос ,а обновлять только значение MyStrDate в цикле?
0
3584 / 3055 / 821
Регистрация: 29.08.2013
Сообщений: 20,378
Записей в блоге: 2
05.02.2016, 09:24 9
Лучший ответ Сообщение было отмечено mserg1972 как решение

Решение

mserg1972, то что ты сейчас делаешь в базе проще сделать в StrinGrid и вывести в эксель
а потом отказаться от промежуточного хранилища и сразу выводить в эксель

Добавлено через 55 секунд
Цитата Сообщение от mserg1972 Посмотреть сообщение
А нельзя как то не менять запрос ,а обновлять только значение MyStrDate в цикле?
нет, это же колонка

параметры работают только для значений, для колонок не работают
1
1 / 1 / 2
Регистрация: 18.12.2013
Сообщений: 239
05.02.2016, 09:51  [ТС] 10
Ок, спасибо попробую, не работал еще со StrinGrid.
0
4933 / 3841 / 1278
Регистрация: 14.04.2014
Сообщений: 17,731
Записей в блоге: 18
05.02.2016, 10:06 11
Цитата Сообщение от qwertehok Посмотреть сообщение
вывести в эксель
зачем ?


mserg1972,
это неправильная структура БД
поэтому работа с ней неудобна а со временем и невозможна
в таблице БД должны быть поля id,cfo,mon,value
а уже потом они будут разворачиваться в колонки с группировкой по результатам
1
3584 / 3055 / 821
Регистрация: 29.08.2013
Сообщений: 20,378
Записей в блоге: 2
05.02.2016, 10:13 12
Цитата Сообщение от krapotkin Посмотреть сообщение
зачем ?
не знаю, я подумал - раз отчет, значит его нужно куда-то вывести

пусть ТС думает как и куда

mserg1972, Проектировать бд нужно не из головы, а так что бы удобно ложились не только входящие данные, но и отчеты было просто строить
1
4933 / 3841 / 1278
Регистрация: 14.04.2014
Сообщений: 17,731
Записей в блоге: 18
05.02.2016, 10:17 13
Цитата Сообщение от qwertehok Посмотреть сообщение
что бы удобно ложились не только входящие данные
- Лизочка, мне бы данные за 5 лет
- Иван Иванович, у меня 120 колонок на страничку не влазиют

эта проблема стара как мир
хранить надо как надо, а для формирования отчетов делать правильные запросы
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2016, 10:17

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Сравнить в указанных случаях радиусы кривизны траектории в высшей точке подъема тела
Тело брошено сначала под углом α1 к горизонту со скоростью v1, а затем под углом α2 со...

Запрос на добавление не работает
Добрый день! Имеется Таблица -Tab1 Структура: Tab1.Chet, Tab1.Prihod, Tab1.Rashod В поле...

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

Не работает запрос на добавление
Всем доброго времени суток! Выбираю данные из 2-х таблиц и помещаю их в третью таким запросом: ...

Не работает запрос на добавление
Доброго времени суток. Проблема такая: не работает запрос на добавление. Создать запрос на...

Почему работает добавление в document?
Есть такой код: var winPrint =...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.