<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3653810</guid>
        <pubDate>Wed, 17 Feb 2016 20:17:44 +0000</pubDate>
        <title>Корректировка таблицы в базе на MySQL через компонент С++ TADOTable</title>
        <link>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3653810</link>
        <description><![CDATA[#SI#: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3653798'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>abtat &#064; <time class="tag-quote__quoted-time" datetime="2016-02-17T21:58:03+03:00">17.02.16, 18:58</time></span><div class='quote '>Лишние Тэги пихать в мой текст сообщения я смысла не вижу</div></div>Правила читай. А по поводу всего остального - не вижу смысла продолжать дискуссию. :whistle: Извиняй, если что...]]></description>
        <author>#SI#</author>
        <category>C/C++: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3653798</guid>
        <pubDate>Wed, 17 Feb 2016 18:58:03 +0000</pubDate>
        <title>Корректировка таблицы в базе на MySQL через компонент С++ TADOTable</title>
        <link>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3653798</link>
        <description><![CDATA[abtat: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3653513'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#SI# &#064; <time class="tag-quote__quoted-time" datetime="2016-02-16T19:48:21+00:00">16.02.16, 19:48</time></span><div class='quote '> - накой ляд ты динамически создаёшь компоненты? </div></div><br>
Я пробовал и статические и и динамические.<br>
Я думаю, что ты уж зря зубоскалишь. <br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3653513'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#SI# &#064; <time class="tag-quote__quoted-time" datetime="2016-02-16T19:48:21+00:00">16.02.16, 19:48</time></span><div class='quote '>Второе - научись пользоваться кнопкой CODE.</div></div><br>
Лишние Тэги пихать в мой текст сообщения я смысла не вижу.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3653513'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#SI# &#064; <time class="tag-quote__quoted-time" datetime="2016-02-16T19:48:21+00:00">16.02.16, 19:48</time></span><div class='quote '>- с параметрами просто кошмар&#33; Для ТВОИХ данных они вообще не нужны&#33;</div></div><br>
Если ты предложишь, как править разные записи в таблице СУБД без использования параметров, честь тебе и хвала. я о таком не слышал. С использованием статических компонент параметры нужны не менее.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3653513'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#SI# &#064; <time class="tag-quote__quoted-time" datetime="2016-02-16T19:48:21+00:00">16.02.16, 19:48</time></span><div class='quote '> Телепаты в отпуске - что ты на самом деле туда подставлял, никому, кроме тебя, неведомо.</div></div><br>
Если я создал в таблице колонку smallint то можно предположить, что выбираю я для аргументов небольшие числа. В моем эксперимента - от 1 до 10. Для колонки DECIMAL(5,2) выбирались числа до 10 с 2 дробными знаками.  Кстати, я написал, что результаты всех выполнений каждого из двух представленных запросов получались правильными, хотя иногда и после сообщения об ошибке и ответа &quot;Continue&quot;, значит аргументы были соответствующие структуре таблицы. Ты мог бы это предположить.  <br>
Так что, кончай хохмить&#33; Если есть дельные мысли. я их с радостью прочитаю, если их нет, то зачем отвечать.]]></description>
        <author>abtat</author>
        <category>C/C++: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3653513</guid>
        <pubDate>Tue, 16 Feb 2016 19:48:21 +0000</pubDate>
        <title>Корректировка таблицы в базе на MySQL через компонент С++ TADOTable</title>
        <link>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3653513</link>
        <description><![CDATA[#SI#: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3653482'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>abtat &#064; <time class="tag-quote__quoted-time" datetime="2016-02-16T17:52:35+00:00">16.02.16, 17:52</time></span><div class='quote '>Я попробовал промоделировать ситуацию перехода с ХР на Win7</div></div>Я с ХР переехал на семёрку, а потом и на восьмёрку без всякого моделирования. Это первое.<br>
Второе - научись пользоваться кнопкой CODE. Третье - накой ляд ты динамически создаёшь компоненты? Четвёртое - с параметрами просто кошмар&#33; Для ТВОИХ данных они вообще не нужны&#33;<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3653482'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>abtat &#064; <time class="tag-quote__quoted-time" datetime="2016-02-16T17:52:35+00:00">16.02.16, 17:52</time></span><div class='quote '>Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом</div></div>Телепаты в отпуске - что ты на самом деле туда подставлял, никому, кроме тебя, неведомо.]]></description>
        <author>#SI#</author>
        <category>C/C++: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3653482</guid>
        <pubDate>Tue, 16 Feb 2016 17:52:35 +0000</pubDate>
        <title>Корректировка таблицы в базе на MySQL через компонент С++ TADOTable</title>
        <link>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3653482</link>
        <description><![CDATA[abtat: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3639209'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>#SI# &#064; <time class="tag-quote__quoted-time" datetime="2015-12-03T09:40:49+00:00">03.12.15, 09:40</time></span><div class='quote '><div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Забудь про табле НАВСЕГДА&#33; Пользуйся для редактирования TADOQuery или TADOCommand. </div></div></div></div><br>
Я попробовал промоделировать ситуацию перехода с ХР на Win7 на малнькой тестовой программе, две процедуры из которой приведены ниже.<br>
<br>
//---------------------------------------------------------------------------<br>
void __fastcall TForm1::BookByAuthorBtnClick(TObject *Sender)<br>
	{<br>
	TADOQuery* ADOQuery1;<br>
	ADOQuery1 = new TADOQuery(this);<br>
	String SQL1 =<br>
		&quot;SELECT * FROM Book WHERE AuthorNbr = :ANbr&quot;;<br>
	ADOQuery1-&gt;Connection = ADOConn;<br>
	ADOQuery1-&gt;SQL-&gt;Clear();<br>
	ADOQuery1-&gt;SQL-&gt;Add(SQL1);<br>
	Param1 = ADOQuery1-&gt;Parameters-&gt;ParamByName(&quot;ANbr&quot;);<br>
	Param1-&gt;DataType = ftSmallint;<br>
	Param1-&gt;Value = StrToInt(AuthorKeyEdit-&gt;Text);<br>
	ADOQuery1-&gt;Active = true;<br>
	DataSrce2-&gt;DataSet = ADOQuery1;<br>
	}<br>
<br>
//---------------------------------------------------------------------------<br>
void __fastcall TForm1::UpdBookBtnClick(TObject *Sender)<br>
	{<br>
	TADOQuery* ADOQuery2;<br>
	ADOQuery2 = new TADOQuery(this);<br>
	ADOQuery2-&gt;Connection = ADOConn;<br>
	String SQL2 =<br>
		&quot;UPDATE Book &#092;<br>
		 SET NbrOfEditions = :ENbr, Volume = :Vol &#092;<br>
		 WHERE BookNbr = :BNbr2&quot;;<br>
	ADOQuery2-&gt;SQL-&gt;Clear();<br>
	ADOQuery2-&gt;SQL-&gt;Add(SQL2);<br>
	Param3 = ADOQuery2-&gt;Parameters-&gt;ParamByName(&quot;ENbr&quot;);<br>
	Param3-&gt;DataType = ftSmallint;<br>
	Param3-&gt;Value = StrToInt(NbrOfEditionsEdit-&gt;Text);<br>
	Param4 = ADOQuery2-&gt;Parameters-&gt;ParamByName(&quot;Vol&quot;);<br>
	Param4-&gt;DataType = ftFloat;<br>
	Param4-&gt;Value = StrToFloat(BookVolumeEdit-&gt;Text);<br>
	Param5 = ADOQuery2-&gt;Parameters-&gt;ParamByName(&quot;BNbr2&quot;);<br>
	Param5-&gt;DataType = ftSmallint;<br>
	Param5-&gt;Value = StrToInt(BookKeyEdit-&gt;Text);<br>
	ADOQuery2-&gt;Prepared = true;<br>
	ADOQuery2-&gt;ExecSQL();<br>
	}<br>
<br>
Таблица Book была создана следующим SQL скриптом:<br>
<br>
CREATE TABLE `book` (<br>
  `BookNbr` SMALLINT(6) NOT NULL AUTO_INCREMENT,<br>
  `BookName` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL,<br>
  `AuthorNbr` SMALLINT(6) DEFAULT NULL,<br>
  `Volume` DECIMAL(5,2) DEFAULT NULL,<br>
  `FirstPub` SMALLINT(6) UNSIGNED DEFAULT NULL,<br>
  `NbrOfEditions` SMALLINT(6) DEFAULT NULL,<br>
  `Comment` VARCHAR(60) COLLATE utf8_general_ci DEFAULT NULL,<br>
  PRIMARY KEY (`BookNbr`) COMMENT &#39;&#39;<br>
)ENGINE=InnoDB<br>
 <br>
Запросы были написаны в соответствие с рекомендациями из статьи<br>
ms-help://embatcadero.rs2010/codesamples/ADOQuery_(C++).html и при работе в Windows XP все работало без аномалий.<br>
После переноса задачи на машину с Windows 7, оба запроса выполняются правильно, но, по крайней мере, в половине случаев при исполнении каждого запроса происходит остановка и выдается сообщение класса EOleException: «Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом». Если в окне сообщения нажать кнопку “Continue”, то запрос выполняется и его результат правильный. Это означает, что аргументы имели правильное значение, а сообщение об ошибке было ложным  Даже при повторении запроса без изменения аргументов остановки то происходят, то нет. В этой же среде Windows XP компиляция очень большой С++ Builder программы и ее исполнение при работе с той же базой при работе с данными через компоненту TADOTable происходят без аномалий. Что бы это могло означать и как от такой остановки избавиться?  <br>
У меня Windows 7 (32 bit), MySQL 5.5.25 и MySQL ODBC Connector 5.3.4-Win32]]></description>
        <author>abtat</author>
        <category>C/C++: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3645504</guid>
        <pubDate>Tue, 05 Jan 2016 09:56:25 +0000</pubDate>
        <title>Корректировка таблицы в базе на MySQL через компонент С++ TADOTable</title>
        <link>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3645504</link>
        <description><![CDATA[Bas: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3638898'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>abtat &#064; <time class="tag-quote__quoted-time" datetime="2015-12-02T11:52:37+00:00">02.12.15, 11:52</time></span><div class='quote '>&quot;Не могу определить нужную строку, так как в некоторые поля внесены изменения&quot;</div></div><br>
<a class='tag-url' href='http://www.sources.ru/delphi/delphi_ado_cursors.shtml' target='_blank'>Курсоры в ADO </a>]]></description>
        <author>Bas</author>
        <category>C/C++: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3639209</guid>
        <pubDate>Thu, 03 Dec 2015 09:40:49 +0000</pubDate>
        <title>Корректировка таблицы в базе на MySQL через компонент С++ TADOTable</title>
        <link>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3639209</link>
        <description><![CDATA[#SI#: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3639159'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>abtat &#064; <time class="tag-quote__quoted-time" datetime="2015-12-03T07:23:57+00:00">03.12.15, 07:23</time></span><div class='quote '>он до выполнения POST не меняется. </div></div>Первичный ключ не должен меняться НИКОГДА&#33;<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3638898'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>abtat &#064; <time class="tag-quote__quoted-time" datetime="2015-12-02T11:52:37+00:00">02.12.15, 11:52</time></span><div class='quote '>для получения данных использую компоненты TADOQuery, в параметре SQL которого помещаю запрос, комбинирующий данные нескольких таблиц базы</div></div>ОК&#33; Выходит, что такое SQL - знаешь.<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3638898'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>abtat &#064; <time class="tag-quote__quoted-time" datetime="2015-12-02T11:52:37+00:00">02.12.15, 11:52</time></span><div class='quote '>Для формирования новых записей и корректировки старых пытаюсь использовать компонент TADOTable </div></div>Забудь про табле НАВСЕГДА&#33; Пользуйся для редактирования TADOQuery или TADOCommand.<br>
И учти, что если первый Query даёт выборку данных, то в него должен входить первичный ключ таблицы, в которой ты хочешь редактировать и этот ключ ты должен передать в Query/Command в параметре WHERE&#33;]]></description>
        <author>#SI#</author>
        <category>C/C++: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3639159</guid>
        <pubDate>Thu, 03 Dec 2015 07:23:57 +0000</pubDate>
        <title>Корректировка таблицы в базе на MySQL через компонент С++ TADOTable</title>
        <link>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3639159</link>
        <description><![CDATA[abtat: Первичный ключ - ContractKey, по нему  Locate находит корректируемую запись и он до выполнения POST не меняется.]]></description>
        <author>abtat</author>
        <category>C/C++: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3639060</guid>
        <pubDate>Wed, 02 Dec 2015 18:23:19 +0000</pubDate>
        <title>Корректировка таблицы в базе на MySQL через компонент С++ TADOTable</title>
        <link>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3639060</link>
        <description><![CDATA[#SI#: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=407088&view=findpost&p=3638898'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>abtat &#064; <time class="tag-quote__quoted-time" datetime="2015-12-02T11:52:37+00:00">02.12.15, 11:52</time></span><div class='quote '>возникает ошибка типа &quot;Не могу определить нужную строку, так как в некоторые поля внесены изменения&quot;</div></div>Первичный ключ есть?]]></description>
        <author>#SI#</author>
        <category>C/C++: Базы данных</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3638898</guid>
        <pubDate>Wed, 02 Dec 2015 11:52:37 +0000</pubDate>
        <title>Корректировка таблицы в базе на MySQL через компонент С++ TADOTable</title>
        <link>https://forum.sources.ru/index.php?showtopic=407088&amp;view=findpost&amp;p=3638898</link>
        <description><![CDATA[abtat: У меня Windows XP и 7, MySQL 5.5.25 Win32, mysql-connector-odbe-5-1-6. Rad Studio C++ Builder 2010, База из дюжины таблиц. <br>Связь с базой через компонент TADOConnection из набора dbGo, для получения данных использую компоненты TADOQuery, в параметре  SQL которого помещаю запрос, комбинирующий данные нескольких таблиц базы, и компонент TDateSource из набора Data Access. Все ОК. Для формирования новых записей и корректировки старых пытаюсь использовать компонент TADOTable из того же набора dbGo, в котором создаю необходимые lookup поля и TDateSource. Не могу понять, почему в одном модуле программы корректировка по схеме <br>		BooksModule-&gt;ContractTbl-&gt;Active = true;<br>		if (BooksModule-&gt;ContractTbl-&gt;Locate(&quot;ContractKey&quot;,<br>			ObjectKey, SearchOptions))<br>			{<br>			BooksModule-&gt;ContractTbl-&gt;Edit();<br>			BooksModule-&gt;ContractTblFactTirage-&gt;Value +=<br>				BooksModule-&gt;EditionTblEditionTirage-&gt;Value;<br>			BooksModule-&gt;ContractTblBooksRecvd-&gt;Value +=<br>				BooksModule-&gt;EditionTblBookRecvd-&gt;Value;<br>			BooksModule-&gt;ContractTbl-&gt;Post();<br>			}<br><br>выполняется без замечаний, тогда как в другом модуле той же программы и с той же таблицей ContractTbl, даже если между строками EDIT и POST убрать все строки корректировки, в строке POST возникает ошибка типа &quot;Не могу определить нужную строку, так как в некоторые поля внесены изменения&quot;. При работе той же программы на базе Paradox 9 использовались только компоненты TTable и таких проблем не возникало. При создании новой записи в той же таблицы через состояние Insert компонента TADOTable проблем также не возникало. Очень не хочется писать SQL выражения для каждой корректировки таблиц базы.<br>Мои вопросы:<br>1. Можно ли корректировать MySQL таблицы изменяя данные в полях TADOTable, относящихся к той же таблице (свойство TablName компонента), (Lookup поля изменениями не затрагиваются) или для корректировки можно использовать только SQL выражения Update для компонента TADOQuery.<br>2. Если можно, то с какими ограничениями?]]></description>
        <author>abtat</author>
        <category>C/C++: Базы данных</category>
      </item>
	
      </channel>
      </rss>
	