|
|
|
Прямой запрос с использованием Linked Server | ☑ | ||
|---|---|---|---|---|
|
0
Fenikus
23.05.11
✎
10:41
|
Добрый день.
Хочу в одном запросе объединить подключение к базе данных на MS SQL и к базе на dbf. Использовал для этого Linked Server. Вроде бы все хорошо, если бы не одно НО. Делаю, например, такой запрос: SELECT TOP 100 * FROM ServerDBF...1sconst А мне выдается ошибка Line 1: Incorrect syntax near '.1'. Может быть кто-то сталкивался с такой проблемой и знает как она решается? |
|||
|
1
viktor_vv
23.05.11
✎
10:43
|
Делаk через
Select from OPENQuery('Текст запроса к ДБФ','Имя LinkedServer') |
|||
|
2
Fenikus
23.05.11
✎
10:43
|
+(0)То есть, если имя таблицы начинается с цифры, то для такого запроса это считается ошибкой. Видимо, поэтому в sql версии 1С имена таких таблиц начинаются со знака _
|
|||
|
3
Fenikus
23.05.11
✎
10:44
|
(1) хорошо, попробую, спасибо
|
|||
|
4
ДенисЧ
23.05.11
✎
10:44
|
SELECT TOP 100 * FROM ServerDBF...[1sconst]
? |
|||
|
5
viktor_vv
23.05.11
✎
10:46
|
(4) О до этого не допетрил, надо попробовать.
|
|||
|
6
Fenikus
23.05.11
✎
10:47
|
(4) Спасибо большое! Это помогло
|
|||
|
7
VladZ
23.05.11
✎
10:50
|
(1) Сначала имя сервера, потом запрос.
|
|||
|
8
viktor_vv
23.05.11
✎
11:06
|
Согласен. По памяти писал. Если уж быть точнее, то
Select from OPENQuery(ИмяLinkedServer,'Текст запроса к ДБФ') |
|||
|
9
Fenikus
24.05.11
✎
08:03
|
Теперь у меня такая проблема:
Если база дбф находится на том же компьютере, что и SQL Server, все работает хорошо. Если же я подключаю базу, которая находится на другом сервере, то в SQL Query Analize все запросы отрабатываются нормально, а когда пытаюсь из 1С-ки запустить, то выдается такая ошибка - Could not initialize data source object of OLE DB provider 'VFPOLEDB'. И ничего поделать с этим не могу :( |
|||
|
10
ДенисЧ
24.05.11
✎
08:22
|
Под какой учёткой работает сервер? У него есть права на сеть?
|
|||
|
11
Fenikus
24.05.11
✎
08:25
|
(10)Можно уточнить вопрос?
|
|||
|
12
ДенисЧ
24.05.11
✎
08:35
|
(11) можно. Уточняй.
|
|||
|
13
Fenikus
24.05.11
✎
08:39
|
(12) Уточняю, сервер работает под администратором, на сеть права есть.
|
|||
|
14
ДенисЧ
24.05.11
✎
08:40
|
(13) Эээ... Точно служба SQL Server работает под админом? О_о
|
|||
|
15
Fenikus
24.05.11
✎
08:45
|
(14) У службы MSSQLSERVER вход в систему с системной учетной записью. У системной учетной записи права администратора.
|
|||
|
16
ДенисЧ
24.05.11
✎
08:47
|
(15) Под system?
А ничО, что system не имеет прав на доступ к сетевым ресурсам по умолчанию? |
|||
|
17
Fenikus
24.05.11
✎
08:48
|
ок, как дать system права на доступ к сетевым ресурсам?
|
|||
|
18
ДенисЧ
24.05.11
✎
08:49
|
(17) лучше не надо. Заведи спецучётку.
|
|||
|
19
Кириллка
24.05.11
✎
08:49
|
да провайдер на скуле не установлен.
|
|||
|
20
Fenikus
24.05.11
✎
08:50
|
(19)установлен, я ж говорю, что в SQL Query Analize все запросы отрабатываются нормально
|
|||
|
21
Fenikus
24.05.11
✎
08:51
|
и таблицы в связанном сервере все вижу
|
|||
|
22
Кириллка
24.05.11
✎
08:52
|
"а когда пытаюсь из 1С-ки запустить" - как?
|
|||
|
23
Fenikus
24.05.11
✎
08:57
|
(22) прямой запрос, при помощи ODBCRecordset
|
|||
|
24
Кириллка
24.05.11
✎
09:00
|
+23 из 1с на виндовс?
|
|||
|
25
Fenikus
24.05.11
✎
09:06
|
(24) не понял вопроса. Вообще, если база dbf локально, то все работает и из 1С и из SQL Query Analize. А когда пытаюсь подключиться к базе dbf по сети, то и происходит ошибка, описанная выше.
(18)завел спецучетку, запустил под ней SQL Server, теперь база dbf даже связываться не хочет... |
|||
|
26
Fenikus
24.05.11
✎
09:06
|
(24)1С на виндовс
|
|||
|
27
Кириллка
24.05.11
✎
09:10
|
(26)а, понятно. Такое бывает у некоторых иногда.
|
|||
|
28
Fenikus
24.05.11
✎
09:13
|
(27)с этим ничего не поделаешь, а проблему решать надо.
|
|||
|
29
Кириллка
24.05.11
✎
09:16
|
да ты код покажи - (22)!!
|
|||
|
30
Fenikus
24.05.11
✎
09:19
|
(29) Пожалуйста
Запрос = СоздатьОбъект("ODBCRecordset"); ТекстЗапроса = " |SELECT TOP 100 |* |FROM LinkedServerName...sc84 |"; тз = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); тз.ВыбратьСтроку(); |
|||
|
31
Кириллка
24.05.11
✎
09:40
|
(30)видимо, секьюрити контекст не докрутил, при линковании. QA и 1с у тебя ведь под разными учетками работают?
|
|||
|
32
Fenikus
24.05.11
✎
09:57
|
(31) Ага, 1С работает под пользователем sa, а QA через windows authentication. Только я все равно не пойму, как решить можно эту проблему :(
|
|||
|
33
Fenikus
24.05.11
✎
10:12
|
(31)Ну что, подскажешь, как докрутить секьюрити контекст при линковании?
|
|||
|
34
Кириллка
24.05.11
✎
10:14
|
(33)Пример C, только логины наоборот: http://msdn.microsoft.com/en-us/library/aa259581(v=SQL.80).aspx
|
|||
|
35
Кириллка
24.05.11
✎
10:14
|
+34 ну или интерактивно, при линковании.
|
|||
|
36
Fenikus
24.05.11
✎
10:38
|
(34,35)Не, че-то нифига не помогает.
Вот, что выдает QA, если зайти в него под пользователем sa Could not initialize data source object of OLE DB provider 'VFPOLEDB'. [OLE/DB provider returned message: Invalid path or file name.] OLE DB error trace [OLE/DB Provider 'VFPOLEDB' IDBInitialize::Initialize returned 0x80040e21]. |
|||
|
37
Кириллка
24.05.11
✎
10:46
|
(36)все должно работать, делай аккуратно.
|
|||
|
38
Fenikus
24.05.11
✎
13:41
|
(37)Делал, делал аккуратно, но ничего не помогает.
В общем в настройках связанного сервера на вкладке Security есть табличка, в которой нужно указать локального пользователя и соответствующее ему удаленное имя пользователя и пароль. Дело еще в том, что домена у нас в конторе нет, и я не могу понять, какое необходимо указывать удаленное имя пользователя и соответственно пароль к нему. Какие бы я варианты не использовал, ничего не получается. |
|||
|
39
Fenikus
24.05.11
✎
13:51
|
Может быть еще подумать, как из 1С подключиться к серверу, используя Виндовс аутентификацию?
|
|||
|
40
Fenikus
24.05.11
✎
14:00
|
Как заставить работать связанный сервер по сети? для пользователей SQL Server?
|
|||
|
41
viktor_vv
24.05.11
✎
14:05
|
А на закладке Security под табличкой с пользователями где стоит переключатель ? Я у себя просто для ДБФ базы в логинах вообще ничего не указывал и внизу второй пункт выбирал.
|
|||
|
42
viktor_vv
24.05.11
✎
14:06
|
И сервер под ситстемной учеткой и все работает.
|
|||
|
43
Fenikus
24.05.11
✎
14:08
|
(41,42)внизу также второй пункт. У тебя путь к базам дбф сетевой?
|
|||
|
44
viktor_vv
24.05.11
✎
14:09
|
И базы ДБФ по сети цепляются к SQL. Но правда домен есть, может поэтому и работает.
|
|||
|
45
Fenikus
24.05.11
✎
14:30
|
(44)Забыл еще сказать, что при подключении через терминал все работает
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |