memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
Можно ли в MS SQL Server 2000 в поле типа text таблицы засунуть содержимое файла(бинарного), то есть аналог фоксовской функции APPEND MEMO?
|
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
Ты как это хочешь сделать в TSQL или из фокса.
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
pavel1977 |
Из TSQL (Мне нужен файл добавить в таблицу на сервере, чтобы это сделала хранимия процедура сервера)
|
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
Как сделать, те подцепить на сервере txt файл и засунуть его в таблицу я не делал, а если тебе надо подцепить txt файл из фокса и передать этот файл в таблицу SQL (причем таблица м.б. временная), то делается это так
- в фоксе делается курсор с мемо полем и в него загоняется файл txt - затем в SQLEXEC передается значение поля через "?" - теперь BLOB данные на сервере, и там уже с ними делай , что надо через UPDATETEXT и далее по ссылкам. Чем могу. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
Мне нужно, что бы файл с сервера (и не обязательно txt) можно было перекочать на клиентскую машину.
Конечно есть вариант занести все нужные файлы в поле BLOB таблицы сервера, а потом с помощью фокса прямо из этой таблицы копировать в файл. Но как мне занести эти файлы в таблицу сервера? Неужели надо использовать фокс? |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
Тогда, не очень понял.
Цитата:Если просто переписать, то COPY FILE Поясни, подробнее что в итоге надо - Есть файл и его надо засунуть в таблицу SQL - Есть файл и его надо просто переписать на клиента - Есть таблица с BLOB и от туда надо вытащить данные на клиента или, что-то другое? ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, PaulWist!
Наверное с клиента нету прямого доступа к ФС сервера (т.е. нету шар, или нету прав на чтение), а у MS SQL-я есть - вот "через него" и нужно соорудить. ------------------ WBR, Igor |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
2Igor Korolyov
Если так, то утилита bcp Цитата: ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
Да Igor Korolyov правильно понял.
А PaulWist'у спасибо. Нашел в хелпе про BCP, буду изучать? |
Re: memo поле из файла в MS SQL Server | |
---|---|
oleg_km Сообщений: 487 Откуда: СПб Дата регистрации: 02.12.2002 |
Мое личное мнение, но вот аналог этой BCP лучше тоже сделать на VFP и пусть с помощью этой твоей утилиты данные на SQL Server и заливается. Это может смахивает на манию VFP (утилиты на VFP, драйверы на VFP, службы на VFP), но все, что пытался использовать готовое (всякие утилитки пр.) потом пришлось сделать на VFP (аналог DTS например)
|
Re: memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
Я еще в SQL Server слаб, но допустим создам с помощью sp_OACreate объект фокса, а какие таблицы мне в этом фоксе будут доступны? Или наоборот, в этом фоксе создам курсор, будет ли он мне доступен в Server'e и как ?
|
Re: memo поле из файла в MS SQL Server | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, PaulWist!
Хм, а как же ты её запустишь то на сервере, если у тебя кроме ODBC коннекции к MS SQL на нём ничего нету? Даже если bcp использовать, надо искать на сервере ХП, которая обеспечит запуск процесса на хост-системе... IMHO всё же что-то тут не то идеологически... ------------------ WBR, Igor |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
2Igor Korolyov
Цитата: ну вообщем понятно, из коннекции подпихиваем строку с xp_cmdshell Bcp.exe ...., главное, что бы разрешения были на её выполнение (во кстати, ты как-то задавал вопрос - "а зачем использовать доменную учетную запись для самого сервера", вот вроде и ответ ) 2Pavel1977 Давай опиши, что есть и что надо получить, а то мы здесь все сообща догадываемся и направляем тебя в разные стороны ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
oleg_km Сообщений: 487 Откуда: СПб Дата регистрации: 02.12.2002 |
Кто должен инициировать процесс залива?
Если Планировщик Windows, или Планировщик MSSQL, то просто делаешь приложение VFP, через параметры передаешь варианты залива, а в программе производишь нужные действия. Если сам MSSQL и не хочется использовать xp_cmdshell (нужна синхронность, не знаю, синхронно оно запускает или асинхронно), то сделай COM, дергай его свойства и методы, которые и будут заливать данные на MSSQL Сам T-SQL не имеет встроенных функций по работе с текстовыми файлами, поэтому в любом варианте это все реализуется клиентским приложение (или родной утилитой bcp, или твоей на VFP) |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
2oleg_km
Да ни кто и не спорит, варианты есть разные, а для того, что бы выбрать какой подойдет, надо иметь представление о решаемой задаче, а так и для меня на фоксе легче соорудить, единственное ограничение, а можно-ли на сервер поставить фокс утилиту или нет. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, PaulWist!
Цитата:Во-во, я про это и имел в виду Но всё-равно что-то тут не то... Если нужен доступ - то давай доступ аккаунту юзера на нужные шары, а сначала всё позакрывать, чтобы потом искать пути обхода Что-то не то с логикой IMHO. ------------------ WBR, Igor |
Re: memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
В принципе я задавал вопрос в теме "Re: Доступ к папке вSQL Server 2000" на этом форуме. Постараюсь кратко и дохотчиво обьяснить суть проблемы( повторно). На сервере есть таблица со списком названий материалов, а сами материалы хранятся в файлах (Word) в одной папке на этом же компьютере(сервере).То есть для каждой записи таблицы соответстует файл из папки. Я хочу, чтобы с клиенского компютера можно было прочитать файлы только через клиенскую программу, которая использует соединение SQLServer'a. Я сначала хотел получить доступ к этой папке через Sevrer, но PaulWist меня в этом разубедил и дал мне три совета:
- использовать Com Remote сервер ( но все-таки если я уже использую SQL Sever зачем мне писать свой сервер); - использовать скрытое подключение (но тут ссылку мне так и не дали); - использовать Extended SP самого сервера. Extended SP - это расширенные хранимые процедуры через DLL, а классческую DLL на фоксе не напишешь, и я решил, что если бы в SQL Server'e была была команда аналогичная фоксовской команде Append Memo, то все стало бы просто. Я бы написал простую хранимую процедуру, которая бы копировала файл через поле типа text временной таблицы на сервере(а можно и не временой). В принципе утилита BCP я думаю подойдет, может попробую через фокс. Так , что спасибо за помощь, пока для прорабатывать это, но если еще чем подскажите, то буду рад. P.S. Можно было все эти файлы занести в text поля этой таблицы, но тогда база может расширится за пределы 2 Гбайта, что не есть хорошо (конечно это не DBF файлы, но я где-то слышал что проблемы могут быть у любых файлов). Да кто иногда может быть удобно работать на серверном компьютере с этими файлами без программы. |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
2Igor Korolyov
Цитата: Ага, понял где у нас разночтения - аккаунт юзера - это физический юзер кот. ходит в систему (Иванов И.И.), те его пускают в сеть - аккаунт сервера - это аккаунт пользователя домена, кот. даны разрешения на выполнения операций внутри домена (в частности запускать экземпляр сервера) и эти операции может инициировать (моё, твоё) клиентское приложение, но не как не аккаунт юзера. На мой взгляд логично 2Pavel1977 Цитата: нет не так - ты создаешь OLEPUBLIC класс в фоксе и выполняешь его на сервере, а на клиенте получаешь результат (читай твой DOC файл) Цитата: виноват, даже не помню где видел такое решение (ребята я думаю подскажут) Цитата: Вот эта xp_cmdshell и есть Extended SP только встроенная в MSSQL, те в принципе ты можешь написать xp_cmdshell MyFox.exe, с помощью MyFox.exe залить твой Doc в BLOB и следующим шагом выдернуть по своему соединению этот файл на клиента. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
oleg_km Сообщений: 487 Откуда: СПб Дата регистрации: 02.12.2002 |
Цитата: Я думаю - этот вариант самый лучший вариант, потому что на VFP это будет буквально 10 строчек кода, а наворот через SQL Server - даже не могу посчитать, даже с правами можно разрулить на нужные документы - на файлы ставятся нужные права, а Remote COM для чтения вызывает CoImpersonateClient. |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14618 Дата регистрации: 01.04.2004 |
2oleg_km
По поводу 10 строк наверное ты погорячился, одно упоминание об обработке ошибки в СОМ сервере приведет в уныние , хотя всё делается ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
© 2000-2024 Fox Club  |