Гость
Форумы / [игнор отключен] [закрыт для гостей] / Подскажите как из запроса подключиться к другому slq серверу и базе / 5 сообщений из 5, страница 1 из 1
16.03.2016, 10:07
    #39192955
YanMalyakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как из запроса подключиться к другому slq серверу и базе
Здравствуйте !

Пишу код на 1С 77,задача состоит в следующем, взять данные из базы которая находиться на другом Sql сервере.
пытаюсь подключиться по ADODB.Connection но программа ругается что превышен интервал ожидания и вываливается в ошибку
пытался увеличить Connection.ConnectionTimeOut с 60 до 6000; и Command.CommandTimeout 30 до 3000;
Ошибка не появляется но и программа не отвечает мин. по 30
на выполнение Sql запроса в Manag. Studio уходит не больше секунды

Кроме того пытался
использовать addlinkedserver но sql все равно не видит другой сервак
Подозреваю что существует более простой способ коннекта к другому серваку,подскажите плиз.

Код: sql
1.
2.
3.
4.
5.
 EXEC sp_addlinkedserver   
   @server=N'1С', 
   @srvproduct=N'',
   @provider=N'SQLNCLI', 
   @datasrc=N'1С';



Код: sql
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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
Server         = СокрЛп(СерверИзКонстанты)  ;        
	DataBase       = СокрЛп(БазаДанныхИзКонстанты);
	Login          =  "sa";      //Логин 
	Password       =  "524919";  //Пароль  
	
	
	Connection = CreateObject("ADODB.Connection"); 
	//
	ConnectionString = "driver={SQL Server};"+"server="+СокрЛП(Server)+";"+"uid="+СокрЛП(Login)+"; "+"pwd="+СокрЛП(Password)+";"+"Database="+СокрЛП(Database);
	//	ConnectionString = "DRIVER={SQL Server Native Client 10.0};"+"server="+СокрЛП(Server)+";"+"uid="+СокрЛП(Login)+"; "+"pwd="+СокрЛП(Password)+";"+"Database="+СокрЛП(Database);
	// ConnectionString = "Provider=SQLOLEDB.1;"+"server="+СокрЛП(Server)+";"+"uid="+СокрЛП(Login)+"; "+"pwd="+СокрЛП(Password)+";"+"Database="+СокрЛП(Database);
	
	Command    = CreateObject("ADODB.Command");
	Command.CommandTimeout = 300;
	
	
	Connection.ConnectionTimeOut = 600;                                                   
	//

	//
	Connection.Open(ConnectionString);
	

	
	////-----Создаем Запрос + набор  записей по Возвратным  накладным
	
	НаборЗаписДокументы = CreateObject("ADODB.RecordSet");
	НаборЗаписДокументы.ActiveConnection = Connection; 
	
	strQuery = "Select KLIENT,TOVAR,MARSHRUT       ---- Этот Select нужен для того что бы преобразовать тип Число в тип Строка 
|,CAST(KOL     AS CHAR(15)) As KOL
|,CAST(OSTATOK AS CHAR(15)) As OSTATOK 
|,CAST(PREDZAK AS CHAR(15)) As PREDZAK
|,CAST(Remis AS CHAR(15))   As Remis   
| From
|(SELECT  TOP(10) TABLE1.TOVAR,TABLE1.KLIENT,TABLE1.MARSHRUT,TABLE1.CODE_TOVAR,TABLE1.SKLAD,SUM(TABLE1.OSTATOK)AS OSTATOK
|,SUM(TABLE1.PREDZAK)AS PREDZAK,SUM(TABLE1.Remis)AS Remis,SUM(TABLE1.KOL) AS KOL 
|FROM		
|(Select  --Уровень1
|-- Это подзапрос возвращает 1(один столбец) 
|(Select TablSclad.DESCR   From SC1001 AS TablSclad
|WHERE  TablSclad.ID = RG1080.SP1084) AS SKLAD,
|-- Это подзапрос возвращает 1(один столбец) 
|(Select TablKlient.DESCR   From SC1005 AS TablKlient
|WHERE  TablKlient.ID = RG1080.SP1082
|AND TablKlient.ISFOLDER = 2 ) AS KLIENT,
|-- Это подзапрос возвращает 1(один столбец)  
|(Select TablTovar.DESCR   From SC1031 AS TablTovar
|WHERE  TablTovar.ID = RG1080.SP1083
|AND  TablTovar.ISMARK   = 0
|AND  TablTovar.ISFOLDER = 2
|) AS TOVAR ,
|-- Это подзапрос возвращает 1(один столбец) 
|(Select TablKlient.SP1663   From SC1005 AS TablKlient
|WHERE  TablKlient.ID = RG1080.SP1082
|AND TablKlient.ISFOLDER = 2 ) AS MARSHRUT,
|-- Это подзапрос возвращает 1(один столбец) 
|(Select TablTovar.CODE   From SC1031 AS TablTovar
|WHERE  TablTovar.ID = RG1080.SP1083) AS CODE_TOVAR,
|RG1080.SP1081 AS OSTATOK,
|SP1313 AS PREDZAK,
|SP1314 AS Remis ,  
|SP1081 As KOL    
|--CAST(SP1081 AS CHAR(15)) As KOL                           ---Преобразование типа Числа в Тип Строка 
|FROM dbo.RG1080 ) AS TABLE1   --Уровень1 Окончание
|WHERE TABLE1.KLIENT = 'М-999 МАРКЕТ'
|AND    TABLE1.TOVAR  = 'Всё для мужчины №12(498)(16+)' --IS NOT NULL 
|GROUP BY TOVAR,KLIENT,SKLAD,MARSHRUT,CODE_TOVAR) AS TABLE2
|ORDER BY KLIENT,TOVAR,MARSHRUT";                                
	
НаборЗаписДокументы.Open(strQuery); 



Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
16.03.2016, 10:21
    #39192977
Последний выдох ГПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как из запроса подключиться к другому slq серверу и базе
выполни в 1с, поймай в профайлере на скуле. посмотри есть ли разница
...
Рейтинг: 0 / 0
16.03.2016, 10:24
    #39192983
YanMalyakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как из запроса подключиться к другому slq серверу и базе
Последний выдох ГПЖ,

На самом деле всё зависает на выполнении кода
Код: sql
1.
НаборЗаписДокументы.Open(strQuery);  
...
Рейтинг: 0 / 0
16.03.2016, 10:38
    #39193004
Последний выдох ГПЖ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как из запроса подключиться к другому slq серверу и базе
курить CursorLocation
...
Рейтинг: 0 / 0
16.03.2016, 12:12
    #39193155
MicMic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите как из запроса подключиться к другому slq серверу и базе
давно это было ....

Для запросов к другому серверу попробуйте покурить OPENROWSET:
https://msdn.microsoft.com/ru-ru/library/ms190312(v=sql.105).aspx

Вместо ADODB попробуйте SQLDMO.
В свое время от ADODB в пользу последнего отказался изза постоянных вопросов в первую очередь с таймаутами.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Подскажите как из запроса подключиться к другому slq серверу и базе / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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