Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.10;
Скачать: CL | DM;

Вниз

Копирование записи в 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;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.047 c
15-1179175926
raqy.style
2007-05-15 00:52
2007.06.10
Протокол с нулевой передачей информации


5-1155736499
nali
2006-08-16 17:54
2007.06.10
Как сделать редактор свойств типа DBGrid.Columns?


2-1179841963
Vazhik
2007-05-22 17:52
2007.06.10
Вывод данных из файла


3-1174289525
Mmmaloy
2007-03-19 10:32
2007.06.10
Вычисляемое поле типа Memo


2-1179831748
Lera
2007-05-22 15:02
2007.06.10
Печать bmp переменной





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