Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
Доброе время суток!! пoмогите пожалуйста решить проблемку... Есть глобальная переменная в Cache' в которой храниться очень много данных (сам файл весит около 4-5гиг). Мне нужно перенести частично все данные из глобали Cache в файл любого формата и обратно. Эт все необходимо осуществить на Delphi. Помогите Пожалуйста!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 11:59 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
Как вариант, напиши метод который скопирует нужные тебе узлы во временный глобал и запишет его в файл... Как вызвать кащейский метод из Дельфи описано в OQS. ---------- Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 14:40 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
Если файл нужно получить на сервере, то да, а если на клиенте, наверное, через Delphi придется действовать. Вот информация о вариантах взаимодействия с Delphi . Вадим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.11.2007, 18:05 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
krvsa Как вариант, напиши метод который скопирует нужные тебе узлы во временный глобал и запишет его в файл... Как вызвать кащейский метод из Дельфи описано в OQS. я еще плохо знаю программирование... как это правильно можно реализовать в коде? помогите пожалуйста... Вадим Вот информация о вариантах взаимодействия с Delphi. к сожелению, ссылка не работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 12:55 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
NewWorldкак это правильно можно реализовать в коде? Нечто такое Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 14:28 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
Толку то? Если человек даже ссылку поправить не в состоянии, думаешь он разберется в этом коде? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 14:33 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
Если со ссылкой не получилось в явном виде добавлю информацию о 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). Вадим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 15:02 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
с сылкой разобралась.... а вот код нужен не на каше а на делфи.... пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 15:04 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
NewWorldкод нужен не на каше а на делфи.... С этим извиняй... Дельфями у нас другой человек занивается. :) Я ему квикстарт дал почитать этого ему хватило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 15:26 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
а к кому можно обратиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 16:36 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
Используй компоненту 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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 17:52 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
NewWorldа к кому можно обратиться? Скачать таки этот ОбжектКвикСтарт и таки его прочитать... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 09:01 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
Игорь СойниковИспользуй компоненту 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);" из-за чего может быть ошибка, из-за списка...?? (( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 10:07 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
Писал в спешке у FileStream нет метода WriteLn только Write(буфер, размер буфера) см.Help ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 11:02 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
спасибо огромнеешее!!!!! запись в файл происходит!!! :) а еще один вопросик тоже самое только наоборот т.е. запись из файла в переменную каше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 12:02 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
эээээээээх...не то оно делает.... в файл записывается строка "а" т.е. название переменной. 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).. " и так весь файл... ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 12:32 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
естественно т.к. возвращаются переменные от P0 до P9. по моему примеру желательно сделать так: a - изменять нельзя b := VisM1.P1; // это индекс (ссылка на глобаль) c := VisM1.P2; // это содержимое запись должна иметь формат (длина индекса)_индекс_(длина данных)_содержимое var lb : word; lc : word; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 15:02 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
var lb,lc : word; // lb := length(b); lc := length(c); buf := lb + b + lc + c; /не забудте про преобразование; write(buf, length(buf); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2007, 15:05 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
спасибо огромное, сейчас буду пробывать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 10:03 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
вот вызываю... 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Њ и.т.д. че делать?? :(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 13:20 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
или еще так.... мAЊ$AЊAЊа@Њ hх¬^BBЊ$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Ња@Њ ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 13:23 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
У Вас случайно в Cache не Unicode? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 13:43 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
Вы же как присвоили первоначальные значения для a и b так их и не изменяете после выполнения программы в Cache!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 13:51 |
|
||
|
Cache+Delphi5
|
|||
|---|---|---|---|
|
#18+
да... так а если их обратно из файла в глобаль... уже не получиться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2007, 14:10 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=34952194&tid=1559108]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
89ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 488ms |

| 0 / 0 |
