Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с копированием строк [D7, Paradox]


Страницы:   1 2 3 4

Karnegi ©   (2003-09-03 13:39:00) 

У меня на форме имеются Table1 и Table2 (соответсвенно и две таблицы Paradox), подскажите как мне сделать так чтобы при нажатии кнопки выбранная строка копировалась из table1 в Table2(поля у этих таблиц одинаковые).


Karnegi   (2003-09-03 15:38:00) [61]

Ето то понятно мне бы разобраться как вот этот код присвоить кнопке?? Подсажи если знаешь

procedure TTableRecordCopy(Source, Destination: TTable);
var
i, lCount: Integer;
begin
lCount := Source.FieldCount;
for i := 0 to lCount - 1 do
if (not Source.Fields[i].IsNull) and (Source.Fields[i].CanModify) then
Destination.FieldByName(Source.Fields[i].FieldName).Assign(Source.Fiel ds[i]);
end;


stone   (2003-09-03 15:36:00) [62]

Autoincrement означает что значение поле устанавливается autoматически, т.е. ему нельзя присвоить произвольное значение


Karnegi   (2003-09-03 15:34:00) [63]

Anatoly Podgoretsky всмысле Auto? Можно поподробннее а то ето моя первая БД


Anatoly Podgoretsky   (2003-09-03 15:30:00) [64]

Karnegi (03.09.03 14:14) [8]
Тебя слово Auto не удивляет?


Karnegi   (2003-09-03 15:25:00) [65]

Нашел код по копированию строк из одной таблицы в другую

procedure TTableRecordCopy(Source, Destination: TTable);
var
i, lCount: Integer;
begin
lCount := Source.FieldCount;
for i := 0 to lCount - 1 do
if (not Source.Fields[i].IsNull) and (Source.Fields[i].CanModify) then
Destination.FieldByName(Source.Fields[i].FieldName).Assign(Source.Fiel ds[i]);
end;

Только как сделать чтобы он копировал при нажатии кнопки?


Karnegi   (2003-09-03 14:24:00) [66]

Если копирует только индексные поля, это значит что мне надо все поля индексировать?


Smashich   (2003-09-03 14:19:00) [67]

Karnegi (03.09.03 14:14) [8]
автоикримент удалячть не надо, вставлять в него значения тоже. если конечно тебе не принципиально значение ключа(боюсь спросить а слово ключ знакомо?). если не принципиально то - просто не редактируй. елси принципиально - смени автоинримент на integer


Karnegi   (2003-09-03 14:18:00) [68]

Msguns и почему то он копирует только индексирование поля, а остальные поля получаются пустыми


Karnegi   (2003-09-03 14:14:00) [69]

MsGuns спасибо, копирует но только выдает ошибку "Field "Nomer" cannot be modified", описание поле "Nomer" у меня стоит "+"(Autoincrement), может из таблицы вообще удалить это поле?


Smashich   (2003-09-03 14:10:00) [70]

если тебе нужно заменить значения то соотвественно редактируешь запись в которой меняешь значения. детский сад какой то..


Smashich   (2003-09-03 14:08:00) [71]

2 Karnegi (03.09.03 14:00) [4]
ты даешь. а что такое копировать? взять(SELECT) из одного места и вставить(INSERT) в другое. или тебе нечто другое нужно?


MsGuns   (2003-09-03 14:07:00) [72]

>MsGuns © (03.09.03 13:59) [3]

только вместо Insert надо поставить Edit. Поля текущей записи первой таблы (выделенная в 1 гриде) скопируются в поля текущей записи второй таблы (выделенной во 2 гриде)


Karnegi   (2003-09-03 14:00:00) [73]

Так insert это же втавить запись в таблицу, а мне нужно уже заполненую данными строку (Ф.И.О дата рожд. телефон и т.д.) копировать в другую таблицу с точно такими же полями.


MsGuns   (2003-09-03 13:59:00) [74]

>Karnegi (03.09.03 13:53) [1]
>Извеняюсь за неточность, наверно копировать не из Table1 в Table2 а из Dbgrid1 в Dbgrid2

Извиняться не за что - в первый раз получилось точнее.

with Table2 do
begin
insert
for i :=0 to Fields.count-1 do
Fields[i].Value := Table1.Fields[i].Value;
try
post;
except
Showmessage("Не лизе, батько !");
cancel;
exit;
end;
end
table2.Refresh;

Но это при одинаковых структурах


stone   (2003-09-03 13:56:00) [75]


> Karnegi (03.09.03 13:53) [1]


Как раз в сабже было правильно. Только в чем проблема? Метод Insert неизвестен?


Karnegi   (2003-09-03 13:53:00) [76]

Извеняюсь за неточность, наверно копировать не из Table1 в Table2 а из Dbgrid1 в Dbgrid2


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо