<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; js: чтение информации из sql]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=10861&amp;type=atom" />
	<updated>2015-08-12T08:55:32Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=10861</id>
		<entry>
			<title type="html"><![CDATA[Re: js: чтение информации из sql]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96405#p96405" />
			<content type="html"><![CDATA[<p>Понял о чём речь. У вас из <strong>Recordset</strong> возвращается объект <strong>Field</strong>. Т.е объект поля. А он не имеет методов <strong>substr</strong> и подобных ему, поэтому и происходит ошибка. Для того чтобы код правильно сработал вам подойдут варианты:</p><div class="codebox"><pre><code>Stroka = RS.Fields(&quot;name&quot;).Value;</code></pre></div><p>либо<br /></p><div class="codebox"><pre><code>Stroka = String(RS.Fields(&quot;name&quot;));</code></pre></div><p>Причина в различном способе обработки присвоения в VBScript и JavaScript. <br />В выражении:</p><div class="quotebox"><blockquote><p>A = B</p></blockquote></div><p><strong>B</strong> может быть любым типом данных (строкой / числом / объектом / датой и т.п.).<br />Когда в <strong>VBScript</strong> выполняется такое выражение, то если <strong>B</strong> это число или строка или дата, то присваивается само значение из переменной, а когда <strong>B</strong> <span class="bbu">это объект</span>, то происходит попытка найти его <strong>Default</strong> свойство / метод. <span class="bbu">Т.е свойство / метод возвращаемое(ый) по умолчанию</span>. А для того чтобы вернуть сам объект используется оператор <strong>Set</strong>. В случае с Recordset, цепочка такая: </p><div class="quotebox"><blockquote><p>Recordset -&gt; Fields (коллекция полей) -&gt; Field (конкретное поле) -&gt; Value (значение в нём)</p></blockquote></div><p>В <strong>JavaScript</strong> оператора <strong>Set</strong> нет, поэтому при присвоении происходит возврат того, что есть (при этом происходит конвертация в объект понятный яваскрипту <strong>String</strong>, <strong>Number</strong> и т.п). А если <strong>B</strong> это объект, то он и вернётся.</p><p>Когда же мы используем <strong>String(RS.Fields(&quot;name&quot;));</strong>, то мы явно указываем, что хотим забрать Default значение у объекта и преобразовать его к типу строки, понимаемой в JavaScript. Практически аналогично произойдёт и в коде <strong>RS.Fields(&quot;name&quot;).Value</strong>, только при этом JavaScript сам решит в какой тип данных, знакомый ему, конвертировать возвращаемое значение.</p><p>В Вашем случае, вариант используемого кода зависит от ситуации. Если поле содержит именно текстовые данные, то конвертация через <strong>String</strong> не обязательна и достаточно использовать свойство <strong>Value</strong>. Если же в поле будут числовые данные, то в Вашем коде опять же произойдёт ошибка. Так как при преобразовании получится объект, который не имеет методов работы со строкой. И тогда будет логичнее использовать конвертацию через <strong>String</strong>, чтобы получить строковую интерпретацию данных из поля.</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2015-08-12T08:55:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96405#p96405</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: js: чтение информации из sql]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96378#p96378" />
			<content type="html"><![CDATA[<p>Не подходит..потому что выдает ошибку</p>]]></content>
			<author>
				<name><![CDATA[lisichka-best]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33238</uri>
			</author>
			<updated>2015-08-11T02:26:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96378#p96378</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: js: чтение информации из sql]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96377#p96377" />
			<content type="html"><![CDATA[<p>Подразумевалось не в запросе sql</p>]]></content>
			<author>
				<name><![CDATA[lisichka-best]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33238</uri>
			</author>
			<updated>2015-08-11T02:24:34Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96377#p96377</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: js: чтение информации из sql]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96373#p96373" />
			<content type="html"><![CDATA[<p><strong>lisichka-best</strong>, тогда не понял для чего уточнение &quot;...в запросе sql оператор where&quot; ? И чем не подходит уже написанный код ? Что не получается то ?</p>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2015-08-10T20:41:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96373#p96373</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: js: чтение информации из sql]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96372#p96372" />
			<content type="html"><![CDATA[<p>Обрезать в скрипте</p>]]></content>
			<author>
				<name><![CDATA[lisichka-best]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33238</uri>
			</author>
			<updated>2015-08-10T16:10:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96372#p96372</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: js: чтение информации из sql]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96370#p96370" />
			<content type="html"><![CDATA[<p>Не совсем понял - Вам нужно их получить результатом запроса (т.е чтобы уже в Recordset вернулись обрезанные значения) или обрезать значение из поля средствами JavaScript ?</p><p>P.S Проще говоря - обрезать на SQL сервере и вернуть или вернуть полностью, а обрезать уже в скрипте ?</p><p>Для SQL вариант такой:<br /></p><div class="codebox"><pre><code>
SELECT substring(FIELD_NAME,1,4) FROM TABLE
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Xameleon]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=8836</uri>
			</author>
			<updated>2015-08-10T13:50:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96370#p96370</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[js: чтение информации из sql]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=96365#p96365" />
			<content type="html"><![CDATA[<p>Необходимо получить часть строки&nbsp; (с первого символа по четвертый) из таблицы table колонки name, не используя в запросе sql оператор where. Использовать что то типа substr.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br /></p><div class="codebox"><pre><code>var Connect=WScript.CreateObject(&quot;ADODB.Connection&quot;);
           var SConnect=&quot;DSN=SQL;UID=user;PWD=password&quot;;
          var SSource=&quot;Select * From table&quot;;
          Connect.Open(SConnect);
           var RS=Connect.Execute(SSource);
          Stroka=RS.Fields(&quot;name&quot;);
          WScript.Echo(Stroka.substr(0,4));</code></pre></div>]]></content>
			<author>
				<name><![CDATA[lisichka-best]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=33238</uri>
			</author>
			<updated>2015-08-10T09:53:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=96365#p96365</id>
		</entry>
</feed>
