|
|
|
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
|
|||
|---|---|---|---|
|
#18+
У меня 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. Если можно, то с какими ограничениями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 17:12:15 |
|
||
|
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
|
|||
|---|---|---|---|
|
#18+
Вопрос никоим боком не касается MySQL-сервера. Он понятия не имеет, что где-то там далеко существует некий компонент TADOTable и иже с им. У него принцип простой - ему запрос, он ответ. Всё. Так что вопрос в том, сумеет ли корректно компонент сформировать и отослать запрос на сервер. Но это явно не в этом форуме... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 17:29:27 |
|
||
|
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
|
|||
|---|---|---|---|
|
#18+
AkinaВопрос никоим боком не касается MySQL-сервера. Он понятия не имеет, что где-то там далеко существует некий компонент TADOTable и иже с им. У него принцип простой - ему запрос, он ответ. Всё. Так что вопрос в том, сумеет ли корректно компонент сформировать и отослать запрос на сервер. Но это явно не в этом форуме... Это как у врачей, Один лечит почки, другой - селезенку, а лечить больного комплексно никто не хочет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2015, 12:03:43 |
|
||
|
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
|
|||
|---|---|---|---|
|
#18+
abtatа лечить больного комплексно бесплатно никто не хочет.вот так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2015, 12:08:48 |
|
||
|
Можно ли корректировать таблицу MySQL из C++ Builder через компонент TADOTable набора dbGo
|
|||
|---|---|---|---|
|
#18+
abtatЭто как у врачей, Один лечит почки, другой - селезенку, а лечить больного комплексно никто не хочет.Нет, не так. В отличие от живого организма, в ИТ-системах возможно провести четкое разделение между подсистемами. MySQL, как уже было замечено выше, просто выполняет пришедший запрос либо, если его невозможно выполнить, выдает ошибку. Умеет ли dbGo генерировать такие запросы - я, например, понятия не имею, т.к. никогда его даже не видел. Полагаю, что логичнее было бы это спрашивать там, где могут быть те, кто этим dbGo пользовался. Если хотите - перенесу топик в подфорум по Delphi или C++. Delphi, думаю, было бы правильнее, т.к. вопросы касательно компонентов обсуждают обычно именно там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2015, 12:17:36 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39123991&tid=1832391]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
136ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 423ms |

| 0 / 0 |
