|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.01.2017, 11:55 | #1 |
Пользователь
Регистрация: 23.12.2011
Сообщений: 17
|
Не удается понять как корректировать таблицу в СУБД MySQL 5.5 из программы на С++ Builder 2010 в среде Windows 7 (x86).
Не удается понять как корректировать таблицу в СУБД MySQL 5/5 из программы на С++ Builder 2010 в среде Windows 7 (x86).
Соединение TADOConnection выполнено, компонент доступа TADOTable активен. и таблица Contract базы данных доступна и просматривается через компоненты TDataSource и TDBGrid. Таблица Contract имеет в начальной части следующую структуру: ContractKey Smallint 6 0 ContractNbr Varchar 10 ContractDate Date ContractName Varchar 60 ContractVolume Decimal 5 2 ContractItems Smallint 6 0 Она содержит несколько сотен записей. С каждой записью связаны одна или несколько строк таблицы Content, содержащих состав контракта в полях Item и Volume. Проблемная процедура накапливает суммы полей Items и Volume по каждому контракту и должна в цикле внести полученные данные в соответствующие записи таблицы Contract. Для выполнения этого я пытаюсь использовать запрос, составленный по рекомендациям на форуме: TParameter* Param1; TParameter* Param2; TADOQuery* ADOQuery1; String SQLTextUV = String ( "UPDATE Contract \ SET \ ContractVolume = :ContrVolume \ WHERE \ ContractKey = :ContrKey"); ADOQuery1 = new TADOQuery(this); ADOQuery1->Connection = BooksModule->ADOConnection1; ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add(SQLTextUV); Param2 = ADOQuery1->Parameters->ParamByName("ContrKey"); Param2->DataType = ftInteger; Param1 = ADOQuery1->Parameters->ParamByName("ContrVolume"); Param1->DataType = ftCurrency; Если проходить эту часть программы по шагам, то при выполнении строки ADOQuery1->SQL->Add(SQLTextUV) возникает ошибка: «Exception class EOLEException with message: ‘Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом’» Сообщение непонятно, так на этой строке ни тип аргументов, ни их значение еще не определены и известны только их имена. Если перенести отмеченную строку в конец этого фрагмента, то при исполнении строки: Param2 = ADOQuery1->Parameters->ParamByName("ContrKey"); возникает естественное сообщение, что параметр ContrKey не найден. Если кто встречался с подобной ситуацией и смог ее преодолеть, помогите! |
09.01.2017, 12:38 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А чего такого символ \ значит в тексте запроса? По идее \n . Как ниже не судьба? Просто догадка, в билдере в основном не шарю ))
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 09.01.2017 в 13:10. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа программы в x86\64 Windows вопрос | g0w7p | Общие вопросы C/C++ | 3 | 01.03.2016 15:43 |
C++ Builder + MYSQL Миграция с XP на Windows 7 | abtat | C/C++ Базы данных | 1 | 12.12.2014 21:44 |
Excel 2010 x86 | Camelot_2012 | Microsoft Office Excel | 6 | 10.11.2014 14:10 |
совместим ли Microsoft Office Professional Plus 2010 Beta (x86) с Windows Xp Professional версия 2002 Ser | syperman | Microsoft Office Word | 1 | 17.10.2010 17:00 |
как создать субд в Delphi для работы с MySqL | Savl | БД в Delphi | 1 | 12.03.2008 14:10 |