powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / MS Excel связь с Cache
32 сообщений из 32, показаны все 2 страниц
MS Excel связь с Cache
    #38075739
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ранее читал что некторые из присутствующих активно используют MS Excel для вывода данных из БД Каше...

Можно посмотреть тестовый примерчик такого действа?
Например такого варианта:
- на первом листе есть ряд настроечных полей, в которые нужно внести нужные значения
- есть поле с именем глобала
- есть кнопка типа "Получить данные"
- при нажатии на кнопку происходит связь с Кащеем
- и чтение данных из того глобала
- заполняется табличка на другом листе, в две колонки "Узел" и "Значение"

Есть добрые самаритяне?
----------
Cache for Windows (x86-64) 2010.2.3 (Build 702) Tue Feb 15 2011 14:20:27 EST
Cache for Windows (x86-64) 2012.1.1 (Build 602) Wed Mar 7 2012 22:36:34 EST
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38075801
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я покажу пример прямого доступа используя VB6.
(такое же писать макрос на Екселе) для кнопки.
Разделителем между узлом и содержимое косая черта
Код: 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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
Private Sub excel_click()
Dim Ret1 As String, Hor As String
Dim Ret(65534) As String
Dim arrayX As Variant
Dim dm As Integer, cnt As Integer, n1 As Integer
Dim i As Long
Dim objExcel As Excel.Application

On Error GoTo Error
Set objExcel = New Excel.Application
txtLoad.Text = "Loading ..."
Me.MousePointer = vbHourglass
'*** Excel Export  -------------------------------------------------
objExcel.Workbooks.Add App.Path & "\Rap\blabla.xls"
objExcel.Worksheets(2).Activate
m.Do "NOTA^NALOG", Ret, dm, Er
    If Er <> "" Then
    MsgBox Er, vbInformation
    Exit Sub
    End If
            
arrayX = Ret
n1 = 16 '****Кидаем начиная с 17-ой строки ****
For cnt = 1 To dm
Ret1 = arrayX(cnt)
arr = Split(Ret1, "\")
n1 = n1 + 1
prb.VALUE = cnt
objExcel.Cells(n1, 2).VALUE = arr(0)
objExcel.Cells(n1, 6).VALUE = arr(1)
 Next cnt

    objExcel.Visible = True
    Set objExcel = Nothing
    
Me.MousePointer = vbDefault
txtLoad.Text = ""
prb.Refresh
Exit Sub
Error:
Me.MousePointer = vbDefault
Set objExcel = Nothing
MsgBox ("Error " & Err.Description)
   
End Sub

...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38075806
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuЯ покажу пример прямого доступа используя VB6.
Спасибо. Будет хоть с чего-то начать...
Я покажу спецу, который у нас ВБашит, может ему этого и хватит...
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38075900
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu , а где там собственно соединение с Кащеем? Запуск там чего-то и возврат значения?
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38075937
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в этом случае использовал Activate . В принципе можно
и другое .. VisM например или что-то еще
На сторону Екселя
Код: vbnet
1.
2.
3.
4.
5.
6.
Set m = CreateObject("m.Command")
'cache
m.Server = "192.168.1.101" 'Windows Host
m.PORT = 6330              'txtPort.Text
m.Login
m.Xecute ("ZN ""user"""")


На сторону каше
Код: vbnet
1.
2.
3.
4.
5.
GlbNodes(nod,i,er)
 ;Load 
 f i=1:1 s var=$Q(@var) q:var=""  d
 . s nod(i)=var_"\"_@var
 Quit
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38075967
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuВ принципе можно
и другое .. VisM например или что-то еще
Нее другое (особенно VisM) не интересно пока.

ValeriuНа сторону каше
Код: vbnet
1.
2.
3.
4.
5.
GlbNodes(nod,i,er)
 ;Load 
 f i=1:1 s var=$Q(@var) q:var=""  d
 . s nod(i)=var_"\"_@var
 Quit


Зачем передавать i и er?
Чему изначально равно var?

И самого вызова GlbNodes с параметрами я что-то не увидел...
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38075975
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa ,

Из VBA и не только Вы можете работать с СУБД Caché через VisM, ActiveX, ADO, ...
Примеры всех трёх вариантов для VBScript (что не суть важно) можно посмотреть здесь (в самом начале).

Вариант ADO для VBA уже рассматривался: 6304596
Готовый Excel файл с макросом во вложении .

Valeriu
Код: vbnet
1.
CreateObject("m.Command")

Это применимо для СУБД Caché?
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38075978
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , спасибо! Бум смотреть...
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38075994
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitЭто применимо для СУБД Caché?
Это MSM-Activate, который присутствует в Каше
[root@GTM cachesys]# cache
USER>zn "%sys"

%SYS>d ^APIMGR

Note: MSM-Activate can be configured from SYSGEN now


MSM-Activate Management Utility V4.4.0/Cache Config 1

Select APIMGR Option:

1 - Enable Remote MSM-Activate connections
2 - Disable Remote MSM-Activate connections
3 - List Current Servers
4 - Terminate MSM-Activate Server
5 - Configure MSM-Activate Username/Passwords
6 - Configure Security
7 - Configure a different Server

Select Option: 1

Known port for MSM-Activate Server <1666>: 6330

...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076042
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaЗачем передавать i и er?
Чему изначально равно var?
содрал просто код с готовой программы
i- чтобы на клиенте еще раз не считал сколько строк
в er можно передавать ошибку если она происходит, или какую то инфо(это на любителя)
var=^globalname ...
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076083
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu ,

MSM-Activate это на стороне сервера , а не клиента .

На стороне Excel-клиента установлены только клиентские библиотеки для подключения к СУБД Caché.
Эти библиотеки для x64 по умолчанию устанавливаются в каталог:
Код: plaintext
C:\Program Files (x86)\Common Files\InterSystems\Cache\

Какие именно из этих файлов отвечают за "m.Command"?
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076122
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitКакие именно из этих файлов отвечают за "m.Command"?
ftp://ftp.intersystems.com/pub/msm/utilities/MSMActivate44.zip
Это устанавливается на стороне клиента...
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076144
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использую только это
msmole32.dll
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076238
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu ,
MSM-ActivateInterSystems recommends that, as a long-term goal, you convert your MSM-Activate based applications to native Caché technology.
источник Безусловно, Ваш вариант - тоже вариант:

включить на сервере MSM-Activate
поставить на клиент библиотеки MSM
использовать интерфейсы MSM

Но я не нашёл у ТС упоминаний об MSM.
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076270
MX-9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaРанее читал что некторые из присутствующих активно используют MS Excel для вывода данных из БД Каше...

Можно посмотреть тестовый примерчик такого действа?
Например такого варианта:
- на первом листе есть ряд настроечных полей, в которые нужно внести нужные значения
- есть поле с именем глобала
- есть кнопка типа "Получить данные"
- при нажатии на кнопку происходит связь с Кащеем
- и чтение данных из того глобала
- заполняется табличка на другом листе, в две колонки "Узел" и "Значение"

Есть добрые самаритяне?
----------
Cache for Windows (x86-64) 2010.2.3 (Build 702) Tue Feb 15 2011 14:20:27 EST
Cache for Windows (x86-64) 2012.1.1 (Build 602) Wed Mar 7 2012 22:36:34 EST

Активно используют - пожалуй не то слово !

Мы буквально находимся ВНУТРИ искусственно созданного EXCEL ,
который находится ВНУТРИ CACHE и ИНТЕРАКТИВНО отображается на множество клиентов
на их обычные EXCEL - одновременно - но в разных сечениях.

Клиенты вводят - редактируют - генерят отчеты - и т п,
как бы - с их точки зрения - в каком то особо навороченом EXCEL
(на самом деле работает только один на всех виртуальный EXCEL, встроенный в CACHE )

Такая завязка дала множество бонусов :
-- скорость CACHE !
-- многооконность
-- многомерность обьектов виртуального EXCEL ( в обычном EXCEL только три измерения : листы - строки - колонки )
-- проектирование БЕЗ написания программ - только формулы в ячейках листов
-- формы генерятся автоматом на основе тех же формул в ячейках
-- единая база данных на много десятков EXCEL-абонентов (в ней все данные - в EXCELях пользователей только формулы)
-- все бантики Microsoft Office для идеального оформления отчетов - диаграмм - dashboards
-- удобный табличный ввод данных со всеми подстраховками и подсказками


из фишек -

- на листах EXCEL находятся сотни невидимых "проектов" кнопок, списков, изображений
которые отрисовываются в нужный момент - по необходимости -
например при наведении мышки на данную зону
поэтому не загромождают вид и не сжирают время на отрисовку при запуске

- есть, например, круиз-контроль - по скопированной или автоматически составленой дорожной карте
система сама собой работает - вводит данные - нажимает кнопки - выбирает из списков - выдает отчеты
(пользователь пьет кофей или пиво)

клиент связан с сервером по tcp (не vism и не activate )
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076354
Александр GAGADDDOC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можна посмотреть тут.
Работаем из таблицей Ексель постоянно и в MSM и с Кашой

http://www.docadd.narod.ru/PROGPRK.htm
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076424
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MX-9 , многабукафф но нет примеров которые можно посмотреть и опробовать...
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076433
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit Готовый Excel файл с макросом во вложении .
На его основе получил то, что хотел.
Еще раз спасибо.
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076988
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitПримеры всех трёх вариантов для VBScript (что не суть важно) можно посмотреть здесь (в самом начале).
Я совсем не искушон в этом деле... Расскажи что потом можно будет делать с этим?

servitПример реляционного доступа:
Код: vbnet
1.
2.
3.
4.
5.
Set cn=Createobject("ADODB.Connection") 

cn.ConnectionString="DRIVER={InterSystems ODBC35}; SERVER=127.0.0.1; PORT=1972; DATABASE=SAMPLES; UID=_system; PWD=SYS"
cn.open
WScript.Echo "Succesfully!"



Т.е. к Кащею подключились... И потом что и чем можно пользоваться для получения данных? И каких именно? Классовых или простых глобалов?
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38076992
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , еще хотел уточнить...
Как проверить подключился ли я к Кащею? По тем трём вариантам, что ты описал в блоге...
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38077847
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , есть еще непонятки по вот этому примеру...

авторПример объектного доступа:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Set f = CreateObject("CacheActiveX.Factory")
Set rs = CreateObject("CacheActiveX.ResultSet")
If Not f.IsConnected() Then

  f.Connect("cn_iptcp:127.0.0.1[1972]:SAMPLES:_SYSTEM:SYS")

  Set rs=f.DynamicSQL("select TOP 3 * from Sample.Person")
  rs.Execute()
  while rs.Next
    WScript.Echo rs.Get("SSN") 'выводим поле SSN первых трёх записей из таблицы Sample.Person
  wend

  rs.Close()
  Set person = f.Static("Sample.Person")
  age=person.CurrentAge(45678) 'вызываем метод класса Sample.Person

  WScript.Echo age
End If



Вроде как определили переменные f и rs...
Код: vbnet
1.
2.
Set f = CreateObject("CacheActiveX.Factory")
Set rs = CreateObject("CacheActiveX.ResultSet")



А потом поменяли значение у того rs...
Код: vbnet
1.
  Set rs=f.DynamicSQL("select TOP 3 * from Sample.Person")



В чем тут тайный смысл?

P.S.
Наши сишники так же заитересовались этим подключением и просят показать примеры...
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38078361
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaЯ совсем не искушон в этом деле... Расскажи что потом можно будет делать с этим?Много чего: 6304596
ADO (wiki)
Использование библиотеки ADO (с примерами)krvsaТ.е. к Кащею подключились... И потом что и чем можно пользоваться для получения данных? И каких именно? Классовых или простых глобалов?Реляционный интерфейс предполагает доступ к таблицам, представлениям, хранимым процедурам . Поэтому, если Вы напишете ХП для работы с глобал(ом/ами), то соответственно сможете работать с любыми данными. Также советую посмотреть статью на Хабре по этой теме.krvsaКак проверить подключился ли я к Кащею? По тем трём вариантам, что ты описал в блоге...
ADO: State (см. ссылку выше)
пример
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Set cn=Createobject("ADODB.Connection") 

WScript.Echo "Состояние до = " & cn.State

cn.ConnectionString="DRIVER={InterSystems ODBC35}; SERVER=127.0.0.1; PORT=1972; DATABASE=SAMPLES; UID=_system; PWD=SYS"
cn.open

WScript.Echo "Состояние после = " & cn.State

'Закрываем соединение
cn.Close
Set cn = Nothing


VisM: ConnectionState
CacheActiveX.Factory: IsConnected() , Connect() krvsa<...> В чем тут тайный смысл?Первую строку добавил, чтобы показать тип rs . Вполне можно её закомментировать или вовсе убрать:
Код: vbnet
1.
'Set rs = CreateObject("CacheActiveX.ResultSet")

krvsaНаши сишники так же заитересовались этим подключением и просят показать примеры...Примеров из блога и документации для Delphi, VB и VBS недостаточно или есть проблемы с их адаптацией под C?
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38078855
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitПримеров из блога и документации для Delphi, VB и VBS недостаточно или есть проблемы с их адаптацией под C?
Я так понял что проблемы именно с адаптацией...
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38078880
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servitVisM: ConnectionState

Что-то это свойство не особо помогло...
Если указать несуществующий сервер - появляется системное окно с надписью о невозможности соединения с повтором и отменой... После отмены опять стандартное окно со списком серверов и пока не подключится не отстанет.
Вот такого как раз не хочется... Хотелось бы просто дать сообщение о невозможности соединиться и все.
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38079048
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaЯ так понял что проблемы именно с адаптацией...Это сюда .krvsaЧто-то это свойство не особо помогло...
Если указать несуществующий сервер - появляется системное окно с надписью о невозможности соединения с повтором и отменой... После отмены опять стандартное окно со списком серверов и пока не подключится не отстанет.
Вот такого как раз не хочется... Хотелось бы просто дать сообщение о невозможности соединиться и все.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Set f = CreateObject("VISM.VisMCtrl.1")

f.ErrorTrap=True
f.Server="CN_IPTCP:localhost[197256]"

If f.Error <> 0 Then
  WScript.Echo "Код ошибки=" & f.Error & " Текст ошибки=" & f.ErrorName
Else
  f.Execute("=$zv") 'получение версии СУБД
  WScript.Echo f.VALUE
End if
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38079072
Maarina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использовала Excel через Delphi (шаблонами). Интерфейс на Delphi писался, а все данные из Cache тащили.
Ну и примерчик. Может и примитивно, но работало и бухи не жаловались, им нравилось.
Delphi:
procedure pr_excel;
var W:variant;
f1:textfile;
fs,c,cc,CC2:string;
d,nl,den,mes,god,mm,n,nd,pr,ch,sum,ostn,ostk:string;
i,j,k,t,k1:integer;
kol_prix,kol_ras:string;
ITOGCHAS,sumpr,sumrs:DOUBLE;
A:array [2..9] of string;

begin
try //1try
try //2try
W:=GetActiveOleObject('Excel.Application');
except //2try
try //3try
W:= CreateOleObject('Excel.Application');
except //3try
ShowMessage('Íå ìîãó çàïóñòèòü Excel');
end; //3try
end; //2try
//AssignFile(f1,'c:\Êàññîâàÿ êíèãà.txt');
//Reset(f1);
//ReadLn(f1,fs);
//CloseFile(f1);
fs:='\\192.168.0.201\asup\XLT\Êàññîâàÿ êíèãà.xlt';
w.WorkBooks.Add(fs);
// w.Visible:=True;
org:=KasForm2.Label2.Caption;
den:=copy(KasForm2.maskedit1.Text,1,2);
w.ActiveWorkBook.ActiveSheet.Cells[2,15].Select;
w.Selection.Value:=den;
mes:=copy(KasForm2.maskedit1.Text,4,2);
w.ActiveWorkBook.ActiveSheet.Cells[2,20].Select;
w.Selection.Value:=mm;
<.....>
w.ActiveWorkBook.ActiveSheet.Cells[15,112].Select;
w.Selection.Value:=zpt(floattostr(sumpr));
w.ActiveWorkBook.ActiveSheet.Cells[15,124].Select;
w.Selection.Value:=zpt(floattostr(sumrs));

if KasForm2.CheckBox1.Checked=false then
begin
w.ActiveWorkBook.ActiveSheet.PrintOut;
W.DisplayAlerts:=False;
W.ActiveWorkbook.SaveAs('C:\2.XLS');
W.DisplayAlerts:=True;
w.QUIT;
end
else w.visible:=true;

finally //1try
w:=UnAssigned;
end; //1try }
end;


Код из COS:
Class Orbita.BUHUCH Extends %Persistent [ ClassType = persistent, ProcedureBlock ]
{

//НОМЕР ЛИСТА КАССОВОЙ КНИГИ

Method NOMLIST(D) As %String
{
S S=""
I $D(^["OTL_ZPI"]CC1(D)) S NL=^["OTL_ZPI"]CC1(D)
I '$D(^["OTL_ZPI"]CC1(D)) S NL=$O(^["OTL_ZPI"]CC1(D),-1)+1
S S=NL
Q NL
}

Method NOMPP(D, PR, N) As %String
{
S S=""
S S=$O(^["OTL_ZPI"]KASKN(D,PR,N))
Q S
}

Method NOMND(D, PR, N, ND) As %String
{
S S=""
S S=$O(^["OTL_ZPI"]KASKN(D,PR,N,ND))
Q S
}

Method NOMCH(D, PR, N, ND, CH) As %String
{
S S=""
S S=$O(^["OTL_ZPI"]KASKN(D,PR,N,ND,CH))
Q S
}

Method NOMST(D, PR, N, ND, CH) As %String
{
S S=""
S S=$P(^["OTL_ZPI"]KASKN(D,PR,N,ND,CH),"\",2)_"\"_$P(^["OTL_ZPI"]KASKN(D,PR,N,ND,CH),"\",4)
Q S
}

Method OST(ST, D) As %String
{
S S=""
I ST="1" S DT=$O(^["OTL_ZPI"]SAL2(D),-1) S S=^["OTL_ZPI"]SAL2(DT)
I ST="2" S S=^["OTL_ZPI"]SAL2(D)
Q S
}

Method FORMMAS(D) As %String
{
K ^["OTL_ZPI"]KASKN(D)
S DN=$O(^["OTL_ZPI"]SAL2(D),-1)
S OSTN=^["OTL_ZPI"]SAL2(DN) ;ОСТАТОК НА НАЧАЛО ДНЯ
S OSTK=^["OTL_ZPI"]SAL2(D) ;ОСТАТОК НА КОНЕЦ ДНЯ
S NL="" I $D(^["OTL_ZPI"]CC1(D)) S NL=^["OTL_ZPI"]CC1(D)
//I '$D(^CC1(D)) S NL=$O(^CC1(""),-1)+1
S ^["OTL_ZPI"]KASKN(D,"OSTN")=OSTN
S ^["OTL_ZPI"]KASKN(D,"OSTK")=OSTK
M ^["OTL_ZPI"]KASKN(D,"PR")=^["OTL_ZPI"]KDOK22(D,1)
M ^["OTL_ZPI"]KASKN(D,"RS")=^["OTL_ZPI"]KDOK22(D,2)
Q NL
}

}


Ну и соответственно шаблон на сервере был
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38079078
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu
В принципе можно
и другое .. VisM например или что-то еще

Нее другое (особенно VisM) не интересно пока.
Странно, а говорили что не интересен ... ;)
Я думаю все средство хороши !
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38079468
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , еще раз спасибо! Теперь подключение контролирую.
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38079472
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuСтранно, а говорили что не интересен ... ;)
Я думал что это тот компонент, что ранее давали для связи Делфи с Каше... Когда можно было несколько переменных передать "туда" и несколько получить "обратно".
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38081910
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit krvsa ,

Из VBA и не только Вы можете работать с СУБД Caché через VisM, ActiveX, ADO, ...
Примеры всех трёх вариантов для VBScript (что не суть важно) можно посмотреть здесь (в самом начале).
Дошел и до объектного доступа...
Вставляю из твоего примера

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub find()
   Set f = CreateObject("CacheActiveX.Factory")
   Set rs = CreateObject("CacheActiveX.ResultSet")
   If Not f.IsConnected() Then
     f.Connect ("cn_iptcp:127.0.0.1[1972]:SAMPLES:_SYSTEM:SYS")
     Set rs = f.DynamicSQL("select TOP 3 * from Sample.Person")
     rs.Execute()
     While rs.Next
       WScript.Echo rs.Get("SSN")
     Wend
     rs.Close()
   End If
End Sub



И сразу имею синтаксические ошибки на строках

Код: vbnet
1.
2.
3.
     rs.Execute()
     ...
     rs.Close()
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38081914
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошло вот так

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub find()
   Set f = CreateObject("CacheActiveX.Factory")
   Set rs = CreateObject("CacheActiveX.ResultSet")
   If Not f.IsConnected() Then
     f.Connect ("cn_iptcp:127.0.0.1[1972]:SAMPLES:_SYSTEM:SYS")
     Set rs = f.DynamicSQL("select TOP 3 * from Sample.Person")
     ok = rs.Execute()
     While rs.Next
       Debug.Print rs.Get("SSN")
     Wend
     ok = rs.Close()
   End If
End Sub
...
Рейтинг: 0 / 0
MS Excel связь с Cache
    #38081929
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В итоге взял за основу такой вариант...

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Dim obj As Variant
Dim ors As Variant
Dim ok As Variant
Sub find()
   Set obj = CreateObject("CacheActiveX.Factory")
   obj.Connect ("cn_iptcp:cache[1972]:ERR:_SYSTEM:SYS")
   If obj.IsConnected() Then
      Set ors = obj.DynamicSQL("select TOP 3 * from wrk.Member")
      ok = ors.Execute()
      While ors.Next
         Debug.Print ors.Get("Name")
      Wend
      ok = ors.Close()
   End If
End Sub
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / MS Excel связь с Cache
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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