Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 09.01.2017, 12:55   #1
abtat
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 14
Репутация: 10
По умолчанию Не удается понять как корректировать таблицу в СУБД 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 не найден.
Если кто встречался с подобной ситуацией и смог ее преодолеть, помогите!
abtat вне форума   Ответить с цитированием
Старый 09.01.2017, 13:38   #2
Аватар
Модератор
Заслуженный модератор
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Адрес: Северодонецк.ua
Сообщений: 16,668
Репутация: 5851
По умолчанию

А чего такого символ \ значит в тексте запроса? По идее \n . Как ниже не судьба? Просто догадка, в билдере в основном не шарю ))
Код:

String SQLTextUV = String ("UPDATE Contract SET ContractVolume = :ContrVolume WHERE ContractKey = :ContrKey");

__________________
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 09.01.2017 в 14:10.
Аватар вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа программы в x86\64 Windows вопрос g0w7p Общие вопросы C/C++ 3 01.03.2016 16:43
C++ Builder + MYSQL Миграция с XP на Windows 7 abtat C/C++ Базы данных 1 12.12.2014 22:44
Excel 2010 x86 Camelot_2012 Microsoft Office Excel 6 10.11.2014 15: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 15:10




00:56.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru