powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Cache+Delphi5
25 сообщений из 46, страница 1 из 2
Cache+Delphi5
    #34948410
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток!! пoмогите пожалуйста решить проблемку...
Есть глобальная переменная в Cache' в которой храниться очень много данных (сам файл весит около 4-5гиг). Мне нужно перенести частично все данные из глобали Cache в файл любого формата и обратно. Эт все необходимо осуществить на Delphi. Помогите Пожалуйста!!!!
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34949027
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вариант, напиши метод который скопирует нужные тебе узлы во временный глобал и запишет его в файл...
Как вызвать кащейский метод из Дельфи описано в OQS.
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34949900
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если файл нужно получить на сервере, то да, а если на клиенте, наверное, через Delphi придется действовать.

Вот информация о вариантах взаимодействия с Delphi .

Вадим
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34951585
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa Как вариант, напиши метод который скопирует нужные тебе узлы во временный глобал и запишет его в файл...
Как вызвать кащейский метод из Дельфи описано в OQS.
я еще плохо знаю программирование... как это правильно можно реализовать в коде? помогите пожалуйста...

Вадим Вот информация о вариантах взаимодействия с Delphi.
к сожелению, ссылка не работает...
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34952033
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewWorldкак это правильно можно реализовать в коде?
Нечто такое
Код: plaintext
1.
2.
3.
4.
5.
6.
 m ^tmp( 1 )=^Data( 1 )
 m ^tmp("Info")=^Data("Info")
 m ^tmp("Home","OOO NPC Air")=^Data("Home","OOO NPC Air")
...
 s file="c:\box\data.xml"
 s ok=$system.OBJ.Export("tmp.gbl",file)
...
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34952053
NoGot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Толку то? Если человек даже ссылку поправить не в состоянии, думаешь он разберется в этом коде?
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34952184
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если со ссылкой не получилось в явном виде добавлю информацию о Cache' и Delphi:


Высылаю Вам материалы по Delphi.
Если Вы стартуете новый проект, советую убедиться, что Вы используете последнюю версию Cache' 2007.1.

Информация про Delphi:

В Cache' реализована концепция Единой архитектуры данных. К одним и тем же данным, хранящимся под управлением сервера многомерных данных Cache' есть три способа доступа: прямой (на уровне многомерных массивов Cache'), объектный и реляционный.

Так как с реляционным доступом я думаю, Вы знакомы, стоит обратить внимание на поддержку объектов (рекомендую посмотреть на учебный курс по объектам Cache' Object QuickStart http://www.intersystems.ru/education/ObjectQS.zip, в котором есть и пример работы с Delphi, и на раздел Using Cache' Objects документации Cache') и работу с многомерными массивами Cache' (информацию можно найти в документации: Developing Applications with Cache' - Using Cache' Multi-Dimensional Storage).

При установке Cache' автоматически устанавливается документация. На сайте InterSystems есть ссылка на On-line версию документации (http://docs.intersystems.com/cache20071/csp/docbook/DocBook.UI.Page.cls).

Материалы про разные типы доступа к Cache' стоит просмотреть независимо от того, какой интерфейс Вы будете использовать при разработке.

Вы можете использовать объектные интерфейсы Cache'. ActiveX-интерфейc позволяет Вам работать из любого ActiveX-совместимого инструментального средства (в том числе и Delphi) непосредственно с классами Cache'. Примеры Вы сможете найти в курсе Object QuickStart на нашем сайте (http://www.intersystems.ru/education/ObjectQS.zip).

Есть еще интересный подход, когда экспортируют из Cache' ODL классов и используют раннее связывание, но это большая отдельная тема ...

И Cache', и Delphi поддерживают работу с Web-сервисами. Вы можете работать с классами Cache' из Delphi через SOAP-интерфейс.
Информацию о поддержке Web-сервисов в Cache' Вы можете найти в документации Cache' (Раздел Using SOAP and Web Services with Cache').

Вы можете использовать реляционные интерфейсы и работать с Cache' из Delphi через ODBC.
При этом, можно использовать как BDE, так и ADO компоненты. Кроме стандартных компонент Delphi, Вы можете использовать компоненты третих фирм. Например, DBExpress-компоненты компании EasySoft (www.easysoft.com).

Из программы на Delphi Вы можете обращаться непосредственно к многомерным массивам Cache' и запускать серверные программы с помощью компонента VisM (http://docs.intersystems.com/cache20071/csp/docbook/DocBook.UI.Page.cls?KEY=GCD_basics).

В файловых архивах почтовой конференции Cache_RU можно найти дополнительную информацию по взаимодействию Delphi и Cache':
- Пример на Delphi из учебного курса Pattaya (http://groups.yahoo.com/group/cache_ru/files/PattayaDelphi.zip).
- Cache' класс %XML.MyBaseDataSet, который позволяет на основе запроса Cache' получить Borland MyBase (DataSnap) XML DataSet (http://groups.yahoo.com/group/cache_ru/files/MyBaseDataSet.zip).

Вадим
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34952194
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с сылкой разобралась....
а вот код нужен не на каше а на делфи.... пожалуйста.
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34952333
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewWorldкод нужен не на каше а на делфи....
С этим извиняй... Дельфями у нас другой человек занивается. :) Я ему квикстарт дал почитать этого ему хватило.
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34952678
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а к кому можно обратиться?
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34953002
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй компоненту VisM примерно так:

procedure TForm1.Button1Click(Sender: TObject);
var la : integer;
a : string;
fD : TFileStream;
begin
a := '^AAA(1)';
la := Length(a);
VisM1.P1 := a;
while copy(VisM1.P1,1,la) = a do begin
VisM1.Execute('S P1=$Q(@P1),P2="" I P1''="" S P2=@P1');
fD.WriteLn(VisM1.P1+ #9 + VisM1.P2;)
end;
end;
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34953983
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NewWorldа к кому можно обратиться?
Скачать таки этот ОбжектКвикСтарт и таки его прочитать... :)
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34954157
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь СойниковИспользуй компоненту VisM примерно так:

procedure TForm1.Button1Click(Sender: TObject);
var la : integer;
a : string;
fD : TFileStream;
begin
a := '^AAA(1)';
la := Length(a);
VisM1.P1 := a;
while copy(VisM1.P1,1,la) = a do begin
VisM1.Execute('S P1=$Q(@P1),P2="" I P1''="" S P2=@P1');
fD.WriteLn(VisM1.P1+ #9 + VisM1.P2;)
end;
end;

подключение происходит, а затем ошибка : "I/O error 103" ...
у себя изменила только на свою функцию '^FP("Spr",PrName)'
и вместо "fD.WriteLn(VisM1.P1+ #9 + VisM1.P2;)" изменила на "WriteLn(VisM1.P1+ #9 + VisM1.P2);"
из-за чего может быть ошибка, из-за списка...?? ((
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34954415
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Писал в спешке у FileStream нет метода WriteLn только Write(буфер, размер буфера) см.Help
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34954740
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо огромнеешее!!!!! запись в файл происходит!!! :)
а еще один вопросик тоже самое только наоборот т.е. запись из файла в переменную каше?
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34954886
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
эээээээээх...не то оно делает....
в файл записывается строка "а" т.е. название переменной.
procedure TFmLoad.Button1Click(Sender: TObject);
var la : integer;
a : string;
F : TFileStream;
begin

if FileExists('test.dat')
then f:=TFileStream.Create('test.dat',fmOpenWrite+fmShareDenyNone)
else f:=TFileStream.Create('test.dat',fmCreate);

a := '^FP("Dt",PrName)';
la := Length(a);
VisM1.P1 := a;
while copy(VisM1.P1,1,la) = a do
begin
VisM1.Execute('SetSM^Ft');
F.Write(pchar(a)^,length(a));
end;
end;

в файл записывается " ^FP("Dt",PrName)^FP("Dt",PrName)^FP("Dt",PrName)^FP("Dt",PrName).. " и так весь файл... (((
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34955570
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
естественно т.к. возвращаются переменные от P0 до P9.
по моему примеру желательно сделать так:
a - изменять нельзя

b := VisM1.P1; // это индекс (ссылка на глобаль)
c := VisM1.P2; // это содержимое
запись должна иметь формат (длина индекса)_индекс_(длина данных)_содержимое
var
lb : word;

lc : word;
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34955582
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
var lb,lc : word; //
lb := length(b);
lc := length(c);

buf := lb + b + lc + c; /не забудте про преобразование;

write(buf, length(buf);
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34957299
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо огромное, сейчас буду пробывать...
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34958069
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот вызываю...

procedure TFmLoad.Button1Click(Sender: TObject);
var
la : integer;
lb,lc : word;
a,b,c: string;
F : TFileStream;
buf : PChar;
begin
if FileExists('test.dat')
then f:=TFileStream.Create('test.dat',fmOpenWrite+fmShareDenyNone)
else f:=TFileStream.Create('test.dat',fmCreate);

a := '^FP("MorionSpr",PrName)';
VisM1.P1:='^FP("Spr")';
b := VisM1.P1;
VisM1.P2:='PrName';
c := VisM1.P2;
la := Length(a);
lb := length(b);
lc := length(c);

VisM1.P1 := a;
while copy(VisM1.P1,1,la) = a do
begin
VisM1.Execute('SetSM^Ft');
buf := StrToPChar(IntToStr(lb) + b + IntToStr(lc) + c);
F.Write(buf, length(buf));
end;
ShowMessage('Çàïèñü äàííûõ â ôàéë çàâåðøåí.');
end;

а в файл записывается непонятно что...
аAЊ AЊ а@Њ hх ¬^B 8ЊBЊ AЊ а@Њ hх ¬^B 8dCЊ AЊ а@Њ hх ¬^B 8<DЊ AЊ а@Њ hх ¬^B 8EЊ AЊ а@Њ hх ¬^B 8мEЊ AЊ а@Њ hх ¬^B 8ДFЊ AЊ а@Њ hх ¬^B 8њGЊ AЊ а@Њ hх ¬^B 8tHЊ AЊ а@Њ hх ¬^B 8LIЊ AЊ а@Њ hх ¬^B 8$JЊ AЊ а@Њ hх ¬^B 8ьJЊ AЊ а@Њ hх ¬^B 8ФKЊ AЊ а@Њ hх ¬^B 8¬LЊ AЊ а@Њ hх ¬^B 8„MЊ AЊ а@Њ hх ¬^B 8\NЊ AЊ а@Њ hх ¬^B 84OЊ AЊ а@Њ hх ¬^B 8PЊ AЊ а@Њ hх ¬^B 8дPЊ
и.т.д.

че делать?? :((
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34958083
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или еще так....

мAЊ$AЊAЊа@Њ
hх¬^B˜BЊ$AЊAЊа@Њ
hх¬^BpCЊ$AЊAЊа@Њ
hх¬^BHDЊ$AЊAЊа@Њ
hх¬^B EЊ$AЊAЊа@Њ
hх¬^BшEЊ$AЊAЊа@Њ
hх¬^BРFЊ$AЊAЊа@Њ
hх¬^BЁGЊ$AЊAЊа@Њ
hх¬^BЂHЊ$AЊAЊа@Њ
hх¬^BXIЊ$AЊAЊа@Њ
hх¬^B0JЊ$AЊAЊа@Њ
hх¬^BKЊ$AЊAЊа@Њ
hх¬^BаKЊ$AЊAЊа@Њ
hх¬^BёLЊ$AЊAЊа@Њ
hх¬^BђMЊ$AЊAЊа@Њ
hх¬^BhNЊ$AЊAЊа@Њ
hх¬^B@OЊ$AЊAЊа@Њ
hх¬^BPЊ$AЊAЊа@Њ

(
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34958164
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Вас случайно в Cache не Unicode?
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34958197
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы же как присвоили первоначальные значения для a и b так их и не изменяете после выполнения программы в Cache!!!
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34958284
NewWorld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да... так а если их обратно из файла в глобаль... уже не получиться?
...
Рейтинг: 0 / 0
Cache+Delphi5
    #34958488
Игорь Сойников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень даже получится.
...
Рейтинг: 0 / 0
25 сообщений из 46, страница 1 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Cache+Delphi5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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