Re: memo поле из файла в MS SQL Server | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, PaulWist!
А чего там такого особого обрабатывать нужно то? Для такого простого случая банального COMRETURNERROR(tcMethod, MESSAGE()) в Error Event класса должнго быть более чем достаточно. Переложим значится обработку на плечи клиента ------------------ WBR, Igor |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
2Igor Korolyov
Игорь. Как сам понимаешь, есть классифицируемые ошибки , те файл есть или нет, файл доступен или нет итд, с другой стороны возможна ошибка о которой мы например не подозреваем , например файл есть, доступен, а содержание не соответствует тому, что мы ожидаем, вот про эту ситуацию я и говорил ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
Создаю объек фокса так
Exec @er=dbo.sp_OACreate 'VisualFoxPro.Application',@oNew OUT Но как получить доступ из этого объекта к таблице на сервере? Или может наоборот создать в объекте курсор и добавить в него файл: Exec @er=dbo.sp_OAMethod @oNew,DoCMD,NULL,'create cursor vrem (f1 m)' Exec @er=dbo.sp_OAMethod @oNew,DoCMD,NULL,'Append Blank' Exec @er=dbo.sp_OAMethod @oNew,DoCMD,NULL,'Append memo f1 from "c:\1.txt"' Но как из этого курсора добавить добавить в таблицу на сервере? |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
2Pavel1977
Ну ты даешь, у меня и в мыслях такого подхода не было. Во теперь образовалось четвертое решение. Давай его рассмотрим, хотя всё основное ты уже и сам сделал, те коннектимся к серверу и добавляем файл в BLOB
Мне казалось , более простое решение Есть наш ЕХЕ на фоксе (но который лежит на сервере), в котором прописаны все действия те - SQLCONNECT() - CREATE CURSOR - APPEND MEMO - SQLEXEC() и далее по xp_cmdshell запускаем наш ехе-шник с параметрами, который и заливает файл, получаем статус выполнения ехе-шника и вытягиваем на клиента BLOB поле. Тоже самое м. сделать через OLEPUBLIC класс. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
oleg_km Сообщений: 487 Откуда: СПб Дата регистрации: 02.12.2002 |
Вопрос, нужны ли такие извраты, вот пример:
Сервер:
Может такой вариант устроит или все-таки нужно, чтобы тоже самое сделалось через SQL [i][small][color=Gray]Отредактировано (16.11.04 13:25) ------------------ |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
2oleg_km
Так понимаю, что 2Pavel1977 еще и сам не определился. Маленькая не принципиальная ошибочка.
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, PaulWist!
Дык это должен уже клиент решать - ему файл отдан, он его и разбирает... Конечно если разбор идёт на сервере - то там должна быть своя система отлова ошибок - ну или "предупредительная" система - типа размер < 100 - COMRETURNERROR(PROGRAM(), "Файл поврёждён")... ------------------ WBR, Igor |
Re: memo поле из файла в MS SQL Server | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, oleg_km!
Хм. Как-то странно выглядит система - сначала открываем файл в контексте пользователя, и лишь потом, уже вернувшись в контекст самого серверного процесса мы его читаем - не вызовет ли это проблем с правами? Неужели после FOPEN+FCLOSE доступ к файлу сохранится с теми-же правами? Могут лучше убрать CoRevertToSelf() от греха подальше? Тем более что согласно MSDN это происходит автоматически по завершению метода? ------------------ WBR, Igor |
Re: memo поле из файла в MS SQL Server | |
---|---|
oleg_km Сообщений: 487 Откуда: СПб Дата регистрации: 02.12.2002 |
Замысел был такой - сделать универсальную проверку и начичия самого файла и прав на него и избежать исключения (которое бы возникло, если FILETOSTR вызвать в контексте пользователя, у которого нет прав на открываемый файл). Само же чтение после проверки производится с правами сервера, которые предполагаются как у администратора.
Просто столкнулся со следующими вполне объяснимыми вещами, используя DCOM. На сервере, котором он работает, сильно ограничены права пользователей, вплоть до того, что по умолчанию все файлы имеют права только для администраторов (кроме естественно шар), и как результат, DCOM в контексте пользователя не может даже DLL подцепись. Может нужно сменить права на более мягкие (дать пользователям хотя-бы Read), но мы решили ничего не менять, а я для себя выработал правило - в DCOM'е только необходимые операции выполняются в контексте пользователя, а все остальные - в режиме администратора [i][small][color=Gray]Отредактировано (16.11.04 15:42) ------------------ |
Re: memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
Получилось, но криво как-то получатется что с сервера запускается программа, которая с ним же соединятся.
|
Re: memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
Это интересно!
Не могли вы мне ссылочку, где можно почитать про функции из ole32, что бы хоть примерно понять, что сдесь делается! |
Re: memo поле из файла в MS SQL Server | |
---|---|
oleg_km Сообщений: 487 Откуда: СПб Дата регистрации: 02.12.2002 |
Не совсем понял, про что ссылочку
|
Re: memo поле из файла в MS SQL Server | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, oleg_km!
А, так значит оно так и задумано А то я уж стал волноваться, что чего-то не понимаю Ну теперь понятно... В принципе сегодня делать DCOM IMHO не стоит - гораздо проще сделать через COM+ - там и с правами как-то попонятнее, и вообще простора для манёвра поболе будет Тока я бы на всякий случай файл для передачи заворачивал в BASE64 (благо все средства уже имеются в VFP7 и старше - одна доп. функция ) - для COM оно вроде без разницы, а вот ежели потом вокруг этого COM-а соорудить WebService - очень даже пригодится... ------------------ WBR, Igor |
Re: memo поле из файла в MS SQL Server | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi, Pavel1977!
Цитата:Как обычно - в MSDN. ------------------ WBR, Igor |
Re: memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
Где есть описание функций CoImpersonateClient() и CoRevertToSelf(). Желательно на русском.
с фоксом такая информация не поставляется. Я нашел в справке для Delph (MS SDK), но там про эти функции ничего нет. |
Re: memo поле из файла в MS SQL Server | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
См здесь.
msdn.microsoft.com ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: memo поле из файла в MS SQL Server | |
---|---|
oleg_km Сообщений: 487 Откуда: СПб Дата регистрации: 02.12.2002 |
Я узнал из [url]www.rsdn.ru/article/com/comsec.xml[/url]
|
Re: memo поле из файла в MS SQL Server | |
---|---|
Pavel1977 Автор |
Спасибо
|
© 2000-2024 Fox Club  |