![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.12.2011
Сообщений: 17
|
![]()
Уже много лет (сначала на С++6 и базой на Paradox 7, 9, затем на RadStudio C++ Builder2010 и базой на MySQL) у меня работает мое приложение по учету договоров с издателями на книги и контролю их реализации. Договор на книгу описывают две основные таблицы: Contract и Content, изданий – таблицы Edition и та же Content.
Для ускорения получения справок в таблицах договоров и изданий включены показатели объема книги и количества произведений в ней, хотя это и ведет к некоторой избыточности базы. В модулях предусмотрена возможность корректировки количества произведений и объема договора или издания при изменении его состава, для чего используется достаточно очевидная процедура типа Код:
Из-за переноса базы данных на другие СУБД и некоторых ошибок в начальном периоде эксплуатации, в записях о старых книгах встречаются ошибки объема и состава. Я решил просканировать таблицу Content и в цикле скорректировать поля Items и Volume в записях таблицы Contract следующей процедурой: Код:
Никак не могу понять, в чем может быть причина. В том же модуле, на несколько сотен строк кода раньше при регистрации новой записи таблицы Content эти же поля таблицы Contract корректируются без ошибок кодом, приведенным в начале сообщения. Помогите, кто может! Я проверял на двух PC под 32-разрядными Windows XP и Windows 7, использовал Rad Studio C++ Builder 2010, MySQL 5.5.25, mysql-connector-ODBC-5.1.6. Поля для Items – short, для Volume – Currency 5.2. Последний раз редактировалось Stilet; 19.11.2015 в 11:31. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А можно узнать, почему ты решил не прибегать в SQL?
И ремарка: BooksModule->ContractTbl->Post(); из цикла я бы вынес вообще. и ContractCanPost убрал бы.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 | |
Просветитель
Участник клуба
Регистрация: 26.12.2012
Сообщений: 1,844
|
![]() Цитата:
![]()
В разработке: воспроизводственный контур ИТ
|
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 23.12.2011
Сообщений: 17
|
![]()
[QUOTE=Stilet;1553718]А можно узнать, почему ты решил не прибегать в SQL?
Не хотелось писать SQL выражения UPDATE для каждого типа правки, тем более, что создание новых записей каждой таблицы через состояние INSERT компонента TADOTable и одиночная корректировка через состояние EDIT того же компонента идут без замечаний, а в цикле ничего не получается а относительно организации цикла это несущественно, так как я пробовал разные варианты организации, но это не помогло. Проверил также вместо ->Value использовать ->AsCurrency для объема и ->AsInteger для количества. Также не помогло. Я хотел бы понять, можно ли вообще использовать компонент TADOTable из закладки dbGo для корректировки базы, если да, то с какими ограничениями, если нет, то зачем этот компонент. В документации по MySQL и по C++ Builder я ничего найти не смог. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.12.2011
Сообщений: 17
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Групировка записи MYSQL | scalpel | PHP | 4 | 09.04.2013 23:06 |
Ошибка при записи в БД (MySQL) | xew | БД в Delphi | 4 | 30.03.2012 11:15 |
Ошибка при удалении записи из БД MySQL | DEamON_M | БД в Delphi | 6 | 25.02.2012 22:00 |
Добавление записи в MySql | Lokos | БД в Delphi | 1 | 23.06.2011 04:52 |
готовый код!нужна помошь в проверке(корректировке) | -ushёl- | Помощь студентам | 23 | 13.03.2009 17:02 |