﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/style.css'?>
<?xml-stylesheet type='text/css' href='https://stocksharp.com/css/bbeditor.css'?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html">Гидра. S# 4.0</title>
  <id>~/topic/1959/gidra_-s-4_0/</id>
  <rights type="text">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  <updated>2026-06-14T17:48:37Z</updated>
  <logo>https://stocksharp.com/images/logo.png</logo>
  <link href="https://stocksharp.com/handlers/atom.ashx?category=topic&amp;id=1959" rel="self" type="application/rss+xml" />
  <entry>
    <id>https://stocksharp.com/posts/m/13011/</id>
    <title type="text">Для перехода на 4.0.4 нужно обновить БД. Подробности, в диффе на trading_3.2_4.0.sql </title>
    <published>2011-11-05T21:58:20Z</published>
    <updated>2011-11-05T21:58:20Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Для перехода на 4.0.4 нужно обновить БД. Подробности, в диффе на trading_3.2_4.0.sql&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12558/</id>
    <title type="text">Чтоб не контролировать какая база в данный момент активна, первой строкой можно вставлять - use Trad...</title>
    <published>2011-10-20T11:43:59Z</published>
    <updated>2011-10-20T11:43:59Z</updated>
    <author>
      <name>JackSparrow</name>
      <uri>https://stocksharp.com/users/27783/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Чтоб не контролировать какая база в данный момент активна, первой строкой можно вставлять - use Trading.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12530/</id>
    <title type="text">Да, проблема была в этом. Спасибо </title>
    <published>2011-10-19T15:21:28Z</published>
    <updated>2011-10-19T15:21:28Z</updated>
    <author>
      <name>DT</name>
      <uri>https://stocksharp.com/users/28052/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Да, проблема была в этом. Спасибо&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12529/</id>
    <title type="text">DT: Последний скрипт выполняется с ошибкой: Скрипт на базе Trading прогоняется? По умолчанию он пыта...</title>
    <published>2011-10-19T14:36:46Z</published>
    <updated>2011-10-19T14:36:46Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12528)" rel="nofollow" target="_blank"&gt;DT&lt;/a&gt;:&lt;/strong&gt;
Последний скрипт выполняется с ошибкой:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Скрипт на базе Trading прогоняется? По умолчанию он пытается выполнится на master базе.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12528/</id>
    <title type="text">Последний скрипт выполняется с ошибкой: Msg 4902, Level 16, State 1, Line 1 Cannot find the object &amp;quot;...</title>
    <published>2011-10-19T14:26:44Z</published>
    <updated>2011-10-19T14:26:44Z</updated>
    <author>
      <name>DT</name>
      <uri>https://stocksharp.com/users/28052/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Последний скрипт выполняется с ошибкой:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Msg 4902, Level 16, State 1, Line 1
Cannot find the object &amp;quot;dbo.Exchange&amp;quot; because it does not exist or you do not have permissions.
Msg 208, Level 16, State 1, Line 2
Invalid object name 'dbo.Exchange'.
Msg 4902, Level 16, State 1, Line 2
Cannot find the object &amp;quot;dbo.Exchange&amp;quot; because it does not exist or you do not have permissions.
Msg 208, Level 16, State 6, Procedure Exchange_UpdateByName, Line 22
Invalid object name 'dbo.Exchange_UpdateByName'.&lt;/p&gt;
&lt;/blockquote&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12383/</id>
    <title type="text">Для перехода на 4.0.3 необходимо выполнить скрипт: ALTER TABLE [dbo].[Exchange] add ExpiryTime bigin...</title>
    <published>2011-10-16T20:59:51Z</published>
    <updated>2011-10-16T20:59:51Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Для перехода на 4.0.3 необходимо выполнить скрипт:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-sql"&gt;ALTER TABLE [dbo].[Exchange] add ExpiryTime bigint NULL;
ALTER TABLE [dbo].[Exchange] add IsSupportAtomicReRegister bit NULL;

GO

update [dbo].[Exchange]
set
	ExpiryTime = 0,
	IsSupportAtomicReRegister = 0

GO

ALTER TABLE [dbo].[Exchange] ALTER COLUMN ExpiryTime bigint NOT NULL;
ALTER TABLE [dbo].[Exchange] ALTER COLUMN IsSupportAtomicReRegister bit NOT NULL;

GO
ALTER PROCEDURE [dbo].[Exchange_UpdateByName]
	@Name as nvarchar(64),
	@Times as nvarchar(max),
	@SpecialWorkingDays as nvarchar(max),
	@SpecialHolidays as nvarchar(max),
	@ExtensionInfo as nvarchar(max),
	@ExpiryTime bigint,
	@IsSupportAtomicReRegister bit
as
if (exists(select * from Exchange where Name = @Name))
	update Exchange
	set
		Times = @Times,
		SpecialWorkingDays = @SpecialWorkingDays,
		SpecialHolidays = @SpecialHolidays,
		ExtensionInfo = @ExtensionInfo,
		ExpiryTime = @ExpiryTime,
		IsSupportAtomicReRegister = @IsSupportAtomicReRegister
	where
		Name = @Name
else
	insert into Exchange
		(Name, Times, SpecialWorkingDays, SpecialHolidays, ExtensionInfo, ExpiryTime, IsSupportAtomicReRegister)
	values
		(@Name, @Times, @SpecialWorkingDays, @SpecialHolidays, @ExtensionInfo, @ExpiryTime, @IsSupportAtomicReRegister)
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12218/</id>
    <title type="text">bender: Я выполнил. Сейчас старую базу вообще удалил, создал новую скриптом trading.sql, всё тоже са...</title>
    <published>2011-10-11T22:00:54Z</published>
    <updated>2011-10-11T22:00:54Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(12217)" rel="nofollow" target="_blank"&gt;bender&lt;/a&gt;:&lt;/strong&gt;
Я выполнил. Сейчас старую базу вообще удалил, создал новую скриптом trading.sql, всё тоже самое&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Приношу извинения. Возьмите последнюю версию BusinessEntities (залил пару минут назад). Плюс посмотрите на дифф &lt;a href="http://stocksharp.codeplex.com/SourceControl/changeset/changes/10430#Documentation%2ftrading_3.2_4.0.sql" rel="nofollow" target="_blank"&gt;http://stocksharp.codeplex.com/SourceControl/changeset/changes/10430#Documentation%2ftrading_3.2_4.0.sql&lt;/a&gt;&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12217/</id>
    <title type="text">Я выполнил. Сейчас старую базу вообще удалил, создал новую скриптом trading.sql, всё тоже самое </title>
    <published>2011-10-11T21:10:38Z</published>
    <updated>2011-10-11T21:10:38Z</updated>
    <author>
      <name>bender</name>
      <uri>https://stocksharp.com/users/28723/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Я выполнил. Сейчас старую базу вообще удалил, создал новую скриптом trading.sql, всё тоже самое&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12215/</id>
    <title type="text">Для нее нужно выполнить скрипт \Documentation\trading_3.2_4.0.sql </title>
    <published>2011-10-11T21:00:59Z</published>
    <updated>2011-10-11T21:00:59Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Для нее нужно выполнить скрипт \Documentation\trading_3.2_4.0.sql&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/12214/</id>
    <title type="text">Скачал Гидру 4.0.2, при построении выдаёт ошибку: Ошибка 1 выход из команды &amp;quot;call ......\plugins.bat...</title>
    <published>2011-10-11T20:32:26Z</published>
    <updated>2011-10-11T20:32:26Z</updated>
    <author>
      <name>bender</name>
      <uri>https://stocksharp.com/users/28723/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Скачал Гидру 4.0.2, при построении выдаёт ошибку:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ошибка	1	выход из команды &amp;quot;call ......\plugins.bat Plaza Debug&lt;/p&gt;
&lt;p&gt;copy StockSharp.Plaza.dll ........\Hydra\bin\Debug\Plugins\StockSharp.Plaza.dll
copy ..........\References\Interop.P2ClientGateMTA32.dll ........\Hydra\bin\Debug\Plugins\Interop.P2ClientGateMTA32.dll
copy ..........\References\Interop.P2ClientGateMTA64.dll ........\Hydra\bin\Debug\Plugins\Interop.P2ClientGateMTA64.dll&lt;/p&gt;
&lt;p&gt;if Debug == Debug goto :debug&lt;/p&gt;
&lt;p&gt;goto :exit&lt;/p&gt;
&lt;p&gt;:debug
copy StockSharp.Plaza.pdb ........\Hydra\bin\Debug\Plugins\StockSharp.Plaza.pdb&lt;/p&gt;
&lt;p&gt;:exit&amp;quot; с кодом 1.	Plaza
А при попытке отладки исключение:&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="spoiler"&gt;&lt;p&gt;Гидра 00:23:03.5468750 System.Windows.Markup.XamlParseException: Не удается создать экземпляр &amp;quot;MainWindow&amp;quot;, определенный в сборке &amp;quot;Hydra, Version=4.0.2.0, Culture=neutral, PublicKeyToken=null&amp;quot;. Адресат вызова создал исключение.  Ошибка в файле разметки &amp;quot;Hydra;component/MainWindow.xaml&amp;quot;, строка 1, позиция 9. ---&amp;gt; System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---&amp;gt; System.InvalidCastException: Не удалось преобразовать значение параметра из TimeSpan в Int64. ---&amp;gt; System.InvalidCastException: Объект должен реализовывать интерфейс IConvertible.
в System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
в System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType)
--- Конец трассировки внутреннего стека исключений ---
в System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType)
в System.Data.SqlClient.SqlParameter.GetCoercedValue()
в System.Data.SqlClient.SqlParameter.Validate(Int32 index, Boolean isCommandProc)
в System.Data.SqlClient.SqlCommand.SetUpRPCParameters(_SqlRPC rpc, Int32 startCount, Boolean inSchema, SqlParameterCollection parameters)
в System.Data.SqlClient.SqlCommand.BuildRPC(Boolean inSchema, SqlParameterCollection parameters, _SqlRPC&amp;amp; rpc)
в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
в System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
в Ecng.Data.DatabaseCommand.&lt;ExecuteNonQuery&gt;b__5(DbCommand cmd)
в Ecng.Data.DatabaseCommand.&amp;lt;&amp;gt;c__DisplayClass3&lt;code&gt;1.&amp;lt;Execute&amp;gt;b__0(DbConnection connection) в Ecng.Data.Database.GetConnection(Action&lt;/code&gt;1 action)
в Ecng.Data.DatabaseCommand.Execute[TResult](IEnumerable&lt;code&gt;1 input, Func&lt;/code&gt;2 handler)
в Ecng.Data.DatabaseCommand.ExecuteNonQuery(SerializationItemCollection input)
в Ecng.Data.Database.Execute(DatabaseCommand command, SerializationItemCollection source, Boolean needRetVal)
в Ecng.Data.Database.Update(DatabaseCommand command, SerializationItemCollection source, Boolean needRetVal)
в Ecng.Data.Database.&amp;lt;&amp;gt;c__DisplayClassf&lt;code&gt;1.&amp;lt;Update&amp;gt;b__e() в Ecng.Data.Database.Update[TEntity](TEntity entity, FieldCollection keyFields, FieldCollection valueFields) в Ecng.Data.Database.Update[TEntity](TEntity entity, FieldCollection valueFields) в Ecng.Data.Database.Update[TEntity](TEntity entity) в Ecng.Serialization.RelationManyList&lt;/code&gt;1.OnUpdate(TEntity entity)
в Ecng.Data.HierarchicalPageLoadList&lt;code&gt;1.OnUpdate(TEntity entity) в Ecng.Serialization.RelationManyList&lt;/code&gt;1.Update(TEntity entity)
в StockSharp.Algo.Storages.BaseStorageEntityList`1.Save(T entity)
в StockSharp.Hydra.MainWindow..ctor() в C:\Documents and Settings\Yura\Мои документы\Загрузки\StockSharp_4.0.2_Sources\Hydra\Hydra\MainWindow.xaml.cs:строка 56
--- Конец трассировки внутреннего стека исключений ---
в System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean&amp;amp; canBeCached, RuntimeMethodHandle&amp;amp; ctor, Boolean&amp;amp; bNeedSecurityCheck)
в System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
в System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
в System.Activator.CreateInstance(Type type, Boolean nonPublic)
в System.Windows.Markup.BamlRecordReader.CreateInstanceFromType(Type type, Int16 typeId, Boolean throwOnFail)
--- Конец трассировки внутреннего стека исключений ---
в System.Windows.Markup.XamlParseException.ThrowException(String message, Exception innerException, Int32 lineNumber, Int32 linePosition, Uri baseUri, XamlObjectIds currentXamlObjectIds, XamlObjectIds contextXamlObjectIds, Type objectType)
в System.Windows.Markup.XamlParseException.ThrowException(ParserContext parserContext, Int32 lineNumber, Int32 linePosition, String message, Exception innerException)
в System.Windows.Markup.BamlRecordReader.ThrowExceptionWithLine(String message, Exception innerException)
в System.Windows.Markup.BamlRecordReader.CreateInstanceFromType(Type type, Int16 typeId, Boolean throwOnFail)
в System.Windows.Markup.BamlRecordReader.GetElementAndFlags(BamlElementStartRecord bamlElementStartRecord, Object&amp;amp; element, ReaderFlags&amp;amp; flags, Type&amp;amp; delayCreatedType, Int16&amp;amp; delayCreatedTypeId)
в System.Windows.Markup.BamlRecordReader.BaseReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
в System.Windows.Markup.BamlRecordReader.ReadElementStartRecord(BamlElementStartRecord bamlElementRecord)
в System.Windows.Markup.BamlRecordReader.ReadRecord(BamlRecord bamlRecord)
в System.Windows.Markup.BamlRecordReader.Read(Boolean singleRecord)
в System.Windows.Markup.TreeBuilderBamlTranslator.ParseFragment()
в System.Windows.Markup.TreeBuilder.Parse()
в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
в System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
в System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)
в System.Windows.Application.DoStartup()
в System.Windows.Application.&amp;lt;.ctor&amp;gt;b__0(Object unused)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
в System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)&lt;/p&gt;
&lt;/div&gt;</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11879/</id>
    <title type="text">mikhaylovvl: Михаил, подскажи пожалуйста в каком именно проекте (название файла) прогнать код? Спаси...</title>
    <published>2011-10-03T20:23:05Z</published>
    <updated>2011-10-03T20:23:05Z</updated>
    <author>
      <name>Alexander</name>
      <uri>https://stocksharp.com/users/2826/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="@message(11878)" rel="nofollow" target="_blank"&gt;mikhaylovvl&lt;/a&gt;:&lt;/strong&gt;
Михаил, подскажи пожалуйста в каком именно проекте (название файла) прогнать код?
Спасибо.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;sql&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11878/</id>
    <title type="text">Михаил, подскажи пожалуйста в каком именно проекте (название файла) прогнать код? Спасибо. </title>
    <published>2011-10-03T20:00:38Z</published>
    <updated>2011-10-03T20:00:38Z</updated>
    <author>
      <name>mikhaylovvl</name>
      <uri>https://stocksharp.com/users/4400/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;Михаил, подскажи пожалуйста в каком именно проекте (название файла) прогнать код?
Спасибо.&lt;/p&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
  <entry>
    <id>https://stocksharp.com/posts/m/11739/</id>
    <title type="text">В последней версии Гидры были изменения в SQL. Нужно прогнать следующий скрипт, чтобы новая Гидра см...</title>
    <published>2011-09-29T15:57:33Z</published>
    <updated>2011-09-29T15:57:33Z</updated>
    <author>
      <name>Mikhail Sukhov</name>
      <uri>https://stocksharp.com/users/201/</uri>
      <email>info@stocksharp.com</email>
    </author>
    <content type="html">&lt;p&gt;В последней версии Гидры были изменения в SQL. Нужно прогнать следующий скрипт, чтобы новая Гидра смогла работать со старой БД:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-sql"&gt;alter proc [dbo].[Security_UpdateById]
	@Id as nvarchar(256),
	@Name as nvarchar(512),
	@Code as nvarchar(256),
	@Class as nvarchar(256),
	@ShortName as nvarchar(256),
	@MinStepSize decimal(18,7),
	@MinStepPrice decimal(18,7),
	@MinLotSize real,
	@Decimals real,
	@OpenPrice decimal(18,7),
	@ClosePrice decimal(18,7),
	@LowPrice decimal(18,7),
	@HighPrice decimal(18,7),
	@State int,
	@Type int,
	@MinPrice decimal(18,7),
	@MaxPrice decimal(18,7),
	@MarginBuy decimal(18,7),
	@MarginSell decimal(18,7),
	@ExpiryDate datetime,
	@SettlementDate datetime,
	@ExtensionInfo nvarchar(max),
	@LastTradeId bigint = null,
	@LastTradeTime datetime2(7) = null,
	@LastTradePrice decimal(18,7) = null,
	@LastTradeVolume decimal(18,7) = null,
	@LastTradeOrderDirection int = null,
	@BestBidPrice decimal(18,7) = null,
	@BestBidVolume decimal(18,7) = null,
	@BestBidOrderDirection int = null,
	@BestAskPrice decimal(18,7) = null,
	@BestAskVolume decimal(18,7) = null,
	@BestAskOrderDirection int = null,
	@Exchange nvarchar(64),
	@UnderlyingSecurityId nvarchar(256),
	@Strike decimal(18,7),
	@OptionType int,
	@Volatility decimal(18,7),
	@TheorPrice decimal(18,7)
as
begin transaction

declare @ExtensionInfoXml xml
set @ExtensionInfoXml = convert(xml, @ExtensionInfo, 1)

declare @FinamMarketId bigint
declare @FinamSecurityId bigint
declare @Source nvarchar(128)
declare @TradeSource nvarchar(128)
declare @DepthSource nvarchar(128)
declare @IsSelected bit
declare @TradeCount int
declare @DepthCount int
declare @LastUpdateTime datetime

set @FinamMarketId = @ExtensionInfoXml.value(N'(/IDictionaryBeginObjectAndObjectEnd/KeyValuePairBeginObjectAndObjectEnd[key/Value = &amp;quot;FinamMarketId&amp;quot;]/value/Value)[1]', 'bigint')
set @FinamSecurityId = @ExtensionInfoXml.value(N'(/IDictionaryBeginObjectAndObjectEnd/KeyValuePairBeginObjectAndObjectEnd[key/Value = &amp;quot;FinamSecurityId&amp;quot;]/value/Value)[1]', 'bigint')
set @Source = @ExtensionInfoXml.value(N'(/IDictionaryBeginObjectAndObjectEnd/KeyValuePairBeginObjectAndObjectEnd[key/Value = &amp;quot;Source&amp;quot;]/value/Value)[1]', 'nvarchar(128)')
set @TradeSource = @ExtensionInfoXml.value(N'(/IDictionaryBeginObjectAndObjectEnd/KeyValuePairBeginObjectAndObjectEnd[key/Value = &amp;quot;TradeSource&amp;quot;]/value/Value)[1]', 'nvarchar(128)')
set @DepthSource = @ExtensionInfoXml.value(N'(/IDictionaryBeginObjectAndObjectEnd/KeyValuePairBeginObjectAndObjectEnd[key/Value = &amp;quot;DepthSource&amp;quot;]/value/Value)[1]', 'nvarchar(128)')
set @IsSelected = IsNull(@ExtensionInfoXml.value(N'(/IDictionaryBeginObjectAndObjectEnd/KeyValuePairBeginObjectAndObjectEnd[key/Value = &amp;quot;IsSelected&amp;quot;]/value/Value)[1]', 'bit'), 0)
set @TradeCount = IsNull(@ExtensionInfoXml.value(N'(/IDictionaryBeginObjectAndObjectEnd/KeyValuePairBeginObjectAndObjectEnd[key/Value = &amp;quot;TradeCount&amp;quot;]/value/Value)[1]', 'int'), 0)
set @DepthCount = IsNull(@ExtensionInfoXml.value(N'(/IDictionaryBeginObjectAndObjectEnd/KeyValuePairBeginObjectAndObjectEnd[key/Value = &amp;quot;DepthCount&amp;quot;]/value/Value)[1]', 'int'), 0)
--set @LastUpdateTime = @ExtensionInfoXml.value(N'(/IDictionaryBeginObjectAndObjectEnd/KeyValuePairBeginObjectAndObjectEnd[key/Value = &amp;quot;LastUpdateTime&amp;quot;]/value/Value)[1]', 'datetime')

begin try
	if (exists(select * from [Security] where Id = @Id))
	begin
		update [Security]
		set
			Name = @Name,
			Code = @Code,
			Class = @Class,
			ShortName = @ShortName,
			MinStepSize = @MinStepSize,
			MinStepPrice = @MinStepPrice,
			MinLotSize = @MinLotSize,
			Decimals = @Decimals,
			OpenPrice = @OpenPrice,
			ClosePrice = @ClosePrice,
			LowPrice = @LowPrice,
			HighPrice = @HighPrice,
			[State] = @State,
			[Type] = @Type,
			MinPrice = @MinPrice,
			MaxPrice = @MaxPrice,
			MarginBuy = @MarginBuy,
			MarginSell = @MarginSell,
			ExpiryDate = @ExpiryDate,
			SettlementDate = @SettlementDate,
			ExtensionInfo = @ExtensionInfo,
			LastTradeId = @LastTradeId,
			LastTradeTime = @LastTradeTime,
			LastTradePrice = @LastTradePrice,
			LastTradeVolume = @LastTradeVolume,
			LastTradeOrderDirection = @LastTradeOrderDirection,
			BestBidPrice = @BestBidPrice,
			BestBidVolume = @BestBidVolume,
			BestBidOrderDirection = @BestBidOrderDirection,
			BestAskPrice = @BestAskPrice,
			BestAskVolume = @BestAskVolume,
			BestAskOrderDirection = @BestAskOrderDirection,
			Exchange = @Exchange,
			UnderlyingSecurityId = @UnderlyingSecurityId,
			Strike = @Strike,
			OptionType = @OptionType,
			Volatility = @Volatility,
			TheorPrice = @TheorPrice
		where
			Id = @Id

		update HydraSecurityInfo
		set
			FinamMarketId = @FinamMarketId,
			FinamSecurityId = @FinamSecurityId,
			[Source] = @Source,
			TradeSource = @TradeSource,
			DepthSource = @DepthSource,
			IsSelected = @IsSelected,
			TradeCount = @TradeCount,
			DepthCount = @DepthCount,
			LastUpdateTime = @LastUpdateTime
		where
			[Security] = @Id
	end
	else
	begin
		insert into [Security]
			(Id, Name, Code, Class, ShortName, MinStepSize, MinStepPrice, MinLotSize, Decimals,
			OpenPrice, ClosePrice, LowPrice, HighPrice, [State], [Type], MinPrice, MaxPrice, MarginBuy, MarginSell, ExpiryDate,
			SettlementDate, ExtensionInfo, LastTradeId, LastTradeTime, LastTradePrice, LastTradeVolume, LastTradeOrderDirection,
			BestBidPrice, BestBidVolume, BestBidOrderDirection, BestAskPrice, BestAskVolume, BestAskOrderDirection, Exchange,
			OptionType, Strike,UnderlyingSecurityId, Volatility, TheorPrice)
		values
			(@Id, @Name, @Code, @Class, @ShortName, @MinStepSize, @MinStepPrice, @MinLotSize, @Decimals,
			@OpenPrice, @ClosePrice, @LowPrice, @HighPrice, @State, @Type, @MinPrice, @MaxPrice, @MarginBuy, @MarginSell, @ExpiryDate,
			@SettlementDate, @ExtensionInfo, @LastTradeId, @LastTradeTime, @LastTradePrice, @LastTradeVolume, @LastTradeOrderDirection,
			@BestBidPrice, @BestBidVolume, @BestBidOrderDirection, @BestAskPrice, @BestAskVolume, @BestAskOrderDirection, @Exchange,
			@OptionType, @Strike, @UnderlyingSecurityId, @Volatility, @TheorPrice)

		insert into HydraSecurityInfo
			([Security], TradeSource, DepthSource, [Source], IsSelected, TradeCount, DepthCount, FinamMarketId, FinamSecurityId, LastUpdateTime)
		values
           (@Id, @TradeSource, @DepthSource, @Source, @IsSelected, @TradeCount, @DepthCount, @FinamMarketId, @FinamSecurityId, @LastUpdateTime)
	end
end try
begin catch
	if @@TRANCOUNT &amp;gt; 0
		rollback transaction
		
	print 'Error Number: ' + str(error_number()) 
	print 'Line Number: ' + str(error_line())
	print error_message()
	
	exec usp_RethrowError
end catch

if @@TRANCOUNT &amp;gt; 0
	commit transaction
	
GO

ALTER TABLE [dbo].[Security] ALTER COLUMN [Strike] DECIMAL (18,7) NOT NULL;
ALTER TABLE [dbo].[Security] ALTER COLUMN [TheorPrice] DECIMAL (18,7) NOT NULL;
ALTER TABLE [dbo].[Security] ALTER COLUMN [Volatility] DECIMAL (18,7) NOT NULL;

ALTER TABLE [dbo].[Security] ALTER COLUMN [BestAskOrderDirection] INT NULL;
ALTER TABLE [dbo].[Security] ALTER COLUMN [BestAskPrice] DECIMAL (18,7) NULL;
ALTER TABLE [dbo].[Security] ALTER COLUMN [BestAskVolume] DECIMAL (18,7) NULL;

ALTER TABLE [dbo].[Security] ALTER COLUMN [BestBidOrderDirection] INT NULL;
ALTER TABLE [dbo].[Security] ALTER COLUMN [BestBidPrice] DECIMAL (18,7) NULL;
ALTER TABLE [dbo].[Security] ALTER COLUMN [BestBidVolume] DECIMAL (18,7) NULL;

ALTER TABLE [dbo].[Security] ALTER COLUMN [LastTradeId] BIGINT NULL;
ALTER TABLE [dbo].[Security] ALTER COLUMN [LastTradePrice] DECIMAL (18,7) NULL;
ALTER TABLE [dbo].[Security] ALTER COLUMN [LastTradeTime] DATETIME2 (7) NULL;
ALTER TABLE [dbo].[Security] ALTER COLUMN [LastTradeVolume] DECIMAL (18,7) NULL;


ALTER TABLE [dbo].[MarketDataSourceSettings] add FilterBySecurities bit NULL;

go

update [dbo].[MarketDataSourceSettings]
set
	[StorageFolder] = N''
where
	[StorageFolder] is null

update [dbo].[MarketDataSourceSettings]
set
	FilterBySecurities = 0
where
	FilterBySecurities is null

go

ALTER TABLE [dbo].[MarketDataSourceSettings] ALTER COLUMN [StorageFolder] [nvarchar](2048) NOT NULL;
ALTER TABLE [dbo].[MarketDataSourceSettings] ALTER COLUMN FilterBySecurities bit NOT NULL;

go

alter proc [dbo].[MarketDataSourceSettings_UpdateBySourceId]
	@SourceId as uniqueidentifier,
	@IsEnabled as bit,
	@WorkingFrom as time(7),
	@WorkingTo as time(7),
	@Interval as time(7),
	@DumpFolder nvarchar(2048),
	@StorageFolder nvarchar(2048),
	@ExtensionInfo nvarchar(max),
	@FilterBySecurities bit
as
if (exists(select * from MarketDataSourceSettings where SourceId = @SourceId))
	update MarketDataSourceSettings
	set
		IsEnabled = @IsEnabled,
		WorkingFrom = @WorkingFrom,
		WorkingTo = @WorkingTo,
		Interval = @Interval,
		DumpFolder = @DumpFolder,
		StorageFolder = @StorageFolder,
		ExtensionInfo = @ExtensionInfo,
		FilterBySecurities = @FilterBySecurities
	where
		SourceId = @SourceId
else
	insert into MarketDataSourceSettings
		(SourceId, IsEnabled, WorkingFrom, WorkingTo, Interval, DumpFolder, StorageFolder, ExtensionInfo, FilterBySecurities)
	values
		(@SourceId, @IsEnabled, @WorkingFrom, @WorkingTo, @Interval, @DumpFolder, @StorageFolder, @ExtensionInfo, @FilterBySecurities)
&lt;/code&gt;&lt;/pre&gt;
</content>
    <rights type="html">Copyright @ StockSharp Platform LLC 2010 - 2025</rights>
  </entry>
</feed>