|
|
От: | Ex_Soft | |
| Дата: | 28.01.09 10:24 | ||
| Оценка: | |||
create procedure sp_Select_NULL
@IsSelectNull bit=0
as
begin
create table #tmpTable(
Id int null,
Name varchar(256) null)
insert into #tmpTable (Name) values ('Иванов Иван Иванович')
insert into #tmpTable (Name) values ('Петров Петр Петрович')
insert into #tmpTable (Name) values ('Сидоров Сидор Сидорович')
insert into #tmpTable (Name) values ('Александров Александр Александрович')
if @IsSelectNull=1
select Id, Name from #tmpTable
else
select Name from #tmpTable
drop table #tmpTable
end
gotmpDataTable=new DataTable();
tmpDataColumn=tmpDataTable.Columns.Add("Id",typeof(int));
tmpDataColumn.AllowDBNull=false;
tmpDataColumn.Unique=true;
tmpDataColumn.AutoIncrement=true;
tmpDataColumn.AutoIncrementSeed=1;
tmpDataColumn.AutoIncrementStep=1;
tmpDataTable.PrimaryKey=new DataColumn[]{tmpDataTable.Columns["Id"]};
da=new OleDbDataAdapter("{call sp_Select_NULL}",cn);
da.Fill(tmpDataTable); // 1
tmpDataTable.Clear();
da.SelectCommand.CommandText="{call sp_Select_NULL(?)}";
da.SelectCommand.Parameters.Add("IsSelectNull",OleDbType.Boolean).Value=true;
da.Fill(tmpDataTable); // 2Это так надо? Т.е. если что-нибудь (пусть даже NULL) возвращается в резалтсете, то весь механизм DataColumn.AutoIncrement'а преспокойно курит в сторонке? Или, все же, это както можно растолкать? Конечно, я понимаю, что, в случае, когда часть записей имеет Id, а часть — нЭт, получаем: "...здесь — играем, здесь — не играем, а здесь — рыбу заворачивали..." со всеми вытекающими. Но все же?Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.