Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / decimal(Nhiber) / 22 сообщений из 22, страница 1 из 1
28.04.2008, 12:12
    #35283182
студ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Если разделителем разряда в региональных настройках стоит ",", то при обновлении decimal полей с ненулевыми дробными разрядами получается ошибка:

RIT.AUC.BLL.BLLException: Commit transaction error ---> NHibernate.ADOException: could not insert: [RIT.AUC.BLL.Interface.TangibleItem#e057659d-95d2-4e6f-b6a2-6ca3485b50a7][SQL: INSERT INTO Items (ItemQuantity, InventoryNumber, Location, ProductionYear, UnitID, Name, SellPrice, EstimatePrice, BalancePrice, ItemNote, IsSold, AuctionId, LotId, AMAManagerProcedureId, AMAItemId, AMAGroupId, Type, Id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'Tangible', ?)] ---> System.Data.OleDb.OleDbException: Несоответствие типов данных в выражении условия отбора.
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at NHibernate.JetDriver.JetDbCommand.ExecuteNonQuery()
at NHibernate.Impl.NonBatchingBatcher.AddToBatch(IExpectation expectation)
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session)
--- End of inner exception stack trace ---
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Boolean[] notNull, Int32 j, SqlCommandInfo sql, Object obj, ISessionImplementor session)
at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object id, Object[] fields, Object obj, ISessionImplementor session)
at NHibernate.Impl.ScheduledInsertion.Execute()
at NHibernate.Impl.SessionImpl.Execute(IExecutable executable)
at NHibernate.Impl.SessionImpl.ExecuteAll(IList list)
at NHibernate.Impl.SessionImpl.Execute()
at NHibernate.Impl.SessionImpl.Flush()
at NHibernate.Transaction.AdoTransaction.Commit()
at RIT.AUC.BLL.SessionFactory.CommitTransaction() in D:\ilya\WORK\Auction\src\BLL\SessionFactory.cs:line 114
--- End of inner exception stack trace ---
at RIT.AUC.BLL.SessionFactory.CommitTransaction() in D:\ilya\WORK\Auction\src\BLL\SessionFactory.cs:line 125
at RIT.AUC.BLL.Home.CommitTransaction() in D:\ilya\WORK\Auction\src\BLL\Home.cs:line 119
at RIT.AUC.Tests.TMassa.TestEdit() in D:\ilya\WORK\Auction\src\Tests\TesterNG\TMassa.cs:line 163
at RIT.AUC.Tests.TMassa.DoTest(String key) in D:\ilya\WORK\Auction\src\Tests\TesterNG\TMassa.cs:line 272
at RIT.AUC.Tests.EntryPoint.Main(String[] args) in D:\ilya\WORK\Auction\src\Tests\TesterNG\EntryPoint.cs:line 31
...
Рейтинг: 0 / 0
28.04.2008, 12:35
    #35283232
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Не может такого быть -- там параметризованный запрос. Проверяйте соответствие типов параметров.
...
Рейтинг: 0 / 0
28.04.2008, 12:56
    #35283296
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
почему не может быть?
...
Рейтинг: 0 / 0
28.04.2008, 12:59
    #35283303
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Valadimirпочему не может быть?
Потому что запрос параметризованный (разумеется, если он верно параметризованный).
...
Рейтинг: 0 / 0
28.04.2008, 13:11
    #35283350
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Home.Instance.BeginTransaction();
Session.Save(obj);
Home.Instance.CommitTransaction();

общение с базой происходит через nhibernate значит параметризованный запрос тоже в nhibernate создается, получается в его исходники нужно лезть...или
может быть установить локаль конкретно для nhiber если вообще это возможно...
...
Рейтинг: 0 / 0
28.04.2008, 13:15
    #35283365
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Valadimirобщение с базой происходит через nhibernate значит параметризованный запрос тоже в nhibernate создается, получается в его исходники нужно лезть...или
может быть установить локаль конкретно для nhiber если вообще это возможно...
Охх... Какая локаль, вы о чем вообще? Параметризованный запрос -- он на то и параметризованный, что от локали не зависит.
...
Рейтинг: 0 / 0
28.04.2008, 15:37
    #35283843
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Да правильно, но как установить эти параметры, если они устанавливаются в nhibernate
...
Рейтинг: 0 / 0
28.04.2008, 15:44
    #35283861
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
ValadimirДа правильно, но как установить эти параметры, если они устанавливаются в nhibernate
Они устанавливаются из прикладного кода. Вдумчиво читаем .
...
Рейтинг: 0 / 0
28.04.2008, 15:47
    #35283874
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Спасибо уже читаю :)
...
Рейтинг: 0 / 0
28.04.2008, 16:01
    #35283916
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
то есть нужно написать запрос с указанием типов без save
...
Рейтинг: 0 / 0
28.04.2008, 16:05
    #35283931
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Valadimirто есть нужно написать запрос с указанием типов без save
Вы с кем сейчас разговариваете? Может быть, покажете маппинги и код?
...
Рейтинг: 0 / 0
28.04.2008, 16:10
    #35283948
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Дело в том что у меня сейчас не кода на этом компе будут только завтра. А вообще в коде просто session.Save. Ладно вообщем хелп буду читать, а то действительно только время отнимаю.
...
Рейтинг: 0 / 0
28.04.2008, 16:12
    #35283955
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Дело в том что у меня сейчас не кода на этом компе будут только завтра. А вообще в коде просто session.Save. Ладно вообщем хелп буду читать, а то действительно только время отнимаю.
Последний вопрос: Типы данных которые задаем в мэпингах - это и есть те параметры о котрых вы говорили?
...
Рейтинг: 0 / 0
28.04.2008, 16:21
    #35283989
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Да, те самые.
...
Рейтинг: 0 / 0
28.04.2008, 16:26
    #35284004
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
получается если у я хочу вставить decimal(999.99m) в базу данных Access где тип поля тоже decimal, то в nhibernate я должен установить тип decimal и все будет ок?
Если да то вопрос, вы сами так делали?
...
Рейтинг: 0 / 0
28.04.2008, 16:29
    #35284012
Нахлобуч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Valadimirполучается если у я хочу вставить decimal(999.99m) в базу данных Access где тип поля тоже decimal, то в nhibernate я должен установить тип decimal и все будет ок?
Если да то вопрос, вы сами так делали?
Только так и делаю. А вы как это всё осуществляете, позвольте поинтересоваться?
...
Рейтинг: 0 / 0
28.04.2008, 16:31
    #35284022
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
я имел ввиду именно с Access-ом
...
Рейтинг: 0 / 0
28.04.2008, 16:34
    #35284033
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Если региональных настройках разделителями стоят обе запятые, то decimal при OleDbType=Decimal не вставить. Ошибка будет несоответствие типов
...
Рейтинг: 0 / 0
28.04.2008, 16:35
    #35284034
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
это я про Access
...
Рейтинг: 0 / 0
28.04.2008, 16:37
    #35284038
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
вот о чем я:
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb;";
OleDbConnection connection = new OleDbConnection(ConnectionString);

string insertcommand = "INSERT INTO Test (DecimalField, Id) VALUES (?, ?)";
OleDbCommand command = new OleDbCommand(insertcommand, connection);

OleDbParameter param = new OleDbParameter("@DecimalField", 999.99999M);
param.OleDbType = OleDbType.Decimal;

command.Parameters.Add(param);
command.Parameters.Add(new OleDbParameter("@Id", Guid.NewGuid()));
connection.Open();
command.ExecuteNonQuery();
...
Рейтинг: 0 / 0
28.04.2008, 16:51
    #35284074
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
извиняюсь если что не то сказал
...
Рейтинг: 0 / 0
29.04.2008, 10:04
    #35284899
Valadimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
decimal(Nhiber)
Вот mapping:
<class name="RIT.AUC.BLL.Interface.Item, AUC.BLL" table="Items" discriminator-value="Base">
<id name="Id" unsaved-value="{00000000-0000-0000-0000-000000000000}">
<generator class="guid" />
</id>

<discriminator column="Type" />

<property name="Name" length="100" not-null="true" />
<property name="SellPrice" type="Decimal"/>
<property name="EstimatePrice" type="Decimal"/>
<property name="BalancePrice" type="Decimal" />
<property name="Note" column="ItemNote" />
<property name="IsSold" />

<many-to-one name="Auction" class="RIT.AUC.BLL.Interface.Auction, AUC.BLL" column="AuctionId" />
<many-to-one name="Lot" class="RIT.AUC.BLL.Interface.Lot, AUC.BLL" column="LotId" />

<component name="AMAInfo">
<property name="AMAManagerProcedureId" />
<property name="AMAItemId" />
<property name="AMAGroupId" />
</component>
</class>
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / decimal(Nhiber) / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]