Check Constraint & Default Value в MSSQL 2000

Muma
Дата: 23.04.2007 17:41:53
Добрый день!

Имеем ASP и MSSQL 2000 в таблицах которого есть ограничения у некоторый полей
Check Constraint & Default Value.

Если завожу новую строку в Enterprise Manager то Default Value выставляется по умолчанию и Check Constraint срабатывает (MSSQL 'ругается').

Если же создаю новую запись из ASP то ничего подобного не происходит - Default Value не устанавливается и MSSQL не 'ругается' .

Можно конечно проверять пользовательский ввод на клиенте но хотелось бы управлять всеми ограничениями централизовано - на сервере БД.

ВОПРОС: Может быть все это дело как то включается в ASP ?
GWhite
Дата: 23.04.2007 18:09:55
Структура таблицы, asp.net код создания новой записи?
Muma
Дата: 23.04.2007 19:41:08
DB-code

CREATE TABLE [t_ChairmanLetter] (
	[ChairmanLetter_ID] [int] IDENTITY (1, 1) NOT NULL ,
	[ChairmanLetter_PrePayment_Sum] [decimal](18, 2) NULL ,
	[Currency_code_PrePayment] [int] NULL CONSTRAINT [DF_t_ChairmanLetter_Currency_code_PrePayment] DEFAULT (840),
	CONSTRAINT [PK_t_ChairmanLetter] PRIMARY KEY  CLUSTERED 
	(
		[ChairmanLetter_ID]
	)  ON [PRIMARY] ,
	CONSTRAINT [CK_t_ChairmanLetter] CHECK ([Currency_code_PrePayment] <> 810)
) ON [PRIMARY]
GO


ASP-code

	SQL = "SELECT * FROM t_ChairmanLetter WHERE (0 = 1) "
	Set rs = Server.CreateObject("ADODB.Recordset")
	rs.CursorLocation = 3
	rs.Open SQL, conn, 1, 2
	rs.AddNew

	rs("ChairmanLetter_PrePayment_Sum") = input_ChairmanLetter_PrePayment_Sum
	rs("Currency_code_PrePayment") = input_Currency_code_PrePayment
	rs.Update

	rs.Close
	Set rs = Nothing
GWhite
Дата: 23.04.2007 20:23:46
Форум не совсем по asp, но первое что попалось на глаза - rs.Update, вставка по-моему Insert, по-моему у вас просто изменяется текущая запись...