Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
jet

Как сделать Update данных выбранных с помощью Select

12.12.2007, 03:34. Показов 2004. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В программе имеется DBNavigator, данные меняются, но в
БД не попадают. Тип базы: Paradox.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.Button4Click(Sender: TObject);
var
    ret:string[30];
begin
    ret:=InputBox('Выборка информации из БД',
                 'Введите название книги и щелкните на OK.','');
    if ret <> ''
    then
       begin
         with form3.Query1 do
         begin
           Close;
           SQL.Clear;
 
           SQL.Add('SELECT   * ');
           SQL.Add('FROM ':STANDARD2:base.db'');
           SQL.Add('WHERE');
           SQL.Add('('книга' = ''+ ret + '')');
           SQL.Add('ORDER BY год');
           Open;
         end;
          Form1.DataSource1.DataSet := Query1;
         end;
     end;
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2007, 03:34
Ответы с готовыми решениями:

Как сделать UPDATE после SELECT?
нужно записать в в соответствующий столбец дату последнего прочтения записи. естественно одним запросом будет прочитана только одна строка....

Как сделать UPDATE с помощью OleDBCommand и параметрами?
Может даст кто-нибудь примерчик?

Select, Insert, Update и DeleteCommand в SqlDataAdapter, как сделать их определение более удобным?
Здраствуйте. Начал работать с базой данных через SqlDataAdapter. И как то кажется совсем не удобно указывать для каждой таблицы, или...

5
0 / 0 / 1
Регистрация: 23.10.2007
Сообщений: 68
12.12.2007, 11:02
Посмотрите компонент TUpdateSQL.
0
0 / 0 / 0
Регистрация: 05.12.2007
Сообщений: 56
12.12.2007, 16:07
Согласен с предыдущим советом, но там не объяснено главного:
Отсортированная выборка из Парадокса CanModify=false, то есть она нередактируема! Уберите Order By и все будет.

Есть еще один способ:
Прицепите к TQuery (без Order By) TDataSetProvider, к нему TClientDataSet, укажите в последнем индекс по полю 'год' и открывайте TClientDataSet. Недостаток этого подхода: если в выборке есть значения с буквами вроде ж или ы, то сортировка собьется.
0
0 / 0 / 1
Регистрация: 23.10.2007
Сообщений: 68
13.12.2007, 15:38
Редактируемая, отсортированная выборка из paradox-са.
Query.CanModify - всегда true.

движок: BDE-Paradox
Таблица - MyTbl
Поля: Id - LongInt, ключевое;
Name - alpha 25

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Query.close;
Query.CachedUpdates:=true;
Query.UpdateObject :=UpdateSQL;
Query.SQL:='Select * from MyTbl 
            where чего_нибудь    
            Order By любое_поле'
Query.open;
------------------------------
UpdateSQL.DeleteSQL:='delete from MyTbl where  Id = :OLD_Id'
UpdateSQL.InsertSQL:='insert into MyTbl (Id, Name)
                                 values (:Id, :Name)'
UpdateSQL.ModifySQL:='update MyTbl
                      set Id = :Id,
                          Name = :Name
                      where Id = :OLD_Id'
-------------------------------
+ Где-то заносим кеш в базу, напр.:
Delphi
1
2
3
4
procedure TForm1.QueryAfterPost(DataSet: TDataSet);
begin
Query.ApplyUpdates;
end;
0
0 / 0 / 1
Регистрация: 23.10.2007
Сообщений: 68
13.12.2007, 15:57
Небольшая ошибка:
UpdateSQL.xxx:='строка' - не правильно.
UpdateSQL.xxx.text:='строка'- правильно.
0
Motor
21.12.2007, 00:15
Вполне можно обойтись и без UpdateSQL. Только надо, чтобы в базе был индекс по тому полю, по которому идет сортировка в выборке(вроде 'год').
Еще надо поставить свойство RequestLive у Query в true.
Не знаю правда, как это все работает с русскими названиями полей, не разу не пробовал.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2007, 00:15
Помогаю со студенческими работами здесь

Как сделать select и update одним запросом что бы потом узнать id этой обновленной записи
Всем привет друзья! Перейду сразу к сути! Много рылся в интернете по данному вопросу и нашёл только варианты, как сделать update и select...

Datasnap. Не могу сделать select, update
создаю DataSnap трёхзвенку. Delphi 10.2, firebird 3 использую методы сервера. связка на сервере:...

База данных Access медлит при Update и Select
программа построена на Access нужно время от времени проводить вычисления и записывать их в БД только возникает проблема что ...

Select, delete, update, insert. как писать?
Всем привет. Как дописать delete, update, insert. Поиск по форуму не дал результатов, а черз гугл не понимаю на чужих примерах. Если...

Как с помощью Javasript сделать эскпорт данных в Excel?
Как с помощью Javasript сделать эскпорт данных в Excel? Следующая констукция var ExcelSheet; ExcelApp = new...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru