Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.11.2007, 15:38   #11
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
при ее непосредственном открытии я ее могу редактировать
как ты пытаешься редактировать записи?
Цитата:
на форме программа выдает отсортированную базу, но не редактируется она в этом окне! =(
опять как же пытаешься редактировать?
dron-s вне форума
Старый 15.11.2007, 16:02   #12
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Цитата:
Сообщение от Constellation Посмотреть сообщение
а если, как советовал mihali4, воспользоваться UpdateSQL, то после размещения его на форме и связывания с TQuery через UpdateObject, нужно задать оператор SQL, так? Только я не совсем понимаю, как должен работать этот компонент... в книге совсем мало про него написано. Каким образом он влияет на отображение данных???
На отображение данных UpdateSQL никак не влияет. Если ты подключишь его к своему запросу и внимательно посмотришь его содержимое, то увидишь, что в нем прописываются параметрические SQL запросы на изменение (вставка, изменение, удаление) записей твоего TQuery. Если к TQuery он не подключен, то программа считает, что она не может изменить данные, так как не знает этих запросов и блокирует режим редактирования в элементах DataControls.

Практически же, ты можешь вручную подготовить SQL запрос на изменение данных и выполнить его через тот же TQuery методом ExecSQL в обход UpdateSQL.

Или, можешь удалить все запросы из UpdateSQL, тогда программа позволит тебе редактирование, но фактического изменения в БД не произойдет. Или, можешь просто сам поизвращаться на этих запросах, если задумал что-то нетривиальное.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума
Старый 15.11.2007, 16:17   #13
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

я вот вообще не понимаю, зачем такие выкрутасы...
кидаешь на форму кверик, в неё пишешь запрос на выборку, после выборки пишешь во втором кверике запрос на обновление (update), удаление (delete), на вставку (insert into) а первым квериком обновляешь общий НД...
что сложного то?
dron-s вне форума
Старый 15.11.2007, 16:26   #14
Constellation
Пользователь
 
Регистрация: 14.11.2007
Сообщений: 61
По умолчанию

Извините, но для начала хотелось бы все-таки уточнить, что я девушка... а то вы все ко мне обращаетесь как к молодому человеку) Dron-s, в общем виде поняла суть, но может есть еще примеры посмотреть... была бы очень длагодарна
Constellation вне форума
Старый 15.11.2007, 16:39   #15
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

в общем виде
есть таблица с товаром (Goods)
из нё нам надо выбрать позиции, с количеством товара равным или менее 5
структура таблички следующая
ID_GOODS - уникальный номер позиции
NAME_GOODS - название товара
KOLVO - количество товара
PRICE_GOODS - цена товара

первоначально мы выбираем весь товар (это в первом кверике)
select * from goods order by Name_Goods

затем нам необходимо выбрать товар у которого количество позиций равное или менее 5 и упорядочить по именованию (опять же делаем в первом кверике)
select * from Goods where kolvo<=5 order by name_goods

затем нам неообходимо у этих позиций снизить цену (к примеру)
во втором кверике пишем такой запрос
update goods set price_goods=10 where kolvo=5

а в первом кверике остаётся тотже запрос на выборку позиций у которых количество равняется 5, мы его просто переоткрываем или рефрешим...
тем самым обновим наши данные в НД...
dron-s вне форума
Старый 15.11.2007, 17:01   #16
Constellation
Пользователь
 
Регистрация: 14.11.2007
Сообщений: 61
По умолчанию

У меня база сотрудников предприятия Rabotniki. На форме 2 кнопки, по нажатию на первую происходит сортировка по таб. ном, а при нажатии на вторую - по фамилии. Это значит мне нужно создать второй Query, и записать order by TabNum (первая выборка), тогда в первом Query в запросе указать update Rabotniki? Хотя так она работать не будет...(
Constellation вне форума
Старый 15.11.2007, 17:09   #17
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

во втором кверике делаешь обновление а первый реврешишь...
dron-s вне форума
Старый 15.11.2007, 17:09   #18
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Constellation Посмотреть сообщение
У меня база сотрудников предприятия Rabotniki. На форме 2 кнопки, по нажатию на первую происходит сортировка по таб. ном, а при нажатии на вторую - по фамилии. Это значит мне нужно создать второй Query, и записать order by TabNum (первая выборка), тогда в первом Query в запросе указать update Rabotniki? Хотя так она работать не будет...(
Зачем второй квэри?
По первой кнопке:
Query1.SQl.Text:='select * from tabrab order by tabnum'
По второй:
Query1.SQl.Text:='select * from tabrab order by fam'
mihali4 вне форума
Старый 15.11.2007, 17:11   #19
Constellation
Пользователь
 
Регистрация: 14.11.2007
Сообщений: 61
По умолчанию

mihali4 тогда на форме нельзя будет редактировать... после компиляции
Constellation вне форума
Старый 15.11.2007, 17:18   #20
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Я тоже помню, сталкивался с этим (несмотря на гневные пожелания засунуть любую книгу в ...), когда данные, полученные с ORDER BY, закрываются от редактирования. Причем помню, что это прописывается в качестве предупреждения в описании этого оператора в инструкции к БД.
Попробую найти.
А UpdateSQL - штука совсем не страшная, она практически автоматом создает нужные SQL-и. И пользоваться ею "легко и приятно"
mihali4 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возможна ли быстрая загрузка в WebBrowser? furstenberg Работа с сетью в Delphi 10 09.01.2008 02:33
Возможна ли обработка двойного щелчка мышью на кнопке (TButton)? Brother Win Api 3 04.12.2007 08:32
Возможна ли рекурсия в запросах eremin БД в Delphi 0 23.05.2007 15:54