Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Копирование предыдкущей записи при вставке новой  [new]
just4fun
Member

Откуда: Хабаровск
Сообщений: 93
Можно ли средствами сервера копировать предыдущую запись при вставке новой, в качестве значений по умолчанию?
29 янв 03, 09:01    [116774]     Ответить | Цитировать Сообщить модератору
 Re: Копирование предыдкущей записи при вставке новой  [new]
Fiend
Member

Откуда:
Сообщений: 25
в принципе можно извратиться, тока неясно чесно говоря зачем такой изврат

к тому, на мой взгляд, любое решение данного вопроса приведет к проявлению тормозов при массовых инсертах данных. Если это не критично, или массовых добавлений не будет, то флаг в руки
29 янв 03, 09:32    [116802]     Ответить | Цитировать Сообщить модератору
 Re: Копирование предыдкущей записи при вставке новой  [new]
just4fun
Member

Откуда: Хабаровск
Сообщений: 93
Да видимо на стороне сервера это тупиковое решение... похоже нужно перенести этот вопрос на DataSet клиента.
29 янв 03, 09:43    [116816]     Ответить | Цитировать Сообщить модератору
 Re: Копирование предыдкущей записи при вставке новой  [new]
_Александр_
Member

Откуда:
Сообщений: 120
Такой вопрос сегодня уже задавали. См. ниже (Alecs). Интересно,
с чего это вы вдруг одновременно решили такими странными вещами заниматься? Но лучшее решение - это на стороне клиента, причем хранить
эти значения можно в каком-нибудь временном файле на рабочей станции.
А то что будет, если несколько пользователей одновременно работают?
Какие значение вы им предложите - собственные или другого пользователя?
29 янв 03, 09:51    [116824]     Ответить | Цитировать Сообщить модератору
 Re: Копирование предыдкущей записи при вставке новой  [new]
just4fun
Member

Откуда: Хабаровск
Сообщений: 93
Ошибся форумом... не судите строго. А может у кого есть готовая процедурка для копирования предыдущей строки при вставке новой для TDataset в Дельфи?
29 янв 03, 10:17    [116840]     Ответить | Цитировать Сообщить модератору
 Re: Копирование предыдкущей записи при вставке новой  [new]
SergDanceHits
Member

Откуда: Russia, Vladivostok
Сообщений: 157
я так делаю.
пример. (упрощенная форма)
есть таблица заказов (zakaz)
нужно:
1. создавать новый заказ,
2. редактировать существующий
3. копировать заказ (думаю тебе это как раз и нужно)

в клиентском приложении есть 2 формы:
- список заказов,
- форма для создания и редактирования заказа(универсальная)

1. при создании нового заказа во второй форме для DataSet-а выбираю "пустой" select и устанавливаю флаг "новый заказ" = true
@ID = -1 

select * from zakaz where ID = @ID

2. при редактировании существующего заказа устанавливаю ID существующего заказа (например 12658), флаг "новый заказ" = false
@ID = 12658

select * from zakaz where ID = @ID

3. "Клон" заказа. устанавливаю ID заказа "клона" (пусть будет тот же 12658), флаг "новый заказ" = true
@ID = 12658

select * from zakaz where ID = @ID


затем после редактирования записи сохраняю ее, не напрямую, а через Stored Procedure (ХП) !, в нее передаю флаг и значения полей. В зависимости от флага "новый заказ" в ХП ней делаю либо Insert, либо Update...
вот и все

PS у DataSet-а во второй форме стоит BatchOptimistic !!! это чтоб сама Дельфя не апдейтила :)
29 янв 03, 11:13    [116919]     Ответить | Цитировать Сообщить модератору
 Re: Копирование предыдкущей записи при вставке новой  [new]
just4fun
Member

Откуда: Хабаровск
Сообщений: 93
SergDanceHits:
То что нужно!!!
Несмотря на то, что пока заставляю пользователей редактировать всё по большей части в гриде, но переход к стандартному окну редактирования считаю первостепенной задачей, хотя......
30 янв 03, 03:52    [117760]     Ответить | Цитировать Сообщить модератору
 Re: Копирование предыдкущей записи при вставке новой  [new]
SergDanceHits
Member

Откуда: Russia, Vladivostok
Сообщений: 157
не, в гриде редактировать юзеру давать нельзя. проблематично ошибки всякие отслеживать, зависимости с другими таблицами. можно конечно все на тригер повесить - но это тоже не очень, чем "толще" тригер, тем тяжелей работать с таблицей (медленный insert/update/delete). А так нарисовал ХП, и все в ней там проверяешь, обрубаешь ненужное и т.п. Да и security тоже. лучше права дать на процедуру, чем непосредственно на таблицу
30 янв 03, 08:18    [117798]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить