Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / 1C8 ADODB записать XLS (Должен использоваться обновляемый запрос) / 2 сообщений из 2, страница 1 из 1
08.07.2010, 01:02
    #36729267
xKIA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C8 ADODB записать XLS (Должен использоваться обновляемый запрос)
Прочитать данные получается, но не понимаю почему не получается записать ни через RecordSet.Update, ни через запрос Update.. Resync тоже самое. При попытке что либо изменить пишет, что должен использоваться обновляемый запрос, в кеш что-то попадает, потому что вывести записанное можно, до первой комманды которая затрагивает курсор, на ней уже вываливается. При этом перерыл весь инет, прочитал права на пользователя IUSR, все права есть, тип курсора стоит правильный, при открытии соединения стоит чтение и запись, не понимаю почему не даёт. Офис не установлен на компе, но я так понимаю что для записи в файл АДО тоже в нём не нужндается.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
СоединениеXLS = Новый ComObject("ADODB.Connection");
	Попытка
		СоединениеXLS.Provider="Microsoft.Jet.OLEDB.4.0";
		//http://infostart.ru/public/17039/
		СоединениеXLS.Properties("Data Source").Value="C:\1.xls";
		СоединениеXLS.Properties("Persist Security info").Value="False";
		СоединениеXLS.Properties("Extended Properties").Value="Excel 8.0;HDR=No;IMEX=1";
		СоединениеXLS.Mode = 3;
		СоединениеXLS.Open();
	Исключение                                                          
		Сообщить(ОписаниеОшибки());
		возврат;
	КонецПопытки;
	
	Сообщить ("Выполнение запроса...");
	ЗаписиXLS = Новый ComObject("ADODB.RecordSet");
	ЗаписиXLS.CursorType = 3;
	ЗаписиXLS.LockType = 2;
	ЗаписиXLS.CacheSize = 1000;
	ЗаписиXLS.CursorLocation=3;
	ЗаписиXLS.ActiveConnection = СоединениеXLS;

	//ЗаписиXLS.Open("UPDATE [Лист1$] SET F2 = 'XYZ' WHERE F1 = '111'");
	ЗаписиXLS.Open("Select * from [Лист1$]");

	Сообщить("Количество строк: "+ЗаписиXLS.RecordCount+"; Количество колонок: "+ЗаписиXLS.Fields.Count);

	Если ЗаписиXLS.EOF и ЗаписиXLS.BOF тогда Сообщить("Данные отсуствуют"); конецесли;

	 //ЗаписиXLS.Resync();
	
	Пока ЗаписиXLS.EOF=0 Цикл    
		Для Сч = 0 по ЗаписиXLS.Fields.Count-1 цикл
			сообщить(" "+ЗаписиXLS.Fields.Item(Сч).Name+":"+ЗаписиXLS.Fields(Сч).Value);
			//ЗаписиXLS.Fields(Сч).Value="33";
		конеццикла;
		ЗаписиXLS.MoveNext();
	КонецЦикла; 
	ЗаписиXLS.Close();   //objRecordset.Save "C:\test.xml", 1
	СоединениеXLS.Close(); 
	
...
Рейтинг: 0 / 0
11.07.2010, 18:56
    #36734854
xKIA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1C8 ADODB записать XLS (Должен использоваться обновляемый запрос)
Нашёл ошибку, в режиме IMEX=1 нельзя писать в таблицу.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / 1C8 ADODB записать XLS (Должен использоваться обновляемый запрос) / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]