Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 228
от 19.03.2007, 15:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 391, Экспертов: 46
В номере:Вопросов: 2, Ответов: 5


Вопрос № 78141: Здравствуйте уважаемые эксперты!!! Подскажите пожалуйста, как сделать запрос в БД Access по типу: if id=1 then id_sales:="Cola", т.е. как организовать вычисления или присвоения, если для этого должно выполняться какое-то условие? Спасибо....
Вопрос № 78200: Здраствуйте! Нужна помощь. Скажите пожалуйста как в MS Access 2003 сделать операции: редактирование данных, добавление и удаление. Как сделать так, чтобы таблицы, запросы и т.д. хранить не в одном файле, а в разных и как их можно хранить в модулях. К...

Вопрос № 78.141
Здравствуйте уважаемые эксперты!!! Подскажите пожалуйста, как сделать запрос в БД Access по типу: if id=1 then id_sales:="Cola", т.е. как организовать вычисления или присвоения, если для этого должно выполняться какое-то условие? Спасибо.
Отправлен: 13.03.2007, 17:39
Вопрос задал: Piit (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Ерёмин Андрей
Здравствуйте, Piit!
Для изменения записей в таблице служит команда UPDATE. Для вашего примера запрос будет такой:
UPDATE `table` SET `id_sales` = "Cola" WHERE `id` = 1
В результате во всех записях, где id = 1 поле id_sales примет значение "Cola".
Желаю удачи!
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на Delphi. Всё для программиста. Файловый архив, статьи, помощь, советы, обмен опытом.
ICQ: 286867644
----
Ответ отправлен: 13.03.2007, 17:44
Оценка за ответ: 5

Отвечает: Филатов Евгений Геннадьевич
Здравствуйте, Piit!
В некоторых SQL запросах, в частности в Access, будет работать такая запись ( все примеры из рабочих программ ) :

select obname, gr , iif ( nal = true , 'Да' , 'Нет' ) as na , iif ( bux = true , 'Да' , 'Нет' ) as bu from base

update base set m4_n=int ( ( price-izn_n-m1_n-m2_n-m3_n ) *100 * iif ( n_sch = '1' , 0.05 , iif ( n_sch = '2' , 0.25 ,0.15 ) ) / 4 + 0.5 ) / 100 WHERE nal = true and gr = 1 and not ( go = 8 and n_sch = '1' ) and shifr < 99999

По количеству вложений функции iif ( ) у меня получалось до 7, в теории не ограничено.

При работе с SQL Server функция iif ( ) не работает, нужно использовать оператор
CASE
WHEN условие THEN команды
..
ELSE команды
END

select HMnac as nac , HMpos as pos , cast ( HOst as float ) / 100 as dolg , ( CASE WHEN HZakr <= cast ( '1.1.2002' AS smalldatetime ) THEN '' ELSE '<>' END ) AS zak, * from Mir

С уважением.
Ответ отправил: Филатов Евгений Геннадьевич (статус: 6-ой класс)
Ответ отправлен: 13.03.2007, 18:23
Оценка за ответ: 4


Вопрос № 78.200
Здраствуйте! Нужна помощь. Скажите пожалуйста как в MS Access 2003 сделать операции: редактирование данных, добавление и удаление. Как сделать так, чтобы таблицы, запросы и т.д. хранить не в одном файле, а в разных и как их можно хранить в модулях. Как говорят, чтобы легче можно было модернизировать базу и работать. БД будет в месяц пополняться примерно на 260 записей. Ваши ответы очень мне помогут. Всех благодарю.
Отправлен: 14.03.2007, 08:56
Вопрос задал: Попов Николай (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Архангельский Андрей Германович
Здравствуйте, Попов Николай!

1) 260 записей в месяц - это такие мелочи, что и говорить не стоит
2) При разделении БД на несколько частей нарушаются правила целостности, даже если СУБД это поддерживает.
3) MSAccess - рассматривает БД как один файл, кроме того в нем же лежат элементы управления.
Конечно из VB можно обратится к другому файлу, но проверка целостности лежит на программисте.
---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 14.03.2007, 10:50

Отвечает: Grigory
Здравствуйте, Попов Николай!
1. Для выборки данных надо использовать команду SELECT - как это делается можно посмотреть в Help'е MS Access 2003, набрав в поиске слово Select, и выбрать в результатах SELECT STATEMENT
2. Для редактирования используется команда UPDATE - как пользоваться этой командой можно посмотреть в том же help'е, набрав в поиске update statement
3. Для удаления данных используется команда DELETE - как пользоваться этой командой можно посмотреть в том же help'е, набрав в поиске delete statement
---------
Если хочешь быть счастливым - будь им! (Козьма Прутков)
Ответ отправил: Grigory (статус: Студент)
Ответ отправлен: 14.03.2007, 18:26

Отвечает: Игорь Елизаров
Здравствуйте, Попов Николай!
Действительно, для удобства модернизации интерфейса и работы с базами ACCESS рекомендуется размещать их в разных файлах., например, собственно базу в одном файле, а интерфейс пользователя - в другом. при этом можно легко изменить интерфейс пользователя не затрагивая данных или , наоборот, изменять данные, не затрагивая интерфейс пользователя.
Это делается СВЯЗЫВАНИЕМ таблиц.
Этапность следующая.
допустим, есть Proect.mdb который включает и базу и элементы интерфейса пользователя в "одном флаконе"

таблицы данных называются table1 table2

Делаем следующим образом
1. Копируем Proekt.mdb -> Proekt_user.mdb

понятно, что сейчас этот проект полностью аналогичен первоначальному
2. В проекте Proekt_user переименовываем таблицу table1 -> table1_old
3. Далее в проекте Proekt_user делаем связь с таблицей table1 проекта Proekt

- Таблицы
- связь с таблицами
- выбираем проект Proekt
- выбираем таблицу table1

все, связь с table1 установлена

аналогично делаем и для table2
После этого проверяем работу Proekt_user

Если все работает нормально, то таблицы table1_old и table2_old можно удалить.

В дальнейшем можно менять интерфейс пользователя (Proekt_user) независимо от собственно данных ( базы Proekt) .

С уважением, Игорь


---------
Пользователь - тоже человек..
Ответ отправил: Игорь Елизаров (статус: 9-ый класс)
Ответ отправлен: 14.03.2007, 20:09


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.46 от 18.03.2007
Яндекс Rambler's Top100

В избранное