Найдено 177 результатов

WadimZapara
04 Апрель 2012, 23:45
Форум: CLARION for Windows
Тема: Почему прыгает курсор в tree
Ответы: 7
Просмотры: 5797

Re: Почему прыгает курсор в tree

- четырежды прочёл, но вопроса не понял :shock:
WadimZapara
23 Февраль 2012, 22:41
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

Так, заработало - и в T-SQL через spOA... ?
WadimZapara
23 Февраль 2012, 1:07
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

полетела...
WadimZapara
22 Февраль 2012, 23:42
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

1. У меня MSSQL-2000 Enerprise Edition (8.00.2039, SP-4), особых настроек не делал никаких.
2. Если обновил DLL и не перезапускал MSSQL - работать не будет, т.к. у него в памяти после ошибки осталась прежняя копия.
3. Если не исправить на *LONG здесь и в прототипе IDISPATCH - работать не будет ...
WadimZapara
22 Февраль 2012, 18:35
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

Провёл тест создания таблицы в MSSQL по описанию DAT-файла и переноса данных из DAT-файла в созданную таблицу.
Всё в скрипте MSSQL (написав ряд stored procedures) - всё через sp_OACreate, sp_OAMethod используя COM-объект.
Работает нормально, хотя и не скажу, что быстро.
Время потраченное на то ...
WadimZapara
21 Февраль 2012, 23:51
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

Испытал изменения согласно высказанным выше предположениям:

1. Объявление прототипа GetTypeInfo в интерфейсе IDispatch и и метода его реализации приведено в соответствие с информацией MSDN.
(Основанием явилось следующее:
- согласно MSDN, ppTInfo - это адрес указателя на интерфейс библиотеки типов ...
WadimZapara
21 Февраль 2012, 17:50
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

У меня запротоколировалось так:
/у меня QueryInterface сначала вызывает AddRef, а затем пишет протокол,
а AddRef и Release сначала изменяют счётчик, а потом пишут протокол/

Construct
-AddRef (1)-QueryInterface (IUnknown)
-AddRef (2)
-Release (1)
-AddRef (2)-QueryInterface (IUnknown)
-Release (1 ...
WadimZapara
21 Февраль 2012, 11:45
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

в прошлом посте наврал (по памяти писал), ppTInfo при входе в процедуру = 0
WadimZapara
20 Февраль 2012, 22:57
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

именно так.
но именно после попытки MSSQL вызвать MyObject.GetTypeInfo (LONG iTInfo,LONG lcid,LONG ppTInfo)
с параметрами iTInfo = 0, lcid = 1024, а в ppTInfo какое-то маленькое число типа 1230120


MyObject.GetTypeInfo PROCEDURE(LONG iTInfo,LONG lcid,LONG ppTInfo)
CODE
ppTInfo=0
IF iTInfo <> 0 ...
WadimZapara
20 Февраль 2012, 20:30
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

Добавил протоколирование в файл.
Выяснил, что Excel и MSSQL по-разному осуществляют работу с COM-объектом.
КОД (слева VB-Excel, справа T-SQL MSSQL)

Dim o As Object, e As Long !DECLARE @hr int, @o int, @e int, @src varchar(255), @descr varchar(255)
Set o = CreateObject("Clarion.File") !EXEC @hr ...
WadimZapara
19 Февраль 2012, 18:01
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

Михаил, спасибо за участие.
PUTREG в С55 возвращает BYTE (успех/неудача), в отличие от C6 и выше, где возвращается LONG (код ошибки).
LongToHex (а также PathSplit) просто отсутствует в C55.
Но дело не в этих мелочах.

Я собрал заново без подключения каких-либо доп.классов, не реализуя ни один метод ...
WadimZapara
17 Февраль 2012, 1:29
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

Выявлен и побеждён Баг. Опишу выявленную ошибку клары.
Класс объявлен так.

ClarionFile CLASS,IMPLEMENTS(IClarionFile),TYPE
Psewdo Long,PROTECTED
MyObj LONG,PROTECTED
m_lRef LONG,PROTECTED
m_ptinfo &ITypeInfo,PROTECTED

Construct PROCEDURE()
Destruct PROCEDURE()
...
Method1 PROCEDURE,HRESULT,PROC ...
WadimZapara
17 Февраль 2012, 0:11
Форум: CLARION for Windows
Тема: анализ заголовка DAT-файла
Ответы: 4
Просмотры: 4681

Re: анализ заголовка DAT-файла

спасибо. помогло
WadimZapara
13 Февраль 2012, 2:26
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

Есть тестовая победа.
В режиме "только один объект можно создавать" - работает.
Объект может:
- по дисковому имени прочесть структуру кларион-файла
- выдать её (количество ключей, полей, затем по номерам - всё о них, метки, типы, размеры, DIM-ы)
- OPEN, CLOSE
- считать поле
- записать поле
- SET ...
WadimZapara
10 Февраль 2012, 17:56
Форум: CLARION for Windows
Тема: COM InProcServer для MSSQL
Ответы: 37
Просмотры: 18384

Re: COM InProcServer для MSSQL

скомпилировалось
пока не катит

да и ещё: в момент, когда в Excel-е выполняется операция OBJ = Nothing - Excel падает с кодом исключения 5, указывая, что ошибка произошла в модуле c55runx.dll