![]() |
| ||
|
|
Новости |
Поиск |
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 идет последовательно.
Reindeer Moss Eater (2007-11-12 13:03:00) [21]Нету никакого номера у записи. Нету.
webpauk (2007-11-12 13:03:00) [22]
> Сергей М. © (12.11.07 13:00) [12]
TDBISAMQuery
боюсь, что это скажет не много...
webpauk (2007-11-12 13:03:00) [23]ID=Table.RecNo
если ID не использовать, как в SQL запросе найти запись по её номеру?
Anatoly Podgoretsky (2007-11-12 13:01:00) [24]> webpauk (12.11.2007 12:42:04) [4]
А RecNo это правильная? И в чем тогда затруднения?
Anatoly Podgoretsky (2007-11-12 13:00:00) [25]
> щас скажет: "но ведь тогда ID не будут идти последовательно"
Дык он же сказал Правильнуюнумерацию
Сергей М. (2007-11-12 13:00:00) [26]
> webpauk © (12.11.07 12:56) [7]
СУБД какая ?
Anatoly Podgoretsky (2007-11-12 12:59:00) [27]Опять тоже, насчет базы будем гадать. Скоро придется все ветки закрывать из-за нежелания автора сотрудничать с органами.
webpauk (2007-11-12 12:59:00) [28]
> так же как и по ID = 1
SQL.ADD('SELECT * FROM MyTable WHERE (???=1)');
Reindeer Moss Eater (2007-11-12 12:59:00) [29]Нет никакого RecNo!
И найти по нему нельзя.
А следовательно нельзя заморачиваться такой дурью:
вообще то последовательность ID должна равняться RecNo
Reindeer Moss Eater (2007-11-12 12:57:00) [30]так же как и по ID = 1
webpauk (2007-11-12 12:56:00) [31]
> Используй само RecNo.
как в SQL.SELECT найти запись по RecNo=1 (например)
Reindeer Moss Eater (2007-11-12 12:49:00) [32]вообще то последовательность ID должна равняться RecNo
А зачем тогда вообще ID, если он всегда должен бюыть равен RecNO.
Используй само RecNo.
Reindeer Moss Eater (2007-11-12 12:46:00) [33]А нету никакого recno. Это оптический обман.
webpauk (2007-11-12 12:42:00) [34]вообще то последовательность ID должна равняться RecNo
stone (2007-11-12 12:40:00) [35]
> 'SELECT ID+'+IntToStr(fI2)+', '+IntToStr(fI3)+', Name FROM
> MyTable'
Дык при таком раскладе там последовательность просто жесть :)
Reindeer Moss Eater (2007-11-12 12:37:00) [36]щас скажет: "но ведь тогда ID не будут идти последовательно"
stone (2007-11-12 12:29:00) [37]
> COUNT(*) AS RecCount
MAX(ID) as MaxID