Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [SQL&C#] Реализация шаблона Active Record, Методы INSERT, DELETE, UPDATE, Find 
:(
    Опции темы
sherbet
Дата 23.5.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.4.2007

Репутация: нет
Всего: нет



Есть такое задание. В SQL Server 2005 создана база данных.
Код

CREATE TABLE Users   
(   
     [UserID] INT IDENTITY(1,1) PRIMARY KEY,   
     [Name] VARCHAR(25) UNIQUE,   
     [Time] DATETIME   
)   
GO   
  
CREATE TABLE Messages   
(   
    [MessageID] INT IDENTITY(1,1) PRIMARY KEY,   
    [UserID] INT REFERENCES Users([UserID]) ON DELETE CASCADE,    
    [Message] VARCHAR(1000) NOT NULL   
)   
GO   
  
CREATE VIEW [dbo].[View_Log]   
AS   
SELECT     dbo.Users.Name, dbo.Messages.Message   
FROM         dbo.Message INNER JOIN   
                      dbo.Users ON dbo.Messages.UserID = dbo.Users.UserID   
GO   
  
CREATE PROC [dbo].[AddUser]   
    @UserName varchar(25),     
    @Time datetime   
AS   
    IF (SELECT COUNT(*) FROM Users WHERE Name=@UserName)=0  
        INSERT INTO Users   
        VALUES   
            (@UserName, @Time)   
        SELECT @@identity   
GO   
  
CREATE PROC [dbo].[AddMessage]   
    @UserName varchar(25),   
    @Message varchar(1000)   
AS   
    DECLARE @UserID int   
    SELECT @UserID = UserID FROM Users WHERE Name=@UserName   
    INSERT INTO Messages   
        VALUES   
            (@UserID,@Message)   
GO  

Надеюсь, что там все верно. Возможно нужно еще какие-то процедуры..
Необходимо написать консольное приложение на C#, в котором согласно принципам шаблона Active Record было бы реализовано два класса: User и Message. Это будет выглядеть примерно так:
Код

class Message   
   {  
       private int ID;  
       private User user;  
       private string message;  
         
       private Message()  
       {  
           //основной конструктор, который в первую   
           //очередь определяет ID  
       }  
  
       public void INSERT()   
       {  
       }  
  
       public void UPDATE()   
       {  
       }  
  
       public void DELETE()   
       {  
       }  
  
       static void Find(int ID)   
       {  
       }  
   }  

и 
Код

class User   
   {  
       private int ID;  
       private string name;  
       private string time;  
 
       private User()  
       {  
           //основной конструктор, который в первую   
           //очередь определяет ID  
       }  
  
       public void INSERT()   
       {  
       }  
  
       public void UPDATE()   
       {  
       }  
  
       public void DELETE()   
       {  
       }  
  
       static void Find(int ID)   
       {  
       }  
  
       static void Find(string Name)   
       {  
       }  
   }  

Подскажите пожалуйста, как реализовывать эти методы.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0619 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.