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

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

Копирование записей [D6]


Страницы:   1 2

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


Страницы:   1 2

Наверх

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