<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; VBS + ODBC: Количество полей в запросе]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9656</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9656&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «VBS + ODBC: Количество полей в запросе».]]></description>
		<lastBuildDate>Mon, 02 Jun 2014 04:11:02 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83581#p83581</link>
			<description><![CDATA[<p>/me испытывает стыд и позор.</p><p>Написал кучу текста для оправдания поста, стёр, т.к. нет оправдания.</p><p><strong>Res.Fields.Count</strong> - то, что и требуется.<br />Спасибо всем большое.</p><p>P.s. Отдельное спасибо за RecordCount</p>]]></description>
			<author><![CDATA[null@example.com (MikeSh)]]></author>
			<pubDate>Mon, 02 Jun 2014 04:11:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83581#p83581</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83483#p83483</link>
			<description><![CDATA[<div class="quotebox"><cite>MikeSh пишет:</cite><blockquote><div class="quotebox"><cite>omegastripes пишет:</cite><blockquote><p><strong>Res.Fields.Count</strong> возвращает количество полей (&quot;столбцов&quot;), разве не так?</p></blockquote></div><p>В том то и дело, что это возвращает количество строк, а не столбцов.</p></blockquote></div><p>Явно ошибаетесь.</p><p><strong>Res.Fields.Count</strong> - возвращает кол-во <span class="bbu">полей</span>.</p><p><strong>Res.RecordCount</strong> - возвращает кол-во полученных в результате запроса <span class="bbu">записей</span>.</p><p><strong>RecordCount</strong> может возвращать -1 в случае если курсор связи с базой данных <span class="bbu">серверный</span>. И это логично. При этом клиентская сторона не знает сколько записей вернёт запрос и обращение к следующей записи по <strong>MoveNext</strong> инициирует новый запрос к БД. В случае если курсор связи с БД клиентский, то в результате запроса все записи выгружаются на клиента и при этом RecordCount возвращает реальное кол-во полученных записей. Есть ещё условия при которых RecordCount возвращает -1, но об этом лучше почитать тут - <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms676701(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library … s.85).aspx</a></p><br /><p>P.S В базе данных нет строк и столбцов. ) Есть записи и поля этих записей.</p>]]></description>
			<author><![CDATA[null@example.com (Xameleon)]]></author>
			<pubDate>Thu, 29 May 2014 12:11:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83483#p83483</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83463#p83463</link>
			<description><![CDATA[<p>Сперва всё же проверьте:</p><div class="codebox"><pre><code>Set Catalog.ActiveConnection = FB  &#039; следом
MsgBox Catalog.Views.Count   &#039; результат, отличный от нуля?</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Thu, 29 May 2014 06:30:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83463#p83463</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83462#p83462</link>
			<description><![CDATA[<p>Хотелось бы по проще...<br />Неужели никто такой мыслью не заморачивался?</p>]]></description>
			<author><![CDATA[null@example.com (MikeSh)]]></author>
			<pubDate>Thu, 29 May 2014 06:11:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83462#p83462</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83460#p83460</link>
			<description><![CDATA[<p>Метод Append добавляет в коллекцию Views данные в соответствии с запросом.<br />Только надо сперва проверить как изменится Catalog.Views.Count после добавления нового представления. Если оно меняется, то можно вычислить разницу между исходным и суммированным числом столбцов. Хотя, вероятно, есть способ попроще.</p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Thu, 29 May 2014 05:16:43 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83460#p83460</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83459#p83459</link>
			<description><![CDATA[<div class="quotebox"><cite>Flasher пишет:</cite><blockquote><p>Не уверен, но можно попробовать перед циклом это добавить:<br /></p><div class="codebox"><pre><code>Set Comm = CreateObject(&quot;ADODB.Command&quot;)
Comm.CommandText = Query
Catalog.Views.Append &quot;NewQuery&quot;, Comm</code></pre></div></blockquote></div><p>А что это даст?</p>]]></description>
			<author><![CDATA[null@example.com (MikeSh)]]></author>
			<pubDate>Thu, 29 May 2014 03:46:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83459#p83459</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83458#p83458</link>
			<description><![CDATA[<p>Не уверен, но можно попробовать перед циклом это добавить:<br /></p><div class="codebox"><pre><code>Set Comm = CreateObject(&quot;ADODB.Command&quot;)
Comm.CommandText = Query
Catalog.Views.Append &quot;NewQuery&quot;, Comm</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Thu, 29 May 2014 03:11:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83458#p83458</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83418#p83418</link>
			<description><![CDATA[<p>Да, но это всё-равно не то, что нужно.<br />У меня запрос к хранимым процедурам, которые джоинятся между собой и таблицами.<br />Мне нужно подсчитать и перебрать количество столбцов на выходе селекта.</p>]]></description>
			<author><![CDATA[null@example.com (MikeSh)]]></author>
			<pubDate>Wed, 28 May 2014 10:30:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83418#p83418</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83414#p83414</link>
			<description><![CDATA[<p>Откуда список? Каждое окно должно выдавать имя каждой таблицы и число её столбцов.</p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Wed, 28 May 2014 08:19:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83414#p83414</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83413#p83413</link>
			<description><![CDATA[<div class="quotebox"><cite>Flasher пишет:</cite><blockquote><div class="codebox"><pre><code>&#039;&lt;...&gt;
Set Catalog = CreateObject(&quot;ADOX.Catalog&quot;)
Set Catalog.ActiveConnection = FB
For Each Table In Catalog.Tables
  MsgBox Table.Name &amp; vbnewline &amp; Table.Columns.Count
Next</code></pre></div><p>?</p></blockquote></div><p>А счастье было так близко и так возможно...<br />К сожалению, эта конструкция выдаёт список таблиц в базе.<br />В общем, мимо...</p><p>Вопрос открыт.</p>]]></description>
			<author><![CDATA[null@example.com (MikeSh)]]></author>
			<pubDate>Wed, 28 May 2014 06:34:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83413#p83413</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83412#p83412</link>
			<description><![CDATA[<div class="quotebox"><cite>omegastripes пишет:</cite><blockquote><p><strong>Res.Fields.Count</strong> возвращает количество полей (&quot;столбцов&quot;), разве не так?</p></blockquote></div><p>В том то и дело, что это возвращает количество строк, а не столбцов.</p><div class="quotebox"><cite>Mat Skywalker пишет:</cite><blockquote><p>select count(*) from blabla</p></blockquote></div><p>Так, конечно, можно получить количество, но тоже только строк, а не колонок (столбцов).<br />К тому же, данный вариант плох ещё и по другой причине. Если хранимая процедура blabla вносит изменения в базу, то её повторный запуск уже даст другой результат.</p><div class="quotebox"><cite>Flasher пишет:</cite><blockquote><p>Set Catalog = CreateObject(&quot;ADOX.Catalog&quot;)</p></blockquote></div><p>С этим я ещё не сталкивался, судя по коду - то, что нужно, лишь бы заработало. Проверю.</p>]]></description>
			<author><![CDATA[null@example.com (MikeSh)]]></author>
			<pubDate>Wed, 28 May 2014 04:10:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83412#p83412</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83409#p83409</link>
			<description><![CDATA[<div class="codebox"><pre><code>select count(*) from blabla</code></pre></div><p>Можно так получить количество. И да, .RecordsCount возвращает -1 (что я только не пробовал).</p>]]></description>
			<author><![CDATA[null@example.com (Mat Skywalker)]]></author>
			<pubDate>Wed, 28 May 2014 03:10:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83409#p83409</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83408#p83408</link>
			<description><![CDATA[<div class="codebox"><pre><code>&#039;&lt;...&gt;
Set Catalog = CreateObject(&quot;ADOX.Catalog&quot;)
Set Catalog.ActiveConnection = FB
For Each Table In Catalog.Tables
  MsgBox Table.Name &amp; vbnewline &amp; Table.Columns.Count
Next</code></pre></div><p>?</p>]]></description>
			<author><![CDATA[null@example.com (Flasher)]]></author>
			<pubDate>Wed, 28 May 2014 00:06:52 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83408#p83408</guid>
		</item>
		<item>
			<title><![CDATA[Re: VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83401#p83401</link>
			<description><![CDATA[<p><strong>Res.Fields.Count</strong> возвращает количество полей (&quot;столбцов&quot;), разве не так?</p>]]></description>
			<author><![CDATA[null@example.com (omegastripes)]]></author>
			<pubDate>Tue, 27 May 2014 20:11:02 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83401#p83401</guid>
		</item>
		<item>
			<title><![CDATA[VBS + ODBC: Количество полей в запросе]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=83400#p83400</link>
			<description><![CDATA[<p>Добрый день.</p><p>Использую Firebird ODBC + VBScript</p><p>Возникла необходимость перебрать все результаты в запросе, при этом количество полей не известно.</p><p>Пример:<br /></p><div class="codebox"><pre><code>
Set FB = CreateObject(&quot;ADODB.Connection&quot;)

FB.Open &quot;DataBase&quot;

Query = &quot;Select * From StoredProcedure&quot;

Set Res = FB.Execute(Query)

While Not Res.EOF
  a1 = Res.Fields(0).Value
  a2 = Res.Fields(1).Value
...
  aX = Res.Fields(X).Value

  Res.MoveNext
WEnd
</code></pre></div><p>StoredProcedure могут быть любыми и, соответственно, возвращать произвольное количество столбцов.<br />aX = Res.Fields(X).Value<br />Как узнать, чему равно Х для данной StoredProcedure?</p><p>Я очень надеюсь на ответ типа: <br />Используй<br /></p><div class="codebox"><pre><code>ColumnCount = Res.ColumnCount()</code></pre></div><p>, по аналогии с количеством строк <br /></p><div class="codebox"><pre><code>Res.Fields.Count</code></pre></div><p>но, к сожалению, не смог нагуглить ничего подобного...</p><p>Спасибо.</p>]]></description>
			<author><![CDATA[null@example.com (MikeSh)]]></author>
			<pubDate>Tue, 27 May 2014 19:40:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=83400#p83400</guid>
		</item>
	</channel>
</rss>
