![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
дабавить поле в dataset на клиенте [D7, MSSQL]
Bless © (2006-05-12 15:30:00)Надо сделать сабж.
Т.е. добавить в ADORecordset-е поле, не имеющее физического представления в базе данных, но при этом доступное для редактирования.
Подошло бы что-то в духе
select field1, field2, cast(1 AS int) AS myField from t1
но myfield в этом случае - нередактируемое.
Единственный вариант, пришедший пока в голову, попахивает извращением:
create table #t (myField int)
insert into #t (myField) values(null)
select * from t1 cross join #t
drop table #t
Может есть что получше.
ClientDataSet не предлагать.
novill (2006-05-16 10:57:00) [1]Залезьте в исходники, и исправьте там установку readonly на подобное поле.
В похожей ситауции, только это спасло ситуацию.
Bless (2006-05-15 09:29:00) [2]
> Zz_ (12.05.06 17:40) [3]
Дык, вызов UpdateBatch, все равно вызовет ту же ошибку.
Хотя, если редактировать нужно только это добавленное поле, то это тоже вариант. Запомню, спасибо.
> Fay © (13.05.06 12:28) [4]
Это, конечно, выход. Тем более, что мы как раз с 7-ой на 2000-ую успели перейти. :)
Спасибо.
Fay (2006-05-13 12:28:00) [3]Так можно хоть TADOTable юзать
if object_id('v_QWE') is not null
drop view v_QWE
go
if object_id('QWE') is not null
drop table QWE
go
create table QWE (
ID int not null primary key,
VAL varchar(20) null
)
go
create view v_QWE
with view_metadata
as
select
ID,
VAL,
ASD = cast(null as varchar(30))
from dbo.QWE
go
create trigger tr_v_QWE_bi
on v_QWE
instead of insert
as
insert into QWE (ID, VAL) select ID, VAL from INSERTED
go
create trigger tr_v_QWE_bu
on v_QWE
instead of update
as
update Q set
Q.VAL = I.VAL
from QWE Q join INSERTED I on I.ID = Q.ID
go
Zz_ (2006-05-12 17:40:00) [4]LockType = adLockBatchOptimistic
Bless (2006-05-12 17:09:00) [5]
> Zz_ (12.05.06 16:54) [1]
При попытке редактирования
'Invalid object name 'test_db..Q''. Process stopped. Use Step or Run to continue.
Zz_ (2006-05-12 16:54:00) [6]>>select field1, field2, cast(1 AS int) AS myField from t1
select * from (
select distinct field1, field2, cast(1 AS int) AS myField from t1
)Q