powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / 1C8 ADODB записать XLS (Должен использоваться обновляемый запрос)
2 сообщений из 2, страница 1 из 1
1C8 ADODB записать XLS (Должен использоваться обновляемый запрос)
    #36729267
xKIA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прочитать данные получается, но не понимаю почему не получается записать ни через 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
1C8 ADODB записать XLS (Должен использоваться обновляемый запрос)
    #36734854
xKIA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашёл ошибку, в режиме IMEX=1 нельзя писать в таблицу.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / 1C8 ADODB записать XLS (Должен использоваться обновляемый запрос)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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