Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];

Вниз

Копирование записи в IBTable   Найти похожие ветки 

 
merko$ ©   (2007-03-22 06:17) [0]

Уважаемые Мастера, подскажите пожалуйста как скопировать запись из IBTable1 в ту же IBTable1 с новым ID?

ID у меня формируется:
procedure TDM.tORGNewRecord(DataSet: TDataSet);
begin
IBStoredProc11.ExecProc;
DataSet["ID_ORG"]:=IBStoredProc11.ParamByName("UORG").AsInteger;
end;
end.

Заранее благодарю.


 
merko$ ©   (2007-03-22 06:34) [1]

Либо как-то переместить запись из DBGrid1 в DBGrid2


 
Mike Kouzmine ©   (2007-03-22 07:05) [2]

Копируют записи не в компонентах, а в таблицах базы данных. А комп. только отображают и дают механизмы работы с данными.


 
merko$ ©   (2007-03-22 07:10) [3]

Я это прекрасно понимаю, а фраза - переместить запись из DBGrid1 в DBGrid2 использована мной для представления ситуации


 
Sergey13 ©   (2007-03-22 08:30) [4]

> [0] merko$ ©   (22.03.07 06:17)
> Уважаемые Мастера, подскажите пожалуйста как скопировать
> запись из IBTable1 в ту же IBTable1 с новым ID?

А как ты вставляешь новые записи? Так же и копировать, только значения, которые вводишь сначала надо "посмотреть" в копируемой записи.

ЗЫ: Но методы твоей работы с СКЛ сервером очень далеки от "идеала".


 
merko$ ©   (2007-03-22 09:12) [5]

> Sergey13
Если можно приведите пример кода копирования записи


 
Jan   (2007-03-22 09:36) [6]


> Если можно приведите пример кода копирования записи
>

Как добавить запись знаем? А копирование, подразумевает, что поля заполняются из текущей записи таблицы, которая источник.


 
ustas   (2007-03-22 09:49) [7]

Я делал это следующим образом. Создавал дополнительно запрос по таблице куда выбирал все поля таблицы по ID на котором установлен курсор в таблице, а затем таблицу переводил в состояни Append и пробегался по всем полям запроса и переносил их значения в таблицу (если есть счетчик, ID который определяется тригером из генератора, то нужно это поле пропустить соответсвенно). Пример (краткая вырезка из проекта):
...
var i,e,kodrec,kodnewrec: Integer;
begin
 kodrec := QMain.FieldByName("id").AsInteger;
 if kodrec = 0 then Exit;
 QForCopy.Close;
 QForCopy.ParamByName("id_param").Value := QMain.FieldByName("id").AsInteger;
 QForCopy.Open;
 if not Table.Active then Table.Active := True;
 Table.Append;
 for i := 0 to QForCopy.FieldCount - 1 do begin
   if i > 0 then begin Table.Fields[i].Value := QForCopy.Fields[i].Value;
 end;
 Table.Post;
 Table.Active := True;
 Table.Last;
 kodnewrec := Table.FieldByName("id").AsInteger;
 ...
end;


 
ANB ©   (2007-03-22 11:07) [8]


> ustas   (22.03.07 09:49) [7]

Извращенец :)

insert into Table1 (ID, F1, F2 . . . /*все поля*/)
select GenerID /*тута сгенерить новый ID*/, F1, F2 . . .

Все это запихать в кверю и выполнить Exec (точно метод не помню)


 
merko ©   (2007-03-23 08:53) [9]

спасибо всем проблему решил


 
ustas   (2007-03-23 15:15) [10]

> ANB ©   (22.03.07 11:07)
Извращенец :)

:) Категорически не согласен. Просто что первое под руку попалось то и запостил. Естественно что квери создавать и туда параметры передавать по именам полей или вообще sql по ходу генерить.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.039 c
6-1164041827
NiGGa
2006-11-20 19:57
2007.06.10
PPPoE соединение


15-1176818174
pasha_golub
2007-04-17 17:56
2007.06.10
Посоветуйте спелл чекер


15-1179142527
Knight
2007-05-14 15:35
2007.06.10
Прога контроля прокси...


11-1161665410
Моторокер
2006-10-24 08:50
2007.06.10
Как в runtime скрыть/показать скроллбар в TKOLMemo?


5-1155654550
DevilDevil
2006-08-15 19:09
2007.06.10
ДизайнТайм VS Рантайм





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский