Проблема с Parameters
От: kuu  
Дата: 07.07.04 10:37
Оценка:
Действую так:


DbManager db = new DbManager()

db.SetCommand(@"
    UPDATE people SET
        firstname=@firstname,
    lastname=@lastname
    WHERE
        id=@id
", 
db.Parameter("@firstname", "barabashka"),
db.Parameter("@lastname", "karabashka"),
db.Parameter("@middlename", 10)
);


Не работает.

Если в запросе "@..." заменить на "?" — работает.

Если вместо db.Parameter... вызывать db.CreateParameters — не работает.

Если команду UPDATE заменить на INSERT — всё работает с поименованными параметрами.

ODBC, MySQL driver.

Что не так?
Re: Проблема с Parameters
От: IT Россия linq2db.com
Дата: 07.07.04 11:41
Оценка:
Здравствуйте, kuu, Вы писали:

kuu>Что не так?


Какой тескт ошибки?
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Проблема с Parameters
От: kuu  
Дата: 07.07.04 11:54
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, kuu, Вы писали:

kuu>>Что не так?
IT>Какой тескт ошибки?

В том-то и дело, что никакого.
Он молча проглатывает и ничего не говорит.
Re[3]: Проблема с Parameters
От: IT Россия linq2db.com
Дата: 07.07.04 12:21
Оценка:
Здравствуйте, kuu, Вы писали:

kuu>В том-то и дело, что никакого.

kuu>Он молча проглатывает и ничего не говорит.

Попробуй написать запрос без RFD, просто на ADO.NET, и дай сюда код посмотреть.
RFD просто рапер, они ничем недозволенным не занимается.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Проблема с Parameters
От: orangy Россия
Дата: 07.07.04 16:01
Оценка:
Здравствуйте, IT, Вы писали:

kuu>>В том-то и дело, что никакого.

kuu>>Он молча проглатывает и ничего не говорит.

IT>Попробуй написать запрос без RFD, просто на ADO.NET, и дай сюда код посмотреть.

IT>RFD просто рапер, они ничем недозволенным не занимается.
Только студию роняет, если случается исключение или брякпоинт во время маппинга, а так да, ничем
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Re[5]: Проблема с Parameters
От: IT Россия linq2db.com
Дата: 07.07.04 18:50
Оценка:
Здравствуйте, orangy, Вы писали:

IT>>RFD просто рапер, они ничем недозволенным не занимается.

O>Только студию роняет, если случается исключение или брякпоинт во время маппинга, а так да, ничем

Ни разу такого не видел. Можно по подробнее?
... << Rsdn@Home 1.1.4 beta 1 >>
Если нам не помогут, то мы тоже никого не пощадим.
Re[6]: Проблема с Parameters
От: orangy Россия
Дата: 08.07.04 05:29
Оценка:
Здравствуйте, IT, Вы писали:

IT>>>RFD просто рапер, они ничем недозволенным не занимается.

O>>Только студию роняет, если случается исключение или брякпоинт во время маппинга, а так да, ничем

IT>Ни разу такого не видел. Можно по подробнее?

Ставлю бряк в сеттере, во время маппинга бряк срабатывает, а потом студия падает... Возможно влияет то, что у меня включено Show non-user code in call stack.

Кстати, мы тут малость похачили:
1. ISupportInitialize для коллекций
2. Добавили DbManager.CloseCommand — освобождает команды, но не закрывает коннекшн, для "пулирования" соединения.
И что-то еще по мелочи, не помню.
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Re[7]: Проблема с Parameters
От: SiAVoL Россия  
Дата: 08.07.04 05:43
Оценка:
Здравствуйте, orangy, Вы писали:

O>Кстати, мы тут малость похачили:

это интересно, тоже над этим не так давно начал задумываться Можно это где-то глянуть? Ну и сам тоже могу поделиться кое-чем У меня добавлен синтаксис
public abstract class TestObject
{
    public abstract string Name { get; set; }
    public abstract event EventHandler NameChanged;
}

ну и еще чего-то по мелочи

ЗЫ: RFD-хакеры объединяйтесь!
... << RSDN@Home 1.1.4 beta 2 >>
Re[8]: Проблема с Parameters
От: orangy Россия
Дата: 08.07.04 05:59
Оценка:
Здравствуйте, SiAVoL, Вы писали:

O>>Кстати, мы тут малость похачили:

SAV>это интересно, тоже над этим не так давно начал задумываться Можно это где-то глянуть? Ну и сам тоже могу поделиться кое-чем У меня добавлен синтаксис

Мы не пользуемся абстрактными сущностями, бизнес-логика нетривиальная. А насчёт XXXChanged — у меня другая система, расширение компонентной модели IBindingObject в пару к IBindingCollection.

SAV>ЗЫ: RFD-хакеры объединяйтесь!

Посмотрим, посмотрим
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Re[9]: Проблема с Parameters
От: SiAVoL Россия  
Дата: 08.07.04 06:21
Оценка:
Здравствуйте, orangy, Вы писали:

O>насчёт XXXChanged — у меня другая система, расширение компонентной модели IBindingObject в пару к IBindingCollection.

То-бишь свой биндинг написан? Млин, тоже в последнее время все чаще появляются такие мысли. А то стандартный дикий какой-то, пака еще отделываюсь от него подпорками да костылями, а что дальше будет...
... << RSDN@Home 1.1.4 beta 2 >>
Re[10]: Проблема с Parameters
От: orangy Россия
Дата: 08.07.04 06:43
Оценка: :))) :)
Здравствуйте, SiAVoL, Вы писали:

SAV>Здравствуйте, orangy, Вы писали:


O>>насчёт XXXChanged — у меня другая система, расширение компонентной модели IBindingObject в пару к IBindingCollection.

SAV>То-бишь свой биндинг написан? Млин, тоже в последнее время все чаще появляются такие мысли. А то стандартный дикий какой-то, пака еще отделываюсь от него подпорками да костылями, а что дальше будет...
Честный свой биндинг написать невозможно — необходимые методы и классы хоть и есть, и виртуальны, но увы являются internal. Кроме того, во многих местах создание CurrencyManager запихано прямо в код и подменить его нет возможности. Я этот вопрос подробно изучал, так что увы... А IBindingObject нужен по другой причине. У IBindingList есть событие ListChanged, и есть вариант, что ItemChanged. Так вот мои реализации коллекций умеют понимать IBO, подписываться на изменения в бизнес сущностях и поднимать соотв. события. Таким образом, изменение объектов "доходит" до прибинденых контролов моментально.

ЗЫ: Вообще, есть настойчивое желание переписать System.Windows.Forms... Бью себя по рукам...
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Re[9]: Проблема с Parameters
От: SiAVoL Россия  
Дата: 08.07.04 07:06
Оценка:
Здравствуйте, orangy, Вы писали:

O>Мы не пользуемся абстрактными сущностями, бизнес-логика нетривиальная.

Кстати о нетривиальной логике. У вас присутствую какие-либо связи между бизнес-объектами? И если да, то как вы их реализуете в рамках RFD?
... << RSDN@Home 1.1.4 beta 2 >>
Re[10]: Проблема с Parameters
От: orangy Россия
Дата: 08.07.04 07:53
Оценка:
Здравствуйте, SiAVoL, Вы писали:

SAV>Здравствуйте, orangy, Вы писали:


O>>Мы не пользуемся абстрактными сущностями, бизнес-логика нетривиальная.

SAV>Кстати о нетривиальной логике. У вас присутствую какие-либо связи между бизнес-объектами? И если да, то как вы их реализуете в рамках RFD?
Ну конечно присутствуют Интересная была бы система бизнес-сущностей без связей между ними...

Честно говоря, этим уровнем занимаюсь не я, поэтому подробно ответить не могу. Могу сказать только, что бОльшая часть связей реализуется подгрузкой on-demand. Там еще сохранение изменений (в т.ч. связей, включая М:М), кэш прикручен и еще куча всякой ерунды...
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Re[11]: Проблема с Parameters
От: SiAVoL Россия  
Дата: 08.07.04 08:36
Оценка:
Здравствуйте, orangy, Вы писали:

O>Честно говоря, этим уровнем занимаюсь не я, поэтому подробно ответить не могу.

жаль, мне было бы интересно. Я как раз сейчас этим занимаюсь
O>Могу сказать только, что бОльшая часть связей реализуется подгрузкой on-demand. Там еще сохранение изменений (в т.ч. связей, включая М:М), кэш прикручен и еще куча всякой ерунды...
Ну у меня тоже подгрузка по запросу (хотя бы потому, что так легче ) с сохранениями и кэшами (что там без кэша то делать?). Связи я делаю на атрибутах у абстрактных классов бизнес-объектов. Единственное, что мне не нравится так это то, что при этом приходится активно модифицировать кодогенератор RFD . Боюсь с новой версией придетсчя долго сливать изменения. К нему бы какую-нибудь систему плугинов прикрутить, что бы я мог зарегать свои атрибуты и генерить код сам. Эх мечты, мечты... Или они могут стать реальностью? А, IT?
... << RSDN@Home 1.1.4 beta 2 >>
Re[7]: Проблема с Parameters
От: IT Россия linq2db.com
Дата: 08.07.04 11:55
Оценка:
Здравствуйте, orangy, Вы писали:

IT>>Ни разу такого не видел. Можно по подробнее?

O>Ставлю бряк в сеттере, во время маппинга бряк срабатывает, а потом студия падает... Возможно влияет то, что у меня включено Show non-user code in call stack.

Будем искать...

O>Кстати, мы тут малость похачили:

O>1. ISupportInitialize для коллекций

Это как? Откуда там коллекции?

O>2. Добавили DbManager.CloseCommand — освобождает команды, но не закрывает коннекшн, для "пулирования" соединения.


Пулить соединения — это не по-пацански
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Проблема с Parameters
От: IT Россия linq2db.com
Дата: 08.07.04 11:59
Оценка:
Здравствуйте, orangy, Вы писали:

SAV>>это интересно, тоже над этим не так давно начал задумываться Можно это где-то глянуть? Ну и сам тоже могу поделиться кое-чем У меня добавлен синтаксис


O>Мы не пользуемся абстрактными сущностями, бизнес-логика нетривиальная. А насчёт XXXChanged — у меня другая система, расширение компонентной модели IBindingObject в пару к IBindingCollection.


С абстрактными классами внутренняя реализация сущностей легко расширяется с помощью MapType атрибута.

Вот пример из хелпа:

/// example:
/// maptype ctor(Type)
/// comment:
/// The following example demonstrates how to use the <b>MapTypeAttribute</b> attribute.
using System;
using NUnit.Framework;
using Rsdn.Framework.Data.Mapping;

namespace Examples_Mapping_MapTypeAttribute
{
    [TestFixture]
    public class ctor_Type
    {
        public class MyInt1
        {
            public int Value { get { return 1; } }
        }

        public class MyInt2
        {
            public int Value { get { return 2; } }
        }

        public class MyInt3
        {
            public int Value { get { return 3; } }
        }

        [MapType(typeof(int), typeof(MyInt2))]
        public abstract class BaseEntity
        {
        }

        public interface IEntity
        {
            [MapType(typeof(MyInt3))]
            int Property3 { get; }
        }

        public abstract class TestEntity : BaseEntity, IEntity
        {
            // Implementation property type is set explicitly.
            //
            [MapType(typeof(MyInt1))]
            public abstract int Property1 { get; }

            // Implementation type is taken from BaseEntity.
            // MyInt2 is propagated to all current and child classes properties of int type.
            //
            public abstract int Property2 { get; }
        
            // Implementation type is taken from IEntity.
            // This way has higher priority than previous one.
            //
            public abstract int Property3 { get; }
        }

        [Test]
        public void Test()
        {
            TestEntity te = (TestEntity)Map.Descriptor(typeof(TestEntity)).CreateInstance();

            Assert.AreEqual(1, te.Property1);
            Assert.AreEqual(2, te.Property2);
            Assert.AreEqual(3, te.Property3);
        }
    }
}


На базовый класс можно повесить маппинг базовых типов и в наследниках их вообще не нужно будет указывать.

Или я не о том?
Если нам не помогут, то мы тоже никого не пощадим.
Re[12]: Проблема с Parameters
От: IT Россия linq2db.com
Дата: 08.07.04 12:35
Оценка: 12 (1)
Здравствуйте, SiAVoL, Вы писали:

SAV>Эх мечты, мечты... Или они могут стать реальностью? А, IT?


Why not!
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Проблема с Parameters
От: IT Россия linq2db.com
Дата: 08.07.04 12:40
Оценка: +1
Здравствуйте, SiAVoL, Вы писали:

SAV>ЗЫ: RFD-хакеры объединяйтесь!


Есть другая идея. Я всегда был против создания полноценного ORM, но можно в рамках Rsdn.Framework.Data сделать namespace Template или Pattern и наложить в него заготовок для создания собственных кастомных решений.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Проблема с Parameters
От: orangy Россия
Дата: 08.07.04 12:44
Оценка:
Здравствуйте, IT, Вы писали:

O>>Кстати, мы тут малость похачили:

O>>1. ISupportInitialize для коллекций
IT>Это как? Откуда там коллекции?
Ну когда List выгребаешь...

O>>2. Добавили DbManager.CloseCommand — освобождает команды, но не закрывает коннекшн, для "пулирования" соединения.

IT>Пулить соединения — это не по-пацански
Поясни?
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Re[13]: Проблема с Parameters
От: SiAVoL Россия  
Дата: 08.07.04 13:39
Оценка:
Здравствуйте, IT, Вы писали:

IT>Why not!

УРА!
... << RSDN@Home 1.1.4 beta 2 >>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.