22.06.2007 13:05
Pblcb
 
Используются: На сервере Oracle 9.2.0.7, Win2003sp1; у меня 1C 8.0.14.39, winXPsp2, и оракл клиент той же версии что и сервер.

Проблема такая, выполняю я
Код:
SELECT Tree, Name 
FROM Supermag.saCardClass 
ORDER BY Tree
из 1С и получаю только узлы с кодами от 2.1 до 4, причем в базе есть узлы с кодами от 1 до 16.

Из 1с обращаюсь так:
Код:
Функция СоздатьСоединение_ORACLE( Логин, Пароль, База ) Экспорт
	Соединение = новый COMОбъект( "ADODB.Connection" );	
	Попытка
		Соединение.ConnectionString = "Provider=MSDAORA;" + 
			"Database=" + База + ";" +
			"User ID="+ Логин + ";" +
			"Password=" + Пароль;
		Соединение.Open();
		Сообщить( "СоединениеУстановленно!!!" );
	Исключение
		Сообщить( ОписаниеОшибки() );
		ВызватьИсключение;
		возврат "";
	КонецПопытки;
	Возврат Соединение;
КонецФункции

функция Запрос(Соединение, текстЗапроса, параметрыЗапроса = Неопределено) Экспорт
	command = новый COMОбъект("ADODB.Command");
	command.ActiveConnection = Соединение;
	command.CommandText = текстЗапроса;
	если параметрыЗапроса <> Неопределено тогда
		// Если параметры переданы
		если ТипЗнч(параметрыЗапроса) <> тип("СписокЗначений") тогда
			ВызватьИсключение "Invalid Coder!!!";
		иначе
			для Каждого _строка из параметрыЗапроса цикл
                                command.Parameters.Append(command.CreateParameter(
					_строка.Имя, 
					_строка.ТипЗначения,
					_строка.ТипПараметра,
					_строка.ЗначениеПараметра
				));
			КонецЦикла;
		КонецЕсли;		
	КонецЕсли; // Параметры	
	Rs = новый COMОбъект("ADODB.RecordSet");
	Rs = command.execute();
	Возврат Rs;
КонецФункции

НаборЗаписей = Запрос( Соединение,
				"select
				|	Tree,
				|	name
				|from 
				|	Supermag.saCardClass
				|order by Tree"
	         );
Никак не могу понять отчего в Toad я получаю все строки таблицы, а из ADODB только часть?.. Кто-нить знает что именно в этом коде я делаю не так?
22.06.2007 13:17
Mtirt
 
Это похоже на какие-то проблемы самого ADO. У меня была похожая ситуация, когда я цеплялась к базе из Access.
Попробуй вот это, может быть поможет: https://olegon.ru/showthread.php?t=2132&highlight=%F1%EE%E5%E4%E8%ED%E5%ED%E8%E5
22.06.2007 13:27
OlegON
 
Может, провайдера сменить? Там есть MS и Оракловый... Никаких косяков с выбором строк с пробелами нет?
22.06.2007 13:31
Mtirt
 
Я в свое время меняла, мне особо не помогло. Выдавалось через раз...
22.06.2007 13:36
Pblcb
 
Mtirt, спасибо за ссылку, но к помощи O4OO прибегать не хочется (хотя кажется, придется), ибо добрые админы моих клиентов периоодически на клиентских машинах весь софт переустанавливают и всегда забывают установить этот замечательный компонент. Кроме того хочется однородности в обращениях ко всем источникам данных.
Olegon, сменил провайдера на OraOLEDB.Oracle, к сожалению не помогло.
22.06.2007 13:51
Pblcb
 
Спасибо господа за уделенное мне внимание, разобрался с проблемой... При заполнении строки соединения, не заполнялось поле Data Source и, как следствие, я соединялся с базой по-молчанию. Не удивительно что видел я в результате не то что ожидал =)
Часовой пояс GMT +3, время: 07:37.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.