Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 использование OSQL  [new]
Mandarin
Member

Откуда: Саратов
Сообщений: 1217
все привет!

использую программу osql для выполнения хранимой процедуры

osql -U sa -P kolbasa -S srv -d mybd -q "exec myproc 'C:\123.tmp','C:\321.tmp',2211" -o "C:\log.log"

процедура с такими параметрами не выполняется возвращает ошибку, проверял через SQL Maager, ошибку получаю намерено для тестирования рабочего процесса.

мне надо текст ошибки получить в лог файл -o "C:\log.log", но при выполнении вышеописанной команды программа osql задумывается на неопределенное время пока ее через диспетчер задач не отключишь, при этом программа osql держит открытым лог файл, при закрытии osql лог файл становиться доступным для чтения и содержит нужную мне информацию.

если я вместо параметра -q использую параметр -Q (из справки "Выполняет запрос и немедленно завершает программу osql. Используйте двойные кавычки для запроса и одинарные кавычки для выражений, содержащихся в запросе")

то программа osql не зависает не отрабатывает запрос (что естественно потому он заранее сделан не правильным) и не записывает текст ошибки в мой лог файл

подскажите как избавиться от зависания программы osql и получить информацию об ошибке в мой лог файл ?

P/S/ может ли это быть связанно с именами файлов, для временных файлов я использую имена сформированные с помощью GUID
например: имя файла лога 5656{233B4A9A-C220-4D77-8B51-3D534D8999E0}.tmp
28 июл 11, 17:50    [11041114]     Ответить | Цитировать Сообщить модератору
 Re: использование OSQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
А ошибка то будет опубликована ?
28 июл 11, 18:01    [11041215]     Ответить | Цитировать Сообщить модератору
 Re: использование OSQL  [new]
Mandarin
Member

Откуда: Саратов
Сообщений: 1217
Glory,

думаю что тут не в ошибке дело

ошибка сама простая

Массовая загрузка невозможна, так как файл
"C:\Work\Com_Po\Repiter_Socket\EXE\Temp\5656{304C8137-6E36-4217-9970-5
BE1EE1F75E2}.tmp" не удалось открыть. Код ошибки операционной системы
3(Системе не удается найти указанный путь.).

не выполняется потому что на сервере нет такого файла он есть у меня локально на компьютере, мне нужно чтобы osql своевременно об этом в лог файл записал и не претворялся зависшим
28 июл 11, 18:05    [11041257]     Ответить | Цитировать Сообщить модератору
 Re: использование OSQL  [new]
Mandarin
Member

Откуда: Саратов
Сообщений: 1217
Mandarin,

и еще попутно вопрос.. если osql отрабатывает без ошибок как сделать так чтобы пустой лог файл либо не создавался либо удалялся ?
28 июл 11, 18:06    [11041277]     Ответить | Цитировать Сообщить модератору
 Re: использование OSQL  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8879
... а редакция поди Express и job-ы не возможны ....
28 июл 11, 23:23    [11042367]     Ответить | Цитировать Сообщить модератору
 Re: использование OSQL  [new]
Уленшпигель
Member

Откуда:
Сообщений: 115
Mandarin,

используйте вместо текста запроса (-q) команды из файла (-i или <). В файле должно быть что-то вроде

SELECT * FROM abc --запрос
GO                        --обязательно перед quit
QUIT                     --команда osql выйти прямо сейчас

Сама же команда для консоли будет иметь вид наподобие

osql -U sa -P kolbasa -S srv -d mybd <osql.sql >"C:\log.log"
29 июл 11, 13:01    [11044592]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить