Текущий архив: 2008.11.30;
Скачать: CL | DM;
Вниз
Составление сервисом запроса. Найти похожие ветки
← →
Серж (2008-10-22 16:06) [0]Добрый день.
У меня есть процедура, которая формирует запрос на вставку в 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).
В чем может быть ошибка?
← →
Правильный$Вася (2008-10-22 16:19) [1]у сервиса нет прав на чтение файла или папки с файлом?
← →
Серж (2008-10-22 16:21) [2]Если я не ошибаюсь сервис работает под SYSTEM?
У меня на данного пользователя стоит полный доступ.
← →
Anatoly Podgoretsky © (2008-10-22 16:57) [3]> Серж (22.10.2008 16:21:02) [2]
А запрос под каким аккаунтом выполняется, и не пытается ли он (ты) лезть на сеть.
← →
stas © (2008-10-22 17:21) [4]Серж (22.10.08 16:21) [2]
Если я не ошибаюсь сервис работает под SYSTEM?
А ты проверял?
На Sql у него доступ есть?
← →
Серж (2008-10-22 17:35) [5]Подключение к серверу происходит по спецально созданному аккаунту с соотв. разрешениями в МSSQL. Он под ним и пытается выполнить запрос. MS SQL локальный.
← →
Поросенок Винни-Пух © (2008-10-22 17:37) [6]а D:\ это поди смаппленный сетевой диск
← →
Серж (2008-10-22 17:41) [7]Локальный. Все на локале пока пробую.
← →
Поросенок Винни-Пух © (2008-10-22 17:43) [8]тогда верь сообщению об ошибке.
← →
Поросенок Винни-Пух © (2008-10-22 17:45) [9]1. убери все пробелы в пути.
2. убедись что путь к файлу абсолютный (текущий каталог процесса у приложения - папка с exe, у сервиса - windows\system32)
← →
Серж (2008-10-22 18:10) [10]Не понятно причем путь файла exe?
Не получается загрузить другие файлы с конктретно взятых директорий.
> 1. убери все пробелы в пути
Тупо копировал файл в корень диска. Писал ошибку что не может найти файл. Помещаю в какую-либо директорию пишет уже тогда что путь не найден.
> 2. убедись что путь к файлу абсолютный (текущий каталог
> процесса у приложения - папка с exe, у сервиса - windows\system32)
Все правильно.
← →
Поросенок Винни-Пух © (2008-10-22 18:14) [11]Не понятно причем путь файла exe?
getcurrentdir будет разный для приложения и для сервиса, находящихся в одной и той же папке.
но если путь абсолютный, то это роли не играет.
а вообще см. [8]
← →
Правильный$Вася (2008-10-22 18:49) [12]
> Тупо копировал файл в корень диска. Писал ошибку что не
> может найти файл. Помещаю в какую-либо директорию пишет
> уже тогда что путь не найден.
типичный признак отсутствия прав
← →
Урсулап (2008-10-22 19:42) [13]"Ты недостаточно прав" (с)
:)
← →
palva © (2008-10-23 00:03) [14]Попробовать запускать сервер от имени того аккаунта, который имеет права?
Страницы: 1 вся ветка
Текущий архив: 2008.11.30;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.005 c