<?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=70689&amp;view=findpost&amp;p=495826</guid>
        <pubDate>Fri, 29 Oct 2004 09:02:10 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495826</link>
        <description><![CDATA[StavR: Не совсем согласен что тема по SQL SErver 2000 так как проблема в реализации на С&#33;&#33;&#33; ;) <br>
НУ да ладно&#33;<br>
<br>
<strong class='tag-b'>GreenElf</strong> ты полностью прав&#33;<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
ТОгда где описание <br>
CFieldParam::outputColumn и полей данных?<br>
И еще: в конструкторе класса нужно корректно определить m_nFields<br>
</div></div><br>
<br>
дело в том что у меня процедура не возвращает полей данных m_nFields=0,  в этом и ошибка&#33;<br>
Для этого случая надо сделать так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">void StoredProcedure::Move( long nRows, WORD wFetchType )</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// Protection so that if the procedure returns no result sets, no </div><div class="code_line">&nbsp;&nbsp; &nbsp;// fetch operations are attempted.</div><div class="code_line">&nbsp;&nbsp; &nbsp;if (m_nFields)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;CRecordset::Move(nRows, wFetchType);</div><div class="code_line">&nbsp;&nbsp; &nbsp;else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_bBOF = m_bEOF = TRUE;</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
Извеняюсь что сразу не обратил на это внимания&#33;<br>
<strong class='tag-b'>GreenElf</strong> +1 за правильное направление&#33;&#33;&#33;]]></description>
        <author>StavR</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495794</guid>
        <pubDate>Fri, 29 Oct 2004 08:44:10 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495794</link>
        <description><![CDATA[GreenElf: Сорри, ступнячил опять.<br>
ТОгда где описание <br>
CFieldParam::outputColumn и полей данных?<br>
И еще: в конструкторе класса нужно корректно определить m_nFields<br>
Примерно так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">void RecordProcedure::DoFieldExchange(CFieldExchange* pFX)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;pFX-&#62;SetFieldType(CFieldExchange::inputParam);//сменил на инпут</div><div class="code_line">&nbsp;&nbsp; &nbsp;RFX_Long(pFX, _T(&quot;[@n]&quot;), n_n);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;pFX-&#62;SetFieldType(CFieldExchange::outputColumn);</div><div class="code_line">&nbsp;&nbsp; &nbsp;RFX_Long(pFX, _T(&quot;Result&quot;), m_nResult);</div><div class="code_line">}</div></ol></div></div></div></div><br>
Извини, с MFC у меня не супер.<br>
<br>
Да , и комментарии тоже...]]></description>
        <author>GreenElf</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495778</guid>
        <pubDate>Fri, 29 Oct 2004 08:34:15 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495778</link>
        <description><![CDATA[Leprecon: <div class="tag-mod"><div class="tag-mod__prefix">M</div><div class="tag-mod__body">Тема перенесена из C/C++ -> <a class='tag-url' href='http&#58;//forum.sources.ru/index.php?showforum=4' target='_blank'>Visual C++ / MFC / WTL / WinAPI</a></div></div>]]></description>
        <author>Leprecon</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495750</guid>
        <pubDate>Fri, 29 Oct 2004 08:19:51 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495750</link>
        <description><![CDATA[StavR: Что значит как определена? Код описан выше&#33; &lt;_&lt; <br><br>Так что ни у кого нет больше соображений :blink: ????]]></description>
        <author>StavR</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495073</guid>
        <pubDate>Thu, 28 Oct 2004 13:30:41 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495073</link>
        <description><![CDATA[GreenElf: У тебя DoFieldExchange как определена? Покажи код, если можно.]]></description>
        <author>GreenElf</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495058</guid>
        <pubDate>Thu, 28 Oct 2004 13:16:27 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495058</link>
        <description><![CDATA[StavR: Все одно и тоже: &quot;Ни один столбец не был связан до вызова SQLFatchScroll/SQLExtendedFetch&quot;  :&#39;(]]></description>
        <author>StavR</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495039</guid>
        <pubDate>Thu, 28 Oct 2004 13:08:01 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=495039</link>
        <description><![CDATA[GreenElf: Ой, блин, накосячил как обычно. Вот так надо было...имя полю присвоить забыл.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">CREATE PROCEDURE [Ginetic] </div><div class="code_line">@n &nbsp;int</div><div class="code_line">AS</div><div class="code_line">BEGIN</div><div class="code_line">DECLARE @STR nvarchar(50)</div><div class="code_line">SET @STR=user</div><div class="code_line">if @STR=&#39;Operator&#39; SELECT 1 AS Result</div><div class="code_line">&nbsp;&nbsp;else &nbsp; SELECT 2 AS Result</div><div class="code_line">END</div><div class="code_line">GO</div></ol></div></div></div></div><br>
А вообще говоря, хранимки через EXEC вызываются...насколько мои мозги помнят. Ну, да это не существенно.]]></description>
        <author>GreenElf</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=494992</guid>
        <pubDate>Thu, 28 Oct 2004 12:14:45 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=494992</link>
        <description><![CDATA[StavR: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '><br>
И во вторых, наверное, так правильнее будет<br>
pro.Open(CRecordset::snapshot,&quot;{EXEC [Ginetic](?)}&quot;);<br>
</div></div><br>
ну это врядли правильно&#33;<br>
<br>
Хорошо я сделал запрос как предлагает <strong class='tag-b'>GreenElf</strong>, при этом поменял:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">void RecordProcedure::DoFieldExchange(CFieldExchange* pFX)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;//{{AFX_FIELD_MAP(RecordProcedure)</div><div class="code_line">&nbsp;&nbsp; &nbsp;pFX-&#62;SetFieldType(CFieldExchange::inputParam);//сменил на инпут</div><div class="code_line">&nbsp;&nbsp; &nbsp;RFX_Long(pFX, _T(&quot;[@n]&quot;), n_n);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//}}AFX_FIELD_MAP</div><div class="code_line">}</div></ol></div></div></div></div><br>
и<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">pro.Open(CRecordset::snapshot,&quot;{CALL [Ginetic](?)}&quot;);</div></ol></div></div></div></div><br>
<br>
Опять ошибка:&quot;Ни один столбец не связан до вызова SQLFatchScroll/SQLExtendedFetch&quot; <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2004-10-28T12:40:05+00:00">28.10.04, 12:40</time></span></span><br>
НЕ уж-то никто из присутствующих с БД не работает? :blink:]]></description>
        <author>StavR</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=494971</guid>
        <pubDate>Thu, 28 Oct 2004 11:59:21 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=494971</link>
        <description><![CDATA[GreenElf: Во первых, я бы сделал так<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">CREATE PROCEDURE [Ginetic] </div><div class="code_line">@n &nbsp;int</div><div class="code_line">AS</div><div class="code_line">BEGIN</div><div class="code_line">DECLARE @STR nvarchar(50)</div><div class="code_line">SET @STR=user</div><div class="code_line">if @STR=&#39;Operator&#39; SELECT 1</div><div class="code_line">&nbsp;&nbsp;else &nbsp; SELECT 2</div><div class="code_line">END</div><div class="code_line">GO</div></ol></div></div></div></div><br>
И во вторых, наверное, так правильнее будет<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">pro.Open(CRecordset::snapshot,&quot;{EXEC [Ginetic](?)}&quot;);</div></ol></div></div></div></div>]]></description>
        <author>GreenElf</author>
        <category>Базы данных: SQL</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=494917</guid>
        <pubDate>Thu, 28 Oct 2004 11:26:03 +0000</pubDate>
        <title>Хранимая процедура</title>
        <link>https://forum.sources.ru/index.php?showtopic=70689&amp;view=findpost&amp;p=494917</link>
        <description><![CDATA[StavR: Знаю что тема уже забитая и нашел много примеров по работе с ХП, однако, никак не получется реализовать&#33; Помагите найти ошибку плиз :( &#33;<br>
ИТАК простая ХП на SQL Server 2000 c выходным параметром:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">CREATE PROCEDURE [Ginetic] </div><div class="code_line">@n &nbsp;int &nbsp;OUTPUT</div><div class="code_line">AS</div><div class="code_line">DECLARE @STR nvarchar(50)</div><div class="code_line">SET @STR=user</div><div class="code_line">if @STR=&#39;Operator&#39; set @n=1</div><div class="code_line">&nbsp;&nbsp;else &nbsp;set @n=2</div><div class="code_line">GO</div></ol></div></div></div></div><br>
<br>
Подключаюсь через Recordset:<br>
.h файл<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">class RecordProcedure : public CRecordset</div><div class="code_line">{</div><div class="code_line">public:</div><div class="code_line">&nbsp;&nbsp; &nbsp;RecordProcedure(CDatabase* pDatabase = NULL);</div><div class="code_line">&nbsp;&nbsp; &nbsp;DECLARE_DYNAMIC(RecordProcedure)</div><div class="code_line">&nbsp;</div><div class="code_line">// Field/Param Data</div><div class="code_line">&nbsp;&nbsp; &nbsp;//{{AFX_FIELD(RecordProcedure, CRecordset)</div><div class="code_line">&nbsp;&nbsp; &nbsp;long n_n;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//}}AFX_FIELD</div><div class="code_line">...</div></ol></div></div></div></div><br>
.cpp файл<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">RecordProcedure::RecordProcedure(CDatabase* pdb)</div><div class="code_line">&nbsp;&nbsp; &nbsp;: CRecordset(pdb)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;//{{AFX_FIELD_INIT(RecordProcedure)</div><div class="code_line">&nbsp;&nbsp; &nbsp;n_n = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;m_nFields = 0;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//}}AFX_FIELD_INIT</div><div class="code_line">&nbsp;&nbsp; &nbsp;m_nParams = 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp;m_nDefaultType = snapshot;</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">CString RecordProcedure::GetDefaultConnect()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;return _T(&quot;ODBC;DSN=Generic&quot;);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">CString RecordProcedure::GetDefaultSQL()</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;return _T(&quot;&quot;);</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">void RecordProcedure::DoFieldExchange(CFieldExchange* pFX)</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;//{{AFX_FIELD_MAP(RecordProcedure)</div><div class="code_line">&nbsp;&nbsp; &nbsp;pFX-&#62;SetFieldType(CFieldExchange::inoutParam);</div><div class="code_line">&nbsp;&nbsp; &nbsp;RFX_Long(pFX, _T(&quot;[@n]&quot;), n_n);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;//}}AFX_FIELD_MAP</div><div class="code_line">}</div></ol></div></div></div></div><br>
Вызываю:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;</div><div class="code_line">RecordProcedure pro;</div><div class="code_line">pro.n_n=1;</div><div class="code_line">pro.Open(CRecordset::snapshot,&quot;{?=CALL [Ginetic](?)}&quot;);</div><div class="code_line">int n=pro.n_n;</div></ol></div></div></div></div><br>
<br>
Выдает сообщение:НЕПРАВИЛЬНОЕ ПОЛЕ COUNT ИЛИ ОШИБКА СИНТАКСИСА&#33;<br>
<br>
В чем я ошибся? :wall:]]></description>
        <author>StavR</author>
        <category>Базы данных: SQL</category>
      </item>
	
      </channel>
      </rss>
	