![]() |
|
![]() ![]() ![]() |
|
ivanfr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Всем привет, нашлась свободная минута хотел бы продолжить.
С помощью оператора UPDATE добавляются данные . UPDATE Имя_таблицы SET Имя_поля=Значение WHERE Условие выборки. Ранее с помощью SQL – Запроса получили данные выборки работников, которые уволились в определенный промежуток времени с 20.08.2011по 20.09.2011. Далее научился эти данные переносить в динамический массив, что бы можно было с ними работать. Задача 1 Теперь перед мной стоит следующая задача, как добавить отобранным работникам в столбец значение (znachenie), таблицы (persona_stor) значение «обработан»? Для чего, для того чтобы когда я буду формировать запрос выборки SQL:
ЗАДАЧА 2 В условия выборки SQL-Запроса хотел бы добавить дополнительное условие отбора, например, бери все даты, которые соответствую условию (с 20.08.2011по 20.09.2011), но если у них в столбец значение (znachenie), таблицы (persona_stor) есть значение «обработан», то исключи его из выборки. Для начала хотел бы узнать, можно ли это реализовать с помощью SQL-запроса? Это сообщение отредактировал(а) ivanfr - 29.9.2011, 06:36 |
|||
|
||||
14SatanA88 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: 1 Всего: 5 |
разумеется
здесь, может быть, надо будет еще скобки расставить. Добавлено @ 08:25 и я еще не понял, зачем динамический массив? Это сообщение отредактировал(а) 14SatanA88 - 29.9.2011, 10:14 |
||||||
|
|||||||
ivanfr |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
14SatanA88 Скажи пожалуйста SET znachenie=true когда так пишем то мы SQL запросом как бы спрашиваем, что значение "znachenie" Пустое - false или не пустое – true ( то есть в данном столбце, есть какие-то данные. если true, то не пустое если false- то данные есть), так тип "znachenie" текстовый у меня. Или логичней сделать его логическим типом? я то собирался туда записывать слова типа "Обработано". |
|||
|
||||
14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: 1 Всего: 5 |
имхо намного логичней ну если текст то просто SET znachenie='какой-то текст' Добавлено через 2 минуты и 10 секунд нет, SET просто поверх старого значения пишет в таблицу то, что ему указали в данном случае в логическое (!) поле пишется логическая единица |
|||
|
||||
ivanfr |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Хорошо это запрос применил работает на ура. Вот теперь что- то не соображу
- этот кусок кода, как пременить вроди бы этот код отработал:
и данные находяться в ADOQuery1, а он требует нового создания запроса. что то я не пойму как это работает? Ранее я их помещал в массив. куда какую запись вставлять(по строчка по столбика), как это сказать запросу? Объясните как это работает? Это сообщение отредактировал(а) ivanfr - 29.9.2011, 12:50 |
||||||
|
|||||||
AndreyIQ |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: 1 Всего: 8 |
Кто требует?
Что имено непонятно? Задайте конкретный вопрос. |
||||
|
|||||
ivanfr |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Отработал код
, выбрал людей, которые уволились в определнный интервал с 20.08.2011 по 20.09.2011. так вот данные поместились в ADOQuery1. Правильно. Теперь нужно обновить у найденных сотрудников столбец значение "znachenie" с записью в БД тоесть записать туда значение True изначально там находиться false. Я что то не соображу как записать обновление у этих работников с помощью след строки.
А точней в какое место поставить строку в коде. |
||||
|
|||||
AndreyIQ |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: 1 Всего: 8 |
Если я Вас правильно понял, то
Вам вообще не нужен, он только для того чтобы посмотреть список сотрудников уволеных за определенный период, а для того что бы изменить поле znachenie, необходимо просто выполнить следующее
Данный код всем сотрудникам уволеным в период с 20.08.2011 по 20.09.2011 сделает znachenie = true Это сообщение отредактировал(а) AndreyIQ - 29.9.2011, 14:55 |
||||
|
|||||
14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: 1 Всего: 5 |
AndreyIQ, я понял вопрос так же и ответ у меня приблизительно такой же )
ivanfr, чтобы не возникало далее вопросов типа "почему не выполянется запрос" или "почему запрос ничего не возвращает", обязательно прочитай и запомни вот это. Это сообщение отредактировал(а) 14SatanA88 - 29.9.2011, 15:35 |
|||
|
||||
14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: 1 Всего: 5 |
ivanfr, массив тебе не нужен точно.
Это сообщение отредактировал(а) 14SatanA88 - 29.9.2011, 15:35 |
|||
|
||||
ivanfr |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
Не совсем правильно, дело в том, что список мне этот нужен для отслеживания уволенных сотрудников, а добавление данных в столбец znachenie=true, чтобы не было повторов при выводе данных из БД. Ведь в самом деле зачем мне одного и того же уволенного сотрудника проверять два раза . Стоит такая задача: 1)Делаю выборку SQL-запросом и смотрю полученные данные в ДБГриде, кто уволился в виде таблицы, - эти данные нужны. 2)Затем я их посмотрел, скопировал, поделал что либо с данными запроса... 3) Далее мне нужно добавить всем найденным (первым запросом) в столбец znachenie = true (я эти данные посмотрел в следующий раз они мне не понадобятся, но фишка в том, что в список(точней в период с 20.08.2011 по 20.09.2011) может попасть сотрудник, который был уволен в эти дни, но в БД его еще нет, а попадет в БД после обработки следующего раза и с датой (периода с 20.08.2011 по 20.09.2011), но при этом в столбце "znachenie" у него уже будет стоять false, потому что при добавлении данных в мою БД им будет по умолчанию ставиться это значение. И вот потом когда я буду делать запрос второй, третий,….. раз я всегда смогу узнать, а не добавлялись ли данные. Вы мне предлагаете использовать следующий запрос код Pascal/Delphi
, который просто добавляет данные в значение столбец "znachenie" не давая возможности предварительно посмотреть список сотрудников. Вот я и спрашиваю, как можно сделать так чтобы данные добавились в столбец "znachenie" после просмотра таблицы SQL-запроса?
Я про это уже читал.
Эт я так чтоб научиться, как из Адоквери получать данные, может пригодиться когда либо. Это сообщение отредактировал(а) ivanfr - 30.9.2011, 05:51 |
||||||||
|
|||||||||
14SatanA88 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 393 Регистрация: 13.5.2010 Репутация: 1 Всего: 5 |
насколько я понял, тебе надо сперва посмотреть на таблицу со всеми сотрудниками, потом пометить уволенных, а потом опять просмотреть таблицу сотрудников, в которой уже не будет видно уволенных. тогда просто выполни последовательно 3 запроса: 1. select... 2. update... 3. select... |
|||
|
||||
AndreyIQ |
|
||||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: 1 Всего: 8 |
ЗЫ В коде могут быть ошибки, с АДО не работаю. |
||||||||
|
|||||||||
ivanfr |
|
||||||||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 1.4.2009 Репутация: нет Всего: нет |
В данном случае id - это название ключевого поля или поля счетчика? у меня ключевое поле - 'tabel_nomer' а счетчик id_persona_stor'. Правильно ли я понимаю описание строки обнови в таблице persona_stor значение znachenie на труе с условием совпанения id_persona_stor. Который будет одним и тем же что в запросе Адоквери1 что в таблице БД"persona_stor"? Поля БД access
я это и спрашиал как мне это делать в одном запросе или все-таки раздельно. Можно ли сразу одновремено выполнить выборку и вести на экран тутже записать значения. одним запросом. Это сообщение отредактировал(а) ivanfr - 19.7.2012, 07:28 |
||||||||||||||||
|
|||||||||||||||||
AndreyIQ |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 5.2.2007 Репутация: 1 Всего: 8 |
id_persona_stor
Все верно. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |