Объясните популярно, как сделать вот такую вещь:
Есть таблица DeliveryTypes, и SP qDeliveryTypes, insDeliveryTypes, updDeliveryTypes и delDeliveryTypes для получения, вставки обновления и удаления данных из таблицы соответственно.
Нужно программно создать DataGrid, в котором будет редактироваться информация из DeliveryTypes. Доступ к данным должен осуществляться через хранимые процедуры и DbManager из Rsdn.Framework.Data
Заранее благодарен.
SQL:
CREATE TABLE dbo.DeliveryTypes (
[id] [tinyint] IDENTITY (1, 1),
[Delivery] [varchar] (50),
CONSTRAINT [PK_DeliveryTypes] PRIMARY KEY CLUSTERED
(
[id]
)
) ON [PRIMARY]
GO
CREATE PROCEDURE dbo.qDeliveryTypes
AS
SELECT id, Delivery
FROM dbo.DeliveryTypes
ORDER BY Delivery
GO
CREATE PROCEDURE dbo.insDeliveryTypes(
@id tinyint,
@Delivery smallint
)
AS
SET NOCOUNT ON
INSERT INTO dbo.DeliveryTypes(Delivery)
VALUES (@Delivery)
SET @id = SCOPE_IDENTITY()
SELECT id, Delivery
FROM dbo.DeliveryTypes
WHERE id = @id
GO
CREATE PROCEDURE dbo.updDeliveryTypes(
@id tinyint,
@Delivery varchar(50)
)
AS
SET NOCOUNT ON
UPDATE dbo.DeliveryTypes
SET Delivery = @Delivery
WHERE (id = @id) AND (Delivery <> @Delivery)
GO
CREATE PROCEDURE dbo.insDeliveryTypes(
@id tinyint,
@Delivery smallint
)
AS
SET NOCOUNT ON
INSERT INTO dbo.DeliveryTypes(Delivery)
VALUES (@Delivery)
SET @id = SCOPE_IDENTITY()
SELECT id, Delivery
FROM dbo.DeliveryTypes
WHERE id = @id
GO
CREATE PROCEDURE dbo.delDeliveryTypes(
@id tinyint
)
AS
SET NOCOUNT ON
DELETE FROM dbo.DeliveryTypes
WHERE id = @id
GO
Здравствуйте, shatl, Вы писали:
S>Нужно программно создать DataGrid, в котором будет редактироваться информация из DeliveryTypes. Доступ к данным должен осуществляться через хранимые процедуры и DbManager из Rsdn.Framework.Data
Какой грид? И что значит программно?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
S>>Нужно программно создать DataGrid, в котором будет редактироваться информация из DeliveryTypes. Доступ к данным должен осуществляться через хранимые процедуры и DbManager из Rsdn.Framework.Data
IT>Какой грид? И что значит программно?
Windows Forms DataGrid
Программно — в смысле ручками в коде, а не в дизайнере.
Больше всего интересует, как поступать с IDENTITY-полями при добавлении новой записи.
P.S. После Delphi как-то непривычно...
Здравствуйте, shatl, Вы писали:
S>Windows Forms DataGrid S>Программно — в смысле ручками в коде, а не в дизайнере.
Можно поинтересоваться зачем?
S>Больше всего интересует, как поступать с IDENTITY-полями при добавлении новой записи.
С identity полями обычно никак не поступают. Если необходимо получить значение поля после вставки, то это об этом нужно специально позаботиться.
S>P.S. После Delphi как-то непривычно...
В Дельфи под это дело скорее всего сам грид заточен.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, IT, Вы писали:
S>>Windows Forms DataGrid S>>Программно — в смысле ручками в коде, а не в дизайнере.
IT>Можно поинтересоваться зачем?
1. Для глубины понимания
2. В дизайнере не получится изпользовать DbManager из RFD. Да и если нужно настройки подключения к серверу хранить отдельно или другой объект SqlConnection использовать, а не тот, что генерится дизайнером, все равно придется код менять...
Если поставить вопрос шире, то какие "рекомендации лучших собаководов " как создать форму с DataGrid, связать ее с своим connection, например, из пула коннектов ...
S>>Больше всего интересует, как поступать с IDENTITY-полями при добавлении новой записи.
IT>С identity полями обычно никак не поступают. Если необходимо получить значение поля после вставки, то это об этом нужно специально позаботиться.
S>2. В дизайнере не получится изпользовать DbManager из RFD. Да и если нужно настройки подключения к серверу хранить отдельно или другой объект SqlConnection использовать, а не тот, что генерится дизайнером, все равно придется код менять...
Мне кажется что те кто используют RFD, вряд ли кидают различные коннекшины на форму. Я по крайней мере уже даже не помню как это делается Форма и коннект к БД это опять же ИМХО не совместимые понятия, разве что совсем уж в учебных целях, да и то это это плохому учить
A>Мне кажется что те кто используют RFD, вряд ли кидают различные коннекшины на форму. Я по крайней мере уже даже не помню как это делается Форма и коннект к БД это опять же ИМХО не совместимые понятия, разве что совсем уж в учебных целях, да и то это это плохому учить
Здравствуйте, shatl, Вы писали:
S>>>Больше всего интересует, как поступать с IDENTITY-полями при добавлении новой записи.
IT>>С identity полями обычно никак не поступают. Если необходимо получить значение поля после вставки, то это об этом нужно специально позаботиться.
S>Если можно, подробнее...
Ну можно вот так например через спрок.
Пример:
CREATE Procedure p_Item_Insert
@Name varchar(50),
@Quantity int
AS
insert into Item ([Name], [Quantity])
values (@Name, @Quantity)
select cast(scope_identity() as int) as [ItemID]
GO
А потом на выходе читайте значение ItemID из результата...