8 марта, понедельник 15:22
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Vs_vba_script

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Doppelganger
    Участник создал тему Vs_vba_script

    Vs_vba_script

    В WorkFlow RETAIL есть такой тип методов. Имеется ли у кого-то опыт работы с такими методами?

  • Serg_FSB
    Участник ответил
    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

    Прокомментировать:


  • Doppelganger
    Участник ответил
    bantik, 10x за информацию. Про T-SQL в курсе, но это скорее в тему для 5NT. Можно поподробнее про ручное прописывание интерфейсов, очень желательно с примерами (если большие - в мыло). Скажем требуется поиметь доступ к ADODB и Excel-евским файлам.

    Прокомментировать:


  • bantik
    Участник ответил
    Почему так ? Народ просто прописывает руками интерфейсы внешнего 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
    Участник ответил
    Да и ещё: насколько я понимаю использовать ActiveX/COM из DS тоже невозможно? В WorkFlow это точно так, а как насчёт 5NT?

    Прокомментировать:


  • Doppelganger
    Участник ответил
    Печально. Увы это далеко не единственное место из которого торчит неработающая или вообще неуместная, но используемая ради удобства разработки (готовая экранная форма) декларация функционала...

    Прокомментировать:


  • Serg_FSB
    Участник ответил
    Не работает. Обещали много лет назад, да не сделали. Так что или Diasoft Script или Transact SQL

    Прокомментировать:

Обработка...
X