powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
6 сообщений из 6, страница 1 из 1
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
    #39118645
abtat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня Windows XP и 7, MySQL 5.5.25 Win32, mysql-connector-odbe-5-1-6. Rad Studio C++ Builder 2010, База из дюжины таблиц.
Связь с базой через компонент TADOConnection из набора dbGo, для получения данных использую компоненты TADOQuery, в параметре SQL которого помещаю запрос, комбинирующий данные нескольких таблиц базы, и компонент TDateSource из набора Data Access. Все ОК. Для формирования новых записей и корректировки старых пытаюсь использовать компонент TADOTable из того же набора dbGo, в котором создаю необходимые lookup поля и TDateSource. Не могу понять, почему в одном модуле программы корректировка по схеме
BooksModule->ContractTbl->Active = true;
if (BooksModule->ContractTbl->Locate("ContractKey",
ObjectKey, SearchOptions))
{
BooksModule->ContractTbl->Edit();
BooksModule->ContractTblVolume->Value +=
BooksModule->ContentTblVolume->Value;
BooksModule->ContractTblItems->Value += 1;
BooksModule->ContractTbl->Post();
}

выполняется однократно после создания записи таблицы Content без замечаний, тогда как в другом модуле той же программы и с той же таблицей ContractTbl, но в цикле по всем записям таблицы Content, даже если между строками EDIT и POST убрать обе строки корректировки, в строке POST возникает ошибка типа "Не могу определить нужную строку, так как в некоторые поля внесены изменения". Но ведь состояние EDIT и предназначено для изменения некоторых полей. При работе той же программы на базе Paradox 9 использовались только BDE и компоненты TTable и таких проблем не возникало. При создании новой записи MySQL в той же таблице Content через состояние Insert компонента TADOTable проблем также не возникало. Очень не хочется писать SQL выражения для каждой корректировки таблиц базы.
Мои вопросы:
1. Можно ли корректировать строки MySQL таблицы изменяя данные TADOTable, установленной в состояние EDIT, в полях найденной строки, принадлежащих основной таблице (свойство TablName компонента), при этом Lookup поля изменениями не затрагиваются. Или для корректировки можно использовать только SQL выражения Update для компонента TADOQuery.
2. Если можно, то с какими ограничениями?
...
Рейтинг: 0 / 0
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
    #39118658
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос никоим боком не касается MySQL-сервера. Он понятия не имеет, что где-то там далеко существует некий компонент TADOTable и иже с им. У него принцип простой - ему запрос, он ответ. Всё. Так что вопрос в том, сумеет ли корректно компонент сформировать и отослать запрос на сервер. Но это явно не в этом форуме...
...
Рейтинг: 0 / 0
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
    #39123972
abtat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaВопрос никоим боком не касается MySQL-сервера. Он понятия не имеет, что где-то там далеко существует некий компонент TADOTable и иже с им. У него принцип простой - ему запрос, он ответ. Всё. Так что вопрос в том, сумеет ли корректно компонент сформировать и отослать запрос на сервер. Но это явно не в этом форуме...

Это как у врачей, Один лечит почки, другой - селезенку, а лечить больного комплексно никто не хочет.
...
Рейтинг: 0 / 0
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
    #39123982
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abtatа лечить больного комплексно бесплатно никто не хочет.вот так
...
Рейтинг: 0 / 0
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
    #39123991
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
abtatЭто как у врачей, Один лечит почки, другой - селезенку, а лечить больного комплексно никто не хочет.Нет, не так. В отличие от живого организма, в ИТ-системах возможно провести четкое разделение между подсистемами. MySQL, как уже было замечено выше, просто выполняет пришедший запрос либо, если его невозможно выполнить, выдает ошибку. Умеет ли dbGo генерировать такие запросы - я, например, понятия не имею, т.к. никогда его даже не видел. Полагаю, что логичнее было бы это спрашивать там, где могут быть те, кто этим dbGo пользовался. Если хотите - перенесу топик в подфорум по Delphi или C++. Delphi, думаю, было бы правильнее, т.к. вопросы касательно компонентов обсуждают обычно именно там.
...
Рейтинг: 0 / 0
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
    #39124641
abtat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Разобрался в тонкостях. Все работает. Могу написать детальные рекомендации.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]