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

Не обновляется таблица БД Access с ключом типа счетчик

11.11.2017, 18:36. Показов 1385. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Для таблиц с ключом числового типа использовал такой код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure TTypeRepository.UpdateObject(obj: TType);
var
  mySQL: string;
begin
  query.SQL.Clear();
  mySQL := 'SELECT * FROM Type WHERE Id = ' + IntToStr(obj.Id);
  query.SQL.Add(mySQL);
  query.Open;
 
  query.Edit;
  query.FieldByName('Name').AsString := obj.Name;
 
  query.ExecSQL;
  query.Post;
end
Когда решил применять такой же код для таблицы с ключом типа счетчик строки перестали обновляться, а вместо этого стали добавляться новые строки. Структура двух типов идентична, всего два поля ключ и поле string.
Подскажите пожалуйста как исправить чтобы обновлялась таблица правильно.

Добавлено через 53 минуты
Почему предыдущий код не работал я так и не понял, но написал рабочий через SQL.
Delphi
1
2
3
4
5
6
7
8
9
procedure TTypeRepository.UpdateObject(obj: TType);
begin
 
  query.SQL.Clear();
  query.sql.text := 'UPDATE Type SET Name=:name WHERE Id =:id';
  query.Parameters.ParamByName('name').Value := obj.Name;
  query.Parameters.ParamByName('id').Value := obj.Id;
  query.ExecSQL;
end;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.11.2017, 18:36
Ответы с готовыми решениями:

Не обновляется таблица в базе Access при Adapter.UPDATE()
Разбираюсь как работает метод Adapter.UPDATE(). Для начала пытаюсь удалить записи по условию. static void ClearTable(OleDbConnection...

Можно ли средствами ASP создать поле типа "Счетчик" в Access?
Проблема: необходимо средствами ASP создать таблицу в Access Решение: использование ADOX Здесь можно посмотреть список доступных...

Счетчик в таблице tblUsers не обновляется
Здравствуйте. Столкнулся с такой проблемой. сразу начну с примера. Есть таблица tblusers id/Name 1/Admin 2/Moderator 3/User ...

4
5967 / 4543 / 1094
Регистрация: 29.08.2013
Сообщений: 28,161
Записей в блоге: 3
11.11.2017, 21:02
Цитата Сообщение от ATop Посмотреть сообщение
Почему предыдущий код не работал я так и не понял
объясните пожалуйста что делают эти 2 строки

Цитата Сообщение от ATop Посмотреть сообщение
query.ExecSQL;
query.Post;
0
107 / 13 / 7
Регистрация: 06.07.2013
Сообщений: 268
12.11.2017, 02:40  [ТС]
Ну пост точно сохраняет изменение сделаные в query в бд, а execSQL тут быть не должно) Я на уровне SQL запросов никогда не работал и пишу эти участки сейчас с помощью копи паста.

Добавлено через 10 минут
Мне всегда хватало LINQ и Entity.
0
5967 / 4543 / 1094
Регистрация: 29.08.2013
Сообщений: 28,161
Записей в блоге: 3
12.11.2017, 06:53
Лучший ответ Сообщение было отмечено ATop как решение

Решение

Цитата Сообщение от ATop Посмотреть сообщение
procedure TTypeRepository.UpdateObject(obj: TType);
var
* mySQL: string;
begin
* query.SQL.Clear();
* mySQL := 'SELECT * FROM Type WHERE Id = ' + IntToStr(obj.Id);
* query.SQL.Add(mySQL);
* query.Open;
query.Edit;
* query.FieldByName('Name').AsString := obj.Name;
query.ExecSQL;
* query.Post;
end
ИМХО
строка 8 - выполнился запрос
далее переводим НД в редактирование
меняем в квери значение поля
и опять выполняем SQL запрос. нужно посмотреть исходники - что происходит с НД.


Цитата Сообщение от ATop Посмотреть сообщение
Мне всегда хватало LINQ и Entity.
а я не смог это понять)
1
107 / 13 / 7
Регистрация: 06.07.2013
Сообщений: 268
12.11.2017, 07:28  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
ИМХО
Ну да я примерно так себе и представлял работу моего кода. Вот только удивился когда он перестал работать на с виду похожей таблице. Ну ничего страшного покурил ваш код который давали мне в другой теме, подрихтовал и он в принципе стал работать. Думаю переписать все методы работы с базой в SQL что-то не совсем понимаю поведение типа Query, а SQL кажется работает более предсказуемо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.11.2017, 07:28
Помогаю со студенческими работами здесь

Табуляция функции в цикле while-не обновляется счетчик
Работаю в Borland C++ Попробовал запустить программу-таблица выводится бесконечно с одними и теми же значениями. Пробовал запустить в...

Не обновляется таблица
Здравствуйте, прохожу этот курс http://www.youtube.com/watch?v=kWDVt6zpBbU, там по ссылке в описании есть примеры с четвертого урока,...

Не обновляется таблица в б.д
Можете подсказать, что не так. При нажатии кнопки save, p добавляется в коллекцию ListPerson, но в саму таблицу в б.д не добавляется. ...

Не обновляется таблица в БД MSSQL
Добрый день! Пытаюсь обновить значения в Таблице(в таблице 1 поле с названием), результата никакого. Через sqldatasource с oledb ...

Автоматически не обновляется таблица
Есть форма добавления записей в бд <div class="col-lg-7 col-sm-7" ng-controller="responseController"> ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru