Главная страница
    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.053 c
15-1178992711
Ёжик
2007-05-12 21:58
2007.06.10
Вышел - таки KDE4


2-1179850038
>>DEATH<<
2007-05-22 20:07
2007.06.10
TWebBrowser referer


15-1179005630
lookin
2007-05-13 01:33
2007.06.10
Терминологический вопрос про массив...


1-1176453885
Reaktor
2007-04-13 12:44
2007.06.10
Есть ли альтернатива у Sleep и Exit?


15-1177462495
Потребитель
2007-04-25 04:54
2007.06.10
В США появится медаль "За победу в холодной войне"





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский