|
|
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Если разделителем разряда в региональных настройках стоит ",", то при обновлении 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 12:12 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Не может такого быть -- там параметризованный запрос. Проверяйте соответствие типов параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 12:35 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
почему не может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 12:56 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Valadimirпочему не может быть? Потому что запрос параметризованный (разумеется, если он верно параметризованный). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 12:59 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Home.Instance.BeginTransaction(); Session.Save(obj); Home.Instance.CommitTransaction(); общение с базой происходит через nhibernate значит параметризованный запрос тоже в nhibernate создается, получается в его исходники нужно лезть...или может быть установить локаль конкретно для nhiber если вообще это возможно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 13:11 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Valadimirобщение с базой происходит через nhibernate значит параметризованный запрос тоже в nhibernate создается, получается в его исходники нужно лезть...или может быть установить локаль конкретно для nhiber если вообще это возможно... Охх... Какая локаль, вы о чем вообще? Параметризованный запрос -- он на то и параметризованный, что от локали не зависит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 13:15 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Да правильно, но как установить эти параметры, если они устанавливаются в nhibernate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 15:37 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
ValadimirДа правильно, но как установить эти параметры, если они устанавливаются в nhibernate Они устанавливаются из прикладного кода. Вдумчиво читаем . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 15:44 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Спасибо уже читаю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 15:47 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
то есть нужно написать запрос с указанием типов без save ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:01 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Valadimirто есть нужно написать запрос с указанием типов без save Вы с кем сейчас разговариваете? Может быть, покажете маппинги и код? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:05 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Дело в том что у меня сейчас не кода на этом компе будут только завтра. А вообще в коде просто session.Save. Ладно вообщем хелп буду читать, а то действительно только время отнимаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:10 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Дело в том что у меня сейчас не кода на этом компе будут только завтра. А вообще в коде просто session.Save. Ладно вообщем хелп буду читать, а то действительно только время отнимаю. Последний вопрос: Типы данных которые задаем в мэпингах - это и есть те параметры о котрых вы говорили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:12 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
получается если у я хочу вставить decimal(999.99m) в базу данных Access где тип поля тоже decimal, то в nhibernate я должен установить тип decimal и все будет ок? Если да то вопрос, вы сами так делали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:26 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Valadimirполучается если у я хочу вставить decimal(999.99m) в базу данных Access где тип поля тоже decimal, то в nhibernate я должен установить тип decimal и все будет ок? Если да то вопрос, вы сами так делали? Только так и делаю. А вы как это всё осуществляете, позвольте поинтересоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:29 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
я имел ввиду именно с Access-ом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:31 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Если региональных настройках разделителями стоят обе запятые, то decimal при OleDbType=Decimal не вставить. Ошибка будет несоответствие типов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:34 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
вот о чем я: 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(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:37 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
извиняюсь если что не то сказал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2008, 16:51 |
|
||
|
decimal(Nhiber)
|
|||
|---|---|---|---|
|
#18+
Вот 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> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2008, 10:04 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=35283296&tid=1352296]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 297ms |

| 0 / 0 |
