<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBScript: Добавление записей БД Access]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=3058&amp;type=atom" />
	<updated>2009-12-17T10:56:25Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=3058</id>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31600#p31600" />
			<content type="html"><![CDATA[<p>Обновил свой предыдущий пост.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-12-17T10:56:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31600#p31600</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31599#p31599" />
			<content type="html"><![CDATA[<p>упс <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />сори за невнимательность.<br />все три способа работают, еще раз спасибо за помощь.</p><p>этот вопрос закрыт.</p>]]></content>
			<author>
				<name><![CDATA[Loveц]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24968</uri>
			</author>
			<updated>2009-12-17T10:53:21Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31599#p31599</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31598#p31598" />
			<content type="html"><![CDATA[<p>Хмм… Ой ли <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" />:<br /></p><div class="quotebox"><blockquote><p>$objRecordset.Open(&quot;INSERT INTO Таблица1 (<strong><span style="color: red">&#039;</span></strong>источник<strong><span style="color: red">&#039;</span></strong>, <strong><span style="color: red">&#039;</span></strong>ошибка<strong><span style="color: red">&#039;</span></strong>) VALUES (&#039;TEST - источник&#039;, &#039;TEST - ошибка&#039;)&quot;)</p></blockquote></div><div class="quotebox"><blockquote><p>$objRecordset.Open(&quot;INSERT INTO Таблица1 (источник, ошибка) VALUES (&#039;TEST - источник&#039;, &#039;TEST - ошибка&#039;)&quot;<strong><span style="color: red">, $objConnection</span></strong>)</p></blockquote></div><p>P.S. В «комбинированном» примере из поста <a href="http://forum.script-coding.com/viewtopic.php?pid=31589#p31589">#30</a> привязка RecordSet&#039;а делалась в первом методе:<br /></p><div class="codebox"><pre><code>; 1-й метод
With $oRecordSet
    .Open(&quot;SELECT * FROM Table1&quot;, $oConnection, $adOpenDynamic, $adLockOptimistic)
    …</code></pre></div><p>Оттого во втором методе уже не требовалось указывать отдельно Connection.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-12-17T10:46:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31598#p31598</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31597#p31597" />
			<content type="html"><![CDATA[<p>Виноват, забыл написать...<br />Пробовал и с апострафами и без. Результат - не работает. В посте выше случайно апострофы остались. А так строчка полностью идентична строчке из способа 3.</p>]]></content>
			<author>
				<name><![CDATA[Loveц]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24968</uri>
			</author>
			<updated>2009-12-17T10:11:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31597#p31597</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31596#p31596" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Loveц пишет:</cite><blockquote><p>способ 2 - не работает…</p></blockquote></div><p>А так:<br /></p><div class="codebox"><pre><code>$objConnection = ObjCreate(&quot;ADODB.Connection&quot;)
$objConnection.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source = &#039;\\b2\public1$\errors\1\errors.mdb&#039;&quot;
$objConnection.Open

$objRecordset = ObjCreate(&quot;ADODB.Recordset&quot;)

$objRecordset.Open(&quot;INSERT INTO Таблица1 (источник, ошибка) VALUES (&#039;TEST - источник&#039;, &#039;TEST - ошибка&#039;)&quot;, $objConnection)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-12-17T10:04:20Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31596#p31596</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31593#p31593" />
			<content type="html"><![CDATA[<p>Я имел ввиду что &quot;не прокатил&quot; способ номер 2. А вот ваш третий способ мне очень понравился своей короткостью кода. Ну по скорости потом потестирую... Второй так и не заработал.... <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p><p>способ 1 - работает<br /></p><div class="codebox"><pre><code>Const $adOpenKeyset = 1
Const $adLockOptimistic = 3
Local $objConnection, $objRecordset

$objConnection = ObjCreate(&quot;ADODB.Connection&quot;)
$objConnection.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source = \\b2\public1$\errors\1\errors.mdb&quot;
$objConnection.Open

$objRecordset = ObjCreate(&quot;ADODB.Recordset&quot;)

With $objRecordset
    .Open (&quot;SELECT * FROM Таблица1&quot;, $objConnection, $adOpenKeyset, $adLockOptimistic)
    .AddNew
    .Fields(&quot;источник&quot;) = &quot;TEST - источник&quot;
    .Fields(&quot;ошибка&quot;) = &quot;TEST - ошибка&quot;
    .Update
EndWith</code></pre></div><p>способ 2 - не работает<br /></p><div class="codebox"><pre><code>$objConnection = ObjCreate(&quot;ADODB.Connection&quot;)
$objConnection.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source = \\b2\public1$\errors\1\errors.mdb&quot;
$objConnection.Open

$objRecordset = ObjCreate(&quot;ADODB.Recordset&quot;)

$objRecordset.Open(&quot;INSERT INTO Таблица1 (&#039;источник&#039;, &#039;ошибка&#039;) VALUES (&#039;TEST - источник&#039;, &#039;TEST - ошибка&#039;)&quot;)</code></pre></div><p>способ 3 - работает<br /></p><div class="codebox"><pre><code>$objConnection = ObjCreate(&quot;ADODB.Connection&quot;)
$objConnection.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source = \\b2\public1$\errors\1\errors.mdb&quot;
$objConnection.Open

$objConnection.Execute (&quot;INSERT INTO Таблица1 (источник, ошибка) VALUES (&#039;TEST - источник&#039;, &#039;TEST - ошибка&#039;)&quot;)</code></pre></div><p>Спасибо <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Loveц]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24968</uri>
			</author>
			<updated>2009-12-17T08:58:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31593#p31593</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31589#p31589" />
			<content type="html"><![CDATA[<p>Что не прокатило? Обычная база с одной таблицей с двумя текстовыми полями. 1-й метод — Ваш, добавляем «ручками»; 2-й — пользуем запрос «INSERT INTO…VALUES» через RecordSet; 3-й — тот же запрос «INSERT INTO…VALUES», только работаем непосредственно с объектом «ADODB.Connection»:<br /></p><div class="codebox"><pre><code>AutoItSetOption(&quot;MustDeclareVars&quot;, 1)

Local Const $adOpenDynamic    = 2
Local Const $adLockOptimistic = 3

Local $oConnection = ObjCreate(&quot;ADODB.Connection&quot;)
Local $oRecordSet = ObjCreate(&quot;ADODB.RecordSet&quot;)

$oConnection.Open(&quot;Provider = Microsoft.Jet.OLEDB.4.0;&quot; &amp; _
    &quot;Data Source = &#039;C:\bla-bla-bla\db1.mdb&#039;&quot;)

; 1-й метод
With $oRecordSet
    .Open(&quot;SELECT * FROM Table1&quot;, $oConnection, $adOpenDynamic, $adLockOptimistic)

    .AddNew
    .Fields.Item(&quot;Field1&quot;) = &quot;Value1&quot;
    .Fields.Item(&quot;Field2&quot;) = &quot;Value2&quot;
    .Update

    .Close
EndWith

; 2-й метод
With $oRecordSet
    .Open(&quot;INSERT INTO Table1 (Field1, Field2) VALUES (&#039;Value3&#039;, &#039;Value4&#039;)&quot;)
EndWith

; 3-й метод
$oConnection.Execute(&quot;INSERT INTO Table1 (Field1, Field2) VALUES (&#039;Value5&#039;, &#039;Value6&#039;)&quot;)

$oConnection.Close

Exit(0)</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-12-16T19:56:03Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31589#p31589</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31587#p31587" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Можно вместо «select …» попробовать сразу «insert into … values …».</p></blockquote></div><p>Это пробовал - не прокатило....</p><p>Я просто про то, что допустим с MySQL, что добавление, что поиск по базе делаются по одинаковому шаблону:<br />- подключаемся к базе<br />- устанавливаем свойства для объекта &quot;Рекордсэт&quot; и в конце вызываем его метод Open.<br />В Access же такое не прокатиро... Поиск да, а вот добавоение только как я указал выше. Я вот и хотел уточнить действительно так или я что упустил...</p><p>Ну наверно все же так <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p><p>P.S. Думал что ADO оно и в Африке ADO, но наверно у Access оно какое-то свое....</p>]]></content>
			<author>
				<name><![CDATA[Loveц]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24968</uri>
			</author>
			<updated>2009-12-16T16:51:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31587#p31587</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31585#p31585" />
			<content type="html"><![CDATA[<p>Можно вместо «select …» попробовать сразу «insert into … values …».</p><p>Насчёт поиска: других вариантов, кроме как «select … where …» (или Вы про что?!), для извлечения нет; естественно, подразумевается, что Вы заранее создали и построили индексы не только по ключевым полям, но и по всем полям, по которым осуществляется поиск.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-12-16T16:22:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31585#p31585</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31578#p31578" />
			<content type="html"><![CDATA[<p>Спасибо.</p><p>Еще вопрос. Я сейчас для записи в MySQL использую следующую схему:<br /></p><div class="codebox"><pre><code>$objADOConnect = ObjCreate (&quot;ADODB.Connection&quot;)
$objADORecordset = ObjCreate (&quot;ADODB.Recordset&quot;

; подключаемся к БД
With $objADOConnect
        .ConnectionString = &quot;Provider=MSDASQL.1;Driver=MySQL ODBC 5.1 Driver;Server=&quot; &amp; $strServer &amp; &quot;;UID=&quot; &amp; $strLogin &amp; &quot;;PWD=&quot; &amp; $strPassword &amp; &quot;;Database=&quot; &amp; $strBase
        .Open
EndWith

; записываем в БД
With $objADORecordset
        .ActiveConnection = $objADOConnect
        .CursorLocation = 3        ; adUseClient
        .CursorType = 1            ; adOpenKeyset
        .LockType = 3            ; adLockOptimistic
        .Open
EndWith</code></pre></div><p>Опытным путем я выяснил что такой способ работает быстрее чем через метод Execute (по крайней мере у меня).<br />А в Access я щас пишу так:<br /></p><div class="codebox"><pre><code>; устанавливаем соединение с БД
$objConnection = ObjCreate(&quot;ADODB.Connection&quot;)
$objConnection.ConnectionString = &quot;Provider=Microsoft.Jet.OLEDB.4.0;Data Source = &quot; &amp; $strErrorDatabasePath
$objConnection.Open

; выбираем нужный набор записей
$objRecordset = ObjCreate(&quot;ADODB.Recordset&quot;)
$objRecordset.Open (&quot;SELECT * FROM Таблица1&quot;, $objConnection, $adOpenKeyset, $adLockOptimistic)

; модифицируем этот набор записей
With $objRecordset
    .AddNew
    .Fields(&quot;дата&quot;) = @YEAR &amp; &quot;.&quot; &amp; @MON &amp; &quot;.&quot; &amp; @MDAY
    .Update    ; сохраняем изменения
EndWith</code></pre></div><p>Нет ли второго, возможного более быстрого способа записи (а так же поиска) в БД Access?</p>]]></content>
			<author>
				<name><![CDATA[Loveц]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24968</uri>
			</author>
			<updated>2009-12-16T10:03:00Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31578#p31578</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31516#p31516" />
			<content type="html"><![CDATA[<p>1. В любом случае, тот или иной драйвер нужен, без него никак (ну, разве что кроме самопальной обработки CSV, Tab Delimited и т.п.). Могу лишь сказать, что действительно, для интегрированного набора Windows XP Professional SP3 пакет MDAC 2.8 SP1 не нужен — он уже наличествует в данном наборе.<br />2. Хуже. Нет.<br />3. Для перечисленных форматов отдельно на сервере ничего устанавливать не надо, только на клиенте, поскольку всё перечисленное не является файлами клиент-серверных БД (а xls — вообще не БД, как и csv, Tab Delimited, — просто есть драйвер, позволяющий рассматривать такие файлы как плоскую БД, и использовать команды для работы с БД).</p><p>Лучший вариант из перечисленного — mdb в качестве хранилища и, соответственно, Jet — для доступа. В качестве технологии пользовать ADO (а не DAO).</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-12-14T13:04:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31516#p31516</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=31503#p31503" />
			<content type="html"><![CDATA[<p>Прочита всю ветку. Меня сейчас тоже интересует данная тема. А именно: хочу писать некоторые события (ошибки) в БД, которая не требует установки на клиенте отдельных драйверов. Пока что пишется тупо в текстовый файл. Хочется улучшений <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> Вот смотрю в сторону аксеса. Событий-ошибок у меня немного, поэтому проблемы с большим количеством соединений быть не должно.</p><p>Вопросы:<br />1) тут писали, что для коннекта к файлу access нужны компоненты определенные скачанные с мелкософта или установленный офис... есть ли способ соединиться с базой без установки чего-бы то нибыло на чистую WinXP? через Win API может ...<br />2) а формат dbf хуже формата mdb? может в него можно писать без доп. софта?<br />3) какие еще есть форматы БД. позволяющие писать в них без установки самих БД? например, чтобы писать в файл dbf, xls, mdb мне не надо ставить на сервере какой то софт, эти файлы можно просто положить на общий ресурс...</p><p>P.S. Почитал по ссылке http://www.microsoft.com/downloads/details.aspx?familyid=78cac895-efc2-4f8e-a9e0-3a1afbd5922e&amp;displaylang=ru<br />Правильно я понял что для связи с access в WinXP не надо ничего дополнительного? Это только для систем до WinXP?</p>]]></content>
			<author>
				<name><![CDATA[Loveц]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24968</uri>
			</author>
			<updated>2009-12-14T09:04:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=31503#p31503</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=22498#p22498" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>dsb пишет:</cite><blockquote><div class="quotebox"><cite>uniken1 пишет:</cite><blockquote><p>Писать программу(это уже не скриптовый уровень) которая будет непрерывно работать, обрабатывая логи(иначе инфа из базы будет не достоверной), я думаю будет неправильно.<br />Да и такой подход(складываия файлов в кучу с последующей обработкой), сейчас может использоваться разве что только школьниками и студентами для изучения паскаля или асма</p></blockquote></div><p>uniken1, вы напрасно так неадекватно реагируете на достаточно дельный совет от null. Это и невежливо, а, в сочетании с допущенным вами в этом комментарии кучи смысловых, логических и прочих огрех, ещё и нелепо.</p></blockquote></div><p>У нас в сети всё складывается по файлам&nbsp; и прогой eXponent обрабатывается&nbsp; когда нужно. Очень удобно. <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> А ещё&nbsp; скрипт по расписанию срабатывает (в 2 часа ночи ), лопатит файлы и шлёт письма, по изменениям. БД Access вообще не расшаренная.</p>]]></content>
			<author>
				<name><![CDATA[krikerer]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=14873</uri>
			</author>
			<updated>2009-05-04T07:40:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=22498#p22498</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=22497#p22497" />
			<content type="html"><![CDATA[<p>Эта галочка к акксессу относятся, так что не заморачивайся.</p>]]></content>
			<author>
				<name><![CDATA[null]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=18745</uri>
			</author>
			<updated>2009-05-04T06:22:07Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=22497#p22497</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBScript: Добавление записей БД Access]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=22496#p22496" />
			<content type="html"><![CDATA[<p>1. На сервере Access&#039;a нет. к базе все обращаются через свой локальный Access с путем \\...\*.mdb<br />2. Как должна помочь блокировка на уровне страниц вместо записей?<br />3. Там есть подпись что эта галочка не влияет на запросы SQL, а на сколько я понимаю все функции выполняются через него</p>]]></content>
			<author>
				<name><![CDATA[uniken1]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24766</uri>
			</author>
			<updated>2009-05-04T06:05:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=22496#p22496</id>
		</entry>
</feed>
