Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.008 c
2-1224477221
Fynjy
2008-10-20 08:33
2008.11.30
путь к файлу в разделе HKEY_CURRENT_USER software printer name


2-1224490297
Mozgan
2008-10-20 12:11
2008.11.30
Перенос компонента из delphi 6 в delphi 7


6-1195722943
Леонид Федьков
2007-11-22 12:15
2008.11.30
Повторный вызов idHttp1.Get(...)


2-1224785102
Wind
2008-10-23 22:05
2008.11.30
Получение адреса переменной


2-1224155412
Vlad Oshin
2008-10-16 15:10
2008.11.30
нужно как можно раньше контрлам формы повесить метод




   Наверх