powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Манипуляции с файлами
6 сообщений из 6, страница 1 из 1
Манипуляции с файлами
    #37607185
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Появилась задачка с файлами... Нужно:
- Писать их в БД с диска, с клиента
- Писать из БД на диск

Что-то никак не найду в документации примеров как это делается...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
Cache for Windows (x86-32) 2009.1.3 (Build 704_0_9104) Mon Mar 8 2010 19:31:10 EST
...
Рейтинг: 0 / 0
Манипуляции с файлами
    #37607226
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Одно нашел...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
// open a text file using a %Library.File stream
Set file = ##class(%File).%New("\data\textfile.txt")
// same flags as OPEN command -- and requires "U" for streams
Do file.Open("RU") 

// Open a Person object containing a Memo stream
// and copy the file into Memo
Set person = ##class(Person).%New()
Do person.Memo.CopyFrom(file)
...
Рейтинг: 0 / 0
Манипуляции с файлами
    #37607230
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рискну предположить, что запись будет осуществляться в обратном порядке

Код: vbnet
1.
2.
3.
4.
5.
Set file = ##class(%File).%New("\data\textfile.txt")
Do file.Open("WU") 

Set person = ##class(Person).%OpenId(5)
Do file.CopyFrom(person.Memo)



Так?
А то пока и попробовать не на чем...
...
Рейтинг: 0 / 0
Манипуляции с файлами
    #37610732
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa ,

Из файла в БД:

set file=##class(%Stream.FileBinary).%New()
set file.Filename="c:\photo.jpg"
set person=##class(Person).%OpenId(5)
do person.Photo.CopyFrom(file)
do person.%Save()

Из БД в файл:

set file=##class(%Stream.FileBinary).%New()
set file.Filename="c:\photo_.jpg"
do file.CopyFromAndSave(##class(Person).%OpenId(5).Photo)
...
Рейтинг: 0 / 0
Манипуляции с файлами
    #37610996
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , спасибо. Твой вариант мне больше понравился.

Я пока вот такой использовал...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
load
	n
	s file="\\ksa\box\tmp\test"
	s oc=##class(soi.data.tmp).%OpenId(1)
	s file=file_"."_oc.str
	s of=##class(%File).%New(file)
	d of.Open("WNU")
	d of.CopyFrom(oc.test)
	d of.Close()
	k oc
	k of
	q
save
	n
	s file="\\ksa\box\tmp\t.jpg"
	s of=##class(%File).%New(file)
	d of.Open("RU")
	s oc=##class(soi.data.tmp).%New()
	s val=$re(file)
	s val=$p(val,".")
	s val=$re(val)
	s oc.str=val
	d oc.test.CopyFrom(of)
	d oc.%Save()
	d of.Close()
	k oc
	k of
	q
...
Рейтинг: 0 / 0
Манипуляции с файлами
    #37611118
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замастырил макросы для этого дела, может кому еще сгодятся.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
#define fileToProperty(%a,%b) s %file=##class(%Stream.FileBinary).%New(),%file.Filename=%a do %b.CopyFrom(%file)
#define propertyToFile(%cls,%id,%prp,%name) s %file=##class(%Stream.FileBinary).%New(),%file.Filename=%name do %file.CopyFromAndSave(##class(%cls).%OpenId(%id).%prp)
#define propertiesToFile(%prp,%name) s %file=##class(%Stream.FileBinary).%New(),%file.Filename=%name do %file.CopyFromAndSave(%prp)

load
	n
	s file="\\ksa\box\tmp\test"
	s oc=##class(soi.data.tmp).%OpenId(1)
	s file=file_"."_oc.str
	$$$propertiesToFile(oc.test,file)
	k oc
	q
save
	n
	s file="\\ksa\box\tmp\t.jpg"
	s val=$re(file)
	s val=$p(val,".")
	s val=$re(val)
	s oc=##class(soi.data.tmp).%New()
	s oc.str=val
	$$$fileToProperty(file,oc.test)
	d oc.%Save()
	k oc
	q
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Манипуляции с файлами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]