
Найдено 177 результатов
- 04 Апрель 2012, 23:45
- Форум: CLARION for Windows
- Тема: Почему прыгает курсор в tree
- Ответы: 7
- Просмотры: 5797
Re: Почему прыгает курсор в tree
- четырежды прочёл, но вопроса не понял 

- 23 Февраль 2012, 22:41
- Форум: CLARION for Windows
- Тема: COM InProcServer для MSSQL
- Ответы: 37
- Просмотры: 18384
Re: COM InProcServer для MSSQL
Так, заработало - и в T-SQL через spOA... ?
- 23 Февраль 2012, 1:07
- Форум: CLARION for Windows
- Тема: COM InProcServer для MSSQL
- Ответы: 37
- Просмотры: 18384
Re: COM InProcServer для MSSQL
полетела...
- 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 - работать не будет ...
2. Если обновил DLL и не перезапускал MSSQL - работать не будет, т.к. у него в памяти после ошибки осталась прежняя копия.
3. Если не исправить на *LONG здесь и в прототипе IDISPATCH - работать не будет ...
- 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-объект.
Работает нормально, хотя и не скажу, что быстро.
Время потраченное на то ...
Всё в скрипте MSSQL (написав ряд stored procedures) - всё через sp_OACreate, sp_OAMethod используя COM-объект.
Работает нормально, хотя и не скажу, что быстро.
Время потраченное на то ...
- 21 Февраль 2012, 23:51
- Форум: CLARION for Windows
- Тема: COM InProcServer для MSSQL
- Ответы: 37
- Просмотры: 18384
Re: COM InProcServer для MSSQL
Испытал изменения согласно высказанным выше предположениям:
1. Объявление прототипа GetTypeInfo в интерфейсе IDispatch и и метода его реализации приведено в соответствие с информацией MSDN.
(Основанием явилось следующее:
- согласно MSDN, ppTInfo - это адрес указателя на интерфейс библиотеки типов ...
1. Объявление прототипа GetTypeInfo в интерфейсе IDispatch и и метода его реализации приведено в соответствие с информацией MSDN.
(Основанием явилось следующее:
- согласно MSDN, ppTInfo - это адрес указателя на интерфейс библиотеки типов ...
- 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 ...
/у меня QueryInterface сначала вызывает AddRef, а затем пишет протокол,
а AddRef и Release сначала изменяют счётчик, а потом пишут протокол/
Construct
-AddRef (1)-QueryInterface (IUnknown)
-AddRef (2)
-Release (1)
-AddRef (2)-QueryInterface (IUnknown)
-Release (1 ...
- 21 Февраль 2012, 11:45
- Форум: CLARION for Windows
- Тема: COM InProcServer для MSSQL
- Ответы: 37
- Просмотры: 18384
Re: COM InProcServer для MSSQL
в прошлом посте наврал (по памяти писал), ppTInfo при входе в процедуру = 0
- 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 ...
но именно после попытки 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 ...
- 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 ...
Выяснил, что 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 ...
- 19 Февраль 2012, 18:01
- Форум: CLARION for Windows
- Тема: COM InProcServer для MSSQL
- Ответы: 37
- Просмотры: 18384
Re: COM InProcServer для MSSQL
Михаил, спасибо за участие.
PUTREG в С55 возвращает BYTE (успех/неудача), в отличие от C6 и выше, где возвращается LONG (код ошибки).
LongToHex (а также PathSplit) просто отсутствует в C55.
Но дело не в этих мелочах.
Я собрал заново без подключения каких-либо доп.классов, не реализуя ни один метод ...
PUTREG в С55 возвращает BYTE (успех/неудача), в отличие от C6 и выше, где возвращается LONG (код ошибки).
LongToHex (а также PathSplit) просто отсутствует в C55.
Но дело не в этих мелочах.
Я собрал заново без подключения каких-либо доп.классов, не реализуя ни один метод ...
- 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 ...
Класс объявлен так.
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 ...
- 17 Февраль 2012, 0:11
- Форум: CLARION for Windows
- Тема: анализ заголовка DAT-файла
- Ответы: 4
- Просмотры: 4681
Re: анализ заголовка DAT-файла
спасибо. помогло
- 13 Февраль 2012, 2:26
- Форум: CLARION for Windows
- Тема: COM InProcServer для MSSQL
- Ответы: 37
- Просмотры: 18384
Re: COM InProcServer для MSSQL
Есть тестовая победа.
В режиме "только один объект можно создавать" - работает.
Объект может:
- по дисковому имени прочесть структуру кларион-файла
- выдать её (количество ключей, полей, затем по номерам - всё о них, метки, типы, размеры, DIM-ы)
- OPEN, CLOSE
- считать поле
- записать поле
- SET ...
В режиме "только один объект можно создавать" - работает.
Объект может:
- по дисковому имени прочесть структуру кларион-файла
- выдать её (количество ключей, полей, затем по номерам - всё о них, метки, типы, размеры, DIM-ы)
- OPEN, CLOSE
- считать поле
- записать поле
- SET ...
- 10 Февраль 2012, 17:56
- Форум: CLARION for Windows
- Тема: COM InProcServer для MSSQL
- Ответы: 37
- Просмотры: 18384
Re: COM InProcServer для MSSQL
скомпилировалось
пока не катит
да и ещё: в момент, когда в Excel-е выполняется операция OBJ = Nothing - Excel падает с кодом исключения 5, указывая, что ошибка произошла в модуле c55runx.dll
пока не катит
да и ещё: в момент, когда в Excel-е выполняется операция OBJ = Nothing - Excel падает с кодом исключения 5, указывая, что ошибка произошла в модуле c55runx.dll