Re[7]: Пространство имён Rsdn.Framework.Data
От: Alexds  
Дата: 17.12.03 09:20
Оценка:
Здравствуйте, IT, Вы писали:

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


Значит все-таки добавим что-то для обновления Dataset-ов в библиотеку?
Re[8]: Пространство имён Rsdn.Framework.Data
От: IT Россия linq2db.com
Дата: 17.12.03 12:41
Оценка:
Здравствуйте, Alexds, Вы писали:

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


A>Значит все-таки добавим что-то для обновления Dataset-ов в библиотеку?


Добавим.
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Пространство имён Rsdn.Framework.Data
От: Walker США  
Дата: 17.12.03 14:17
Оценка:
Здравствуйте, IT, Вы писали:

IT>Если же вынести задание команд в отдельные методы, то дальше комбинируй сам как хочешь.


IT>
IT>using (DbManager db = new DbManager())
IT>{
IT>    return db
IT>        .InsertCommand("INSERT INTO...", db.CreateParameters(entity))
IT>        .UpdateCommand(CommandType.StoredProcedure, "UpdateItem")
IT>        .DeleteSp("DeleteItem", db.Parameter("@ID"))
IT>        .UpdateDataSet();
IT>}
IT>


IT>Придётся конечно запоминать сформированные команды в DbManager, но это уже мелочи.


Еще мысля меня посетила... При таком подходе фактически выставляются команды для инстанса. Если я хочу выполнить два подряд апдейта, то после первого у меня останутся команды, которые для второго например мне нафиг не нужны, т.е. либо надо тогда еще давать ф-и типа RemoveInsertCommand, но тогда в любом случае перед вызовом ф-и апдейта надо будет указывать все 3 команды, чтобы быть уверенным, что будут использоваться именно те команды, которые нужны, либо как вариант можно очищать все команды после выполнения каждой ф-и апдейта, но это тоже как-то не так, бо а что если я все-таки хочу реиспользовать какую-то команду? В общем, вот...
как выполнить сторед процедуру с 2-мя входными и одним выход
От: oRover Украина  
Дата: 21.12.03 20:08
Оценка:
Здравствуйте, Игорь Ткачёв, Вы писали:

как выполнить сторед процедуру с 2-мя входными и одним выходным параметром?

пробовал ExecuteSpScalar и ExecuteSpList — что-то не получается...
... << RSDN@Home 1.1.0 stable >>
Re: как выполнить сторед процедуру с 2-мя входными и одним в
От: IT Россия linq2db.com
Дата: 21.12.03 21:50
Оценка:
Здравствуйте, oRover, Вы писали:

R>как выполнить сторед процедуру с 2-мя входными и одним выходным параметром?

R>пробовал ExecuteSpScalar и ExecuteSpList — что-то не получается...

Вот юнит тест output параметра:

[Test]
public void OutputParameter()
{
    using (DbManager db = new DbManager(ConfigurationString))
    {
        db.ExecuteNonQuery(@"
            if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Test]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
            begin
                drop procedure [dbo].[Test]
            end");

        db.ExecuteNonQuery(@"
            CREATE PROCEDURE dbo.Test
                @p1 int,
                @p2 int,
                @po int output
            AS

            SET @po = @p1 * @p2");

        db.ExecuteNonQuery(@"
            GRANT EXEC ON dbo.Test TO PUBLIC");

        db.ExecuteSpNonQuery(
            "Test",
            db.Parameter("@p1", 2),
            db.Parameter("@p2", 2),
            db.OutputParameter("@po", 0));

        object o = db.Parameter("@po").Value;

        Console.WriteLine(o);

        Assert.AreEqual(4, o);
    }
}


Но, по моему скромному ИМХУ использование output рараметров не самый лучший способ возвращать данные из сохранённой процедуры. Ту же SP можно написать так:

CREATE PROCEDURE dbo.Test
    @p1 int,
    @p2 int,
AS

SELECT @p1 * @p2"


Результатом будет рекордсет, который можно будет обрабатывать стандартными способами, в том числе и ExecuteSpScalar.
Если нам не помогут, то мы тоже никого не пощадим.
Re: Пространство имён Rsdn.Framework.Data
От: der Igel Россия  
Дата: 21.12.03 22:27
Оценка:
Hello, Игорь!

А как насчет добавить параметр таймаут для ExecuteNonQuery, ExecuteScalar и т.д.?
Posted via RSDN NNTP Server 1.8 beta
Re[2]: Пространство имён Rsdn.Framework.Data
От: IT Россия linq2db.com
Дата: 21.12.03 22:45
Оценка:
Здравствуйте, der Igel, Вы писали:

DI>А как насчет добавить параметр таймаут для ExecuteNonQuery, ExecuteScalar и т.д.?


По идее это задаётся в Command.CommandTimeout.
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Пространство имён Rsdn.Framework.Data
От: der Igel Россия  
Дата: 21.12.03 23:02
Оценка:
Hello, IT!

DI>> А как насчет добавить параметр таймаут для ExecuteNonQuery,

DI>> ExecuteScalar и т.д.?

I> По идее это задаётся в Command.CommandTimeout.


Ну да, но когда мы передаем текст и получаем только результат — доступ к Command мы не имеем...
Posted via RSDN NNTP Server 1.8 beta
Re[4]: Пространство имён Rsdn.Framework.Data
От: IT Россия linq2db.com
Дата: 21.12.03 23:15
Оценка:
Здравствуйте, der Igel, Вы писали:

I>> По идее это задаётся в Command.CommandTimeout.


DI>Ну да, но когда мы передаем текст и получаем только результат — доступ к Command мы не имеем...


Не имеем, надо сделать чтобы имели.
Если нам не помогут, то мы тоже никого не пощадим.
Re[15]: Пространство имён Rsdn.Framework.Data
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.12.03 19:53
Оценка:
Здравствуйте, gloomy rocker, Вы писали:
GR>Понятно...
GR>А какова общая концепция, и что эта штука будет уметь?
И много-много денюшков детишкам принесла...
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Пространство имён Rsdn.Framework.Data
От: Igor Trofimov  
Дата: 15.01.04 10:00
Оценка:
А как бы мне заставить dbManager работать с адаптерами, указвая им мои собственные DataTableMappings ?

Что-то вроде ExecuteDataTable(sqlText, dataTable, dataTableMapping, params parameters) хочется.
Re[2]: Пространство имён Rsdn.Framework.Data
От: IT Россия linq2db.com
Дата: 15.01.04 14:56
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

iT>А как бы мне заставить dbManager работать с адаптерами, указвая им мои собственные DataTableMappings ?


iT>Что-то вроде ExecuteDataTable(sqlText, dataTable, dataTableMapping, params parameters) хочется.


А что такое dataTableMapping? IDictionary?
Если нам не помогут, то мы тоже никого не пощадим.
Re: Пространство имён Rsdn.Framework.Data
От: Аноним  
Дата: 21.05.04 17:42
Оценка:
Здравствуйте, Игорь Ткачёв, Вы писали:

up
Re: Пространство имён Rsdn.Framework.Data
От: Grog13 Финляндия  
Дата: 04.07.08 12:38
Оценка:
ИТ>Статья:
ИТ>Пространство имён Rsdn.Framework.Data
Автор(ы): Игорь Ткачёв
Дата: 01.07.2003
В статье подробно рассматривается состав и способы применения пространства имён Rsdn.Framework.Data, представляющего собой высокоуровневую обёртку над ADO.NET.


А где можно это скачать?
По ссылкам указанным в статье выдается 404.

http://www.rsdn.ru/projects/rfd/rfd.rar
http://www.rsdn.ru/projects/rfd/rfd_dev.rar
Re[2]: Пространство имён Rsdn.Framework.Data
От: der Igel Россия  
Дата: 04.07.08 12:58
Оценка:
Здравствуйте, Grog13, Вы писали:

ИТ>>Статья:

ИТ>>Пространство имён Rsdn.Framework.Data
Автор(ы): Игорь Ткачёв
Дата: 01.07.2003
В статье подробно рассматривается состав и способы применения пространства имён Rsdn.Framework.Data, представляющего собой высокоуровневую обёртку над ADO.NET.


G>А где можно это скачать?


http://bltoolkit.com/
Re: Пространство имён Rsdn.Framework.Data
От: ili Россия  
Дата: 07.07.08 13:24
Оценка: +1
Здравствуйте, Игорь Ткачёв, Вы писали:

ИТ>Аннотация:

ИТ>В статье подробно рассматривается состав и способы применения пространства имён Rsdn.Framework.Data, представляющего собой высокоуровневую обёртку над ADO.NET.

в рамках б-бы за повышение документированности неплохо бы статейку актуализировать, ибо как стартап к системе она очень ценная, юнит тесты, конечно, источник знаний, но явно не дают быстрого и простого понимания что к чему

да и ссылки неактуальные, ниткой выше люди жалуются... це бардак =)
Re[2]: Пространство имён Rsdn.Framework.Data
От: ili Россия  
Дата: 09.07.08 10:14
Оценка: 118 (3) +1
Здравствуйте, ili, Вы писали:

ili>в рамках б-бы за повышение документированности неплохо бы статейку актуализировать, ибо как стартап к системе она очень ценная, юнит тесты, конечно, источник знаний, но явно не дают быстрого и простого понимания что к чему


помятуя о занятости основных игроков, решил помочь с этим делом здесь "рыба" (писата в соотв-ии с требованиями к оформлению статей).

основана на изначалной статье, на сей момент дописата вплоть до методов Execute, что дальше, там накидан небольшой план.
если це устраивает — готов продолжить, если це не устраивает — хозяин барин, если це устраивает частично — давайте ЦУ.
Re[3]: Пространство имён Rsdn.Framework.Data
От: ili Россия  
Дата: 09.07.08 14:38
Оценка:
Здравствуйте, ili, Вы писали:

ili>основана на изначалной статье, на сей момент дописата вплоть до методов Execute, что дальше, там накидан небольшой план.

ili>если це устраивает — готов продолжить, если це не устраивает — хозяин барин, если це устраивает частично — давайте ЦУ.

там в доке, в самом конце там где про ExecuteDictionary есть одна маленькая непонятка... можно мне словами разъяснить что и как там получается на счет "ID" и "@PersonId" выступающих как ключи...
честно говоря, тут некоторый бардак (ну у мя в голове — точно )...
т.к. в ряде случаев я точно натыкался на эксепшн который говорил, что необходимо использовать имя для отображения (вроде это было в ExecuteResultSets) а тут ни ясно как так....
Re[4]: Пространство имён Rsdn.Framework.Data
От: IT Россия linq2db.com
Дата: 09.07.08 14:50
Оценка:
Здравствуйте, ili, Вы писали:

Примерно из той же серии: http://www.bltoolkit.net/Doc/DataAccess/ExecuteDictionary.htm

Если не указано '@', то значение берётся из поля уже смапленного объекта, если '@' присутсвует, то из исходной запсиси.
Зачем это надо. Первый случай может пригодиться, если словарь строится по полю, которое явно не отображается на исходную запись. Например, какое-нибудь составное поле в объекте. Второй случай может понадобиться, когда нужно построить словарь по полю, которое есть в исходном рекордсете, но не отображается на объект. Если ключевое поле один в один отображается на объект, то разницы нет.
... << RSDN@Home 1.2.0 alpha rev. 771>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Пространство имён Rsdn.Framework.Data
От: ili Россия  
Дата: 09.07.08 15:33
Оценка:
Здравствуйте, IT, Вы писали:

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


IT>Примерно из той же серии: http://www.bltoolkit.net/Doc/DataAccess/ExecuteDictionary.htm


IT>Если не указано '@', то значение берётся из поля уже смапленного объекта, если '@' присутсвует, то из исходной запсиси.

IT>Зачем это надо. Первый случай может пригодиться, если словарь строится по полю, которое явно не отображается на исходную запись. Например, какое-нибудь составное поле в объекте. Второй случай может понадобиться, когда нужно построить словарь по полю, которое есть в исходном рекордсете, но не отображается на объект. Если ключевое поле один в один отображается на объект, то разницы нет.

а мы говорим именно о "собачке" или это зависит от DataProvider-а?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.