В WorkFlow RETAIL есть такой тип методов. Имеется ли у кого-то опыт работы с такими методами?
Объявление
Свернуть
Пока нет объявлений.
Vs_vba_script
Свернуть
X
-
Почему так ? Народ просто прописывает руками интерфейсы внешнего OLE сервера как родной и спокойно вызывает его из DiasoftSCRIPT . Неудобно - что не автоматом регистрится - но работает.
p.s. Кстати VbSCRIPT и прочие штуки можно запросто вызвать и из T-SQL -
declare
@script_text varchar(8000),
@param1 sql_variant,
@param2 sql_variant,
@param3 sql_variant,
@paramOut sql_variant
set @script_text = 'function Main(byRef Argu1,Argu2,Argu3)
dim a(1)
a(0) = "teet"
a(1) = string(128000, "1")
Main = a
Argu1 = 23456
end function
'
set @param1 = 123
declare @object int , @hr int, @len int
EXEC @hr = sp_OACreate 'MSScriptControl.ScriptControl', @object OUTPUT
IF @hr > 0 GOTO SCR_ERROR
EXEC @hr = sp_OASetProperty @object, 'Language', 'VBScript'
IF @hr > 0 GOTO SCR_ERROR
EXEC @hr = sp_OASetProperty @object, 'Timeout', 600000 -- 1 min
IF @hr > 0 GOTO SCR_ERROR
EXEC @hr = sp_OASetProperty @object, 'AllowUI',0
IF @hr > 0 GOTO SCR_ERROR
EXEC @hr = sp_OAMethod @object, 'AddCode', NULL, @script_text
IF @hr > 0 GOTO SCR_ERROR
create table #tmp_tbl(
col1 varchar(8),
col2 ntext)
INSERT INTO #tmp_tbl
EXEC @hr = sp_OAMethod @object, 'Run', @paramOut OUT, 'Main', @Param1 OUT, @Param2, @Param3
IF @hr > 0 GOTO SCR_ERROR
select @paramOut, @Param1
select datalength(col2), col1 from #tmp_tbl
drop table #tmp_tbl
--EXEC @hr = sp_OAMethod @object, %af_src_str_8, NULL, @script_text
--IF @hr > 0 GOTO SCR_ERROR
EXEC @hr = sp_OADestroy @object
IF @hr > 0 GOTO SCR_ERROR
goto ok
SCR_ERROR:
DECLARE @source varchar(255), @description varchar(255), @msg varchar(1000)
EXEC @hr = sp_OAGetErrorInfo @object, @source OUT, @description OUT
set @msg=@Source+char(13)+@description
print @msg
-- raiserror(@msg,16,1 )
ok:
Комментарий
-
Doppelganger
Почему T-SQL -- это в 5НТ? Неужели у вас Retail на бтриве? А в скульный можно совершенно спокойно вгонять и методы на T-SQL и отчеты. Никаких проблем нет, все работает.
Кстати, на T-SQL можно совершенно спокойно обращаться к Excel и Access-файлам.
Вот кусок кода по загрузке справочника ОКВЭД в ВФ из Access-ной базюльки. Excel делается аналогично, но более геморройно (надо поименовывать диапазон) :
Код:if (select srvid from master..sysservers where srvname='Access_Okved')>0 exec sp_dropserver 'Access_Okved' exec sp_addlinkedserver @server = 'Access_Okved', @srvproduct = 'OLE DB Provider for Jet', @provider = 'Microsoft.Jet.OLEDB.4.0', @datasrc = 'e:\workflow\okved.mdb' GO ................... declare Okved_Cursor cursor for select number,name from Access_Okved...Okved
Serg Voronov
Комментарий
Комментарий