![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование записей [D6]
webpauk © (2007-11-12 12:26:00)Копирую несколько записей.
Таблица из 3 полей:ID, IDFilter, Name.
Пытаюсь присвоить им правильную нумерацию, но столкнулся с проблемой, если определить количество записей и просто добавлять их к ID - не получается правыильная нумерация.
var
fI1, fI2, fI3: Integer
begin
fI1:=значение1; // IDFilterOld
fI3:=значение2; // IDFilterNew
SQL.Clear;
SQL.Add('SELECT COUNT(*) AS RecCount FROM MyTable');
Active:=True
fI2:=FieldByName('RecCount').AsInteger;
SQL.Clear;
SQL.Add('INSERT INTO MyTable');
SQL.Add('SELECT ID+'+IntToStr(fI2)+', '+IntToStr(fI3)+', Name FROM MyTable');
SQL.Add('WHERE (IDFilter=:IDFilter)');
Params[0].AsInteger:=fI1;
ExecSQL;
end;
код работает, пока ID идет последовательно.
webpauk (2007-11-12 14:11:00) [1]
> Reindeer Moss Eater © (12.11.07 14:07) [36]
фффух...
тип поля ftautoinc - и не надо ломать голову!!!
Reindeer Moss Eater (2007-11-12 14:07:00) [2]SQL.Add('INSERT INTO MyTable(IDFilter,Name) VALUES (1,'Hello')')
webpauk (2007-11-12 14:03:00) [3]во...
ID: тип поля ftAutoInc
как правильно добавить запись (поля ID, IdFilter, Name)
SQL.Add('INSERT INTO MyTable VALUES (...)')если IDFilter=1, Name='Hello'
Reindeer Moss Eater (2007-11-12 13:38:00) [4]в документации по серверу
webpauk (2007-11-12 13:36:00) [5]
> Reindeer Moss Eater © (12.11.07 13:26) [30]
> Триггер таблицы на инсерт
примерчик???
Anatoly Podgoretsky (2007-11-12 13:36:00) [6]> webpauk (12.11.2007 13:25:29) [29]
N := N + 1;
Сергей М. (2007-11-12 13:30:00) [7]
> TDBISAMQuery
Зашибись СУБД)
А TSuperPuperQuery - это тоже СУБД, надо понимать ?
Reindeer Moss Eater (2007-11-12 13:26:00) [8]Триггер таблицы на инсерт
webpauk (2007-11-12 13:25:00) [9]
> Anatoly Podgoretsky © (12.11.07 13:24) [27]
инкриментирование
webpauk (2007-11-12 13:24:00) [10]SQL.Clear;
SQL.Add('INSERT INTO MyTable SELECT ???, IDFilter, Name FROM MyTable WHERE (IDFilter=1)');
ExecSQL;
Anatoly Podgoretsky (2007-11-12 13:24:00) [11]> webpauk (12.11.2007 13:21:24) [24]
Проблема с сохранением во временную переменную и ее инкриментирование?
Reindeer Moss Eater (2007-11-12 13:22:00) [12]goto [1]
webpauk (2007-11-12 13:22:00) [13]одним INSERT-ом
webpauk (2007-11-12 13:21:00) [14]наверно, нечетко сформулировал: надо добавить в базу N записей, причем
для каждого поля ID значение равно RecordCount+1
Reindeer Moss Eater (2007-11-12 13:14:00) [15]SQL.ADD('SELECT * FROM MyTable WHERE (RecNo=1)');
webpauk (2007-11-12 13:12:00) [16]если ID не использовать, как в SQL запросе найти запись по её номеру?
SQL.ADD('SELECT * FROM MyTable WHERE (???=1)');
Reindeer Moss Eater (2007-11-12 13:09:00) [17]Это уже упорядоченный набор данных на клиенте. Над ним уже нельзя выполнить SQL запрос.
А на сервере нет никакого рекно.
sniknik (2007-11-12 13:09:00) [18]> Скоро придется все ветки закрывать из-за нежелания автора сотрудничать с органами.
договорились! давно хотел, т.к. изза не заполнения всего пары полей после столько флуда возникает...
лучше, бы их сделать обязательными... но...
скоро - например с завтрашнего дня, пойдет?
webpauk (2007-11-12 13:08:00) [19]упс...
TdataSet.RecNo - Indicates the activerecord in the dataset.
webpauk (2007-11-12 13:05:00) [20]
> Reindeer Moss Eater © (12.11.07 13:03) [17]
with Table1 do
begin
First;
while not Eof do
begin
Showmessage(inttostr(RecNo));
Next;
end;
end;