кто нибудь писал макросы для связи Rs-bank с базами oracle ?

0 (0)
  • Развернуть кто нибудь писал макросы для связи Rs-bank с базами oracle ? ( Seeker  16.04.2010 15:43 )
    5(1)
    проблема в следующем,
    есть макрос в котором есть такая вот чудная строка на которой спотыкается RS-bank и вылетает терминал трехзвенки с сообщением "Соообщение сервера приложений Процесс остановлен администратором или завершено аварийно".
    вот это чудо строка
    ADO_spGetAccInfo.parameters("xi_AccNo").value= pers_acc;

    но вот незадача, не могу даже найти откуда такая процедурка, чтоб понять что ей не нравится???
    >> Ответить
    • Развернуть re кто нибудь писал макросы для связи Rs-bank с базами oracle ? ( Коблев Мурат  19.04.2010 13:22 )
      5(1)
      Попробовал подключиться к Oracle делал вот как:
      Добавил system dsn с именем "ds_ora11_odbc"
      код из rsl (работает) получился такой:
      import RSD;
      env = RsdEnvironment( "RDDrvO", "RDDrvO.dll" );   /* создание окружения */
      con = RsdConnection( env, "DSN=ds_ora11_odbc;USER ID=system;PASSWORD=system" );	/* создание соединения */
      
      rs = RsdRecordset("DSN=ds_ora11_odbc;USER ID=system;PASSWORD=system",
      				"select user from dual;" );
      while( rs.moveNext )
      	[user_name: ################](rs.value(0));
      /* эквивалентные формы: rs.fld(0).value, rs.value("id"), ... */
      end;
      
      /* блок обработки ошибок: */
      i = 0;
      while( i<env.ErrorCount )
      [error № ##: #####################################](i, env.error(i).descr);
      i=i+1;
      end;
      
      хорошее описание и все необходимые dll есть в папке rsd.ext, которая лежит в дистрибутиве.

      на счет ADO_spGetAccInfo.parameters("xi_AccNo").value= pers_acc;
      похоже, что тут параметризованный запрос. Документация советует писать так:
      cmd = RsdCommand( “DSN=RSTest;USER ID=username;PASSWORD=passwd”,
      				“INSERT INTO T VALUES(?, ‘testrsl2’)” );
      cmd.addParam( “id” );
      cmd.value(“id”) = 45;	
      /* можно было объединить в одну строку:
      cmd.addParam(“id”) = 45 или cmd.addParam(“id”, NULL, 45) !!! */
      
      /* эквивалентные формы: cmd.value(0)=45, cmd.param(“id”).value=45,... */
      cmd.execute;
      
      В любом случае, советую Вам Rsd.doc :-)
      >> Ответить