![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Составление сервисом запроса.
Серж © (2008-10-22 16:06:00)Добрый день.
У меня есть процедура, которая формирует запрос на вставку в MSSQL Server данных из файла.
Составленый процедурой запрос выглядит след. образом:
BULK INSERT MyDB..File_A FROM 'D:\Мои приложения\FileLoader\a3.win'
WITH (TABLOCK, FORMATFILE = 'D:\Мои приложения\FileLoader\FormatFiles\a.fmt');
Далее запрос помещается в ADOQuery и выполняется.
Процедура выполняется, если создать простое приложение. Но если в выполнять эту процедуру в приложении, которое в качестве сервиса, то вываливается ошибка:
Could not bulk insert because file 'D:\Мои приложения\FileLoader\FormatFiles\a.fmt' could not be opened. Operating system error code 3(error not found).
В чем может быть ошибка?
palva (2008-10-23 00:03:00) [1]Попробовать запускать сервер от имени того аккаунта, который имеет права?
Урсулап (2008-10-22 19:42:00) [2]"Ты недостаточно прав" (с)
:)
Правильный$Вася (2008-10-22 18:49:00) [3]
> Тупо копировал файл в корень диска. Писал ошибку что не
> может найти файл. Помещаю в какую-либо директорию пишет
> уже тогда что путь не найден.
типичный признак отсутствия прав
Поросенок Винни-Пух (2008-10-22 18:14:00) [4]Не понятно причем путь файла exe?
getcurrentdir будет разный для приложения и для сервиса, находящихся в одной и той же папке.
но если путь абсолютный, то это роли не играет.
а вообще см. [8]
Серж (2008-10-22 18:10:00) [5]Не понятно причем путь файла exe?
Не получается загрузить другие файлы с конктретно взятых директорий.
> 1. убери все пробелы в пути
Тупо копировал файл в корень диска. Писал ошибку что не может найти файл. Помещаю в какую-либо директорию пишет уже тогда что путь не найден.
> 2. убедись что путь к файлу абсолютный (текущий каталог
> процесса у приложения - папка с exe, у сервиса - windows\system32)
Все правильно.
Поросенок Винни-Пух (2008-10-22 17:45:00) [6]1. убери все пробелы в пути.
2. убедись что путь к файлу абсолютный (текущий каталог процесса у приложения - папка с exe, у сервиса - windows\system32)
Поросенок Винни-Пух (2008-10-22 17:43:00) [7]тогда верь сообщению об ошибке.
Серж (2008-10-22 17:41:00) [8]Локальный. Все на локале пока пробую.
Поросенок Винни-Пух (2008-10-22 17:37:00) [9]а D:\ это поди смаппленный сетевой диск
Серж (2008-10-22 17:35:00) [10]Подключение к серверу происходит по спецально созданному аккаунту с соотв. разрешениями в МSSQL. Он под ним и пытается выполнить запрос. MS SQL локальный.
stas (2008-10-22 17:21:00) [11]Серж (22.10.08 16:21) [2]
Если я не ошибаюсь сервис работает под SYSTEM?
А ты проверял?
На Sql у него доступ есть?
Anatoly Podgoretsky (2008-10-22 16:57:00) [12]> Серж (22.10.2008 16:21:02) [2]
А запрос под каким аккаунтом выполняется, и не пытается ли он (ты) лезть на сеть.
Серж (2008-10-22 16:21:00) [13]Если я не ошибаюсь сервис работает под SYSTEM?
У меня на данного пользователя стоит полный доступ.
Правильный$Вася (2008-10-22 16:19:00) [14]у сервиса нет прав на чтение файла или папки с файлом?