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

Вниз

Копирование записей   Найти похожие ветки 

 
webpauk ©   (2007-11-12 12:26) [0]

Копирую несколько записей.
Таблица из 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 идет последовательно.


 
stone ©   (2007-11-12 12:29) [1]


> COUNT(*) AS RecCount

MAX(ID) as MaxID


 
Reindeer Moss Eater ©   (2007-11-12 12:37) [2]

щас скажет: "но ведь тогда ID не будут идти последовательно"


 
stone ©   (2007-11-12 12:40) [3]


> "SELECT ID+"+IntToStr(fI2)+", "+IntToStr(fI3)+", Name FROM
> MyTable"

Дык при таком раскладе там последовательность просто жесть :)


 
webpauk ©   (2007-11-12 12:42) [4]

вообще то последовательность ID должна равняться RecNo


 
Reindeer Moss Eater ©   (2007-11-12 12:46) [5]

А нету никакого recno. Это оптический обман.


 
Reindeer Moss Eater ©   (2007-11-12 12:49) [6]

вообще то последовательность ID должна равняться RecNo

А зачем тогда вообще ID, если он всегда должен бюыть равен RecNO.
Используй само RecNo.


 
webpauk ©   (2007-11-12 12:56) [7]


> Используй само RecNo.

как в SQL.SELECT найти запись по RecNo=1 (например)


 
Reindeer Moss Eater ©   (2007-11-12 12:57) [8]

так же как и по ID = 1


 
webpauk ©   (2007-11-12 12:59) [9]


> так же как и по ID = 1


SQL.ADD("SELECT * FROM MyTable WHERE (???=1)");


 
Anatoly Podgoretsky ©   (2007-11-12 12:59) [10]

Опять тоже, насчет базы будем гадать. Скоро придется все ветки закрывать из-за нежелания автора сотрудничать с органами.


 
Reindeer Moss Eater ©   (2007-11-12 12:59) [11]

Нет никакого RecNo!
И найти по нему нельзя.
А следовательно нельзя заморачиваться такой дурью:
вообще то последовательность ID должна равняться RecNo


 
Сергей М. ©   (2007-11-12 13:00) [12]


> webpauk ©   (12.11.07 12:56) [7]


СУБД какая ?


 
Anatoly Podgoretsky ©   (2007-11-12 13:00) [13]


> щас скажет: "но ведь тогда ID не будут идти последовательно"

Дык он же сказал Правильную нумерацию


 
Anatoly Podgoretsky ©   (2007-11-12 13:01) [14]

> webpauk  (12.11.2007 12:42:04)  [4]

А RecNo это правильная? И в чем тогда затруднения?


 
webpauk ©   (2007-11-12 13:03) [15]

ID=Table.RecNo
если ID не использовать, как в SQL запросе найти запись по её номеру?


 
webpauk ©   (2007-11-12 13:03) [16]


> Сергей М. ©   (12.11.07 13:00) [12]

TDBISAMQuery
боюсь, что это скажет не много...


 
Reindeer Moss Eater ©   (2007-11-12 13:03) [17]

Нету никакого номера у записи. Нету.


 
webpauk ©   (2007-11-12 13:05) [18]


> 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;


 
webpauk ©   (2007-11-12 13:08) [19]

упс...
TdataSet.RecNo - Indicates the active record in the dataset.


 
sniknik ©   (2007-11-12 13:09) [20]

> Скоро придется все ветки закрывать из-за нежелания автора сотрудничать с органами.
договорились! давно хотел, т.к. изза не заполнения всего пары полей после столько флуда возникает...
лучше, бы их сделать обязательными... но...

скоро - например с завтрашнего дня, пойдет?


 
Reindeer Moss Eater ©   (2007-11-12 13:09) [21]

Это уже упорядоченный набор данных на клиенте.  Над ним уже нельзя выполнить SQL запрос.
А на сервере нет никакого рекно.


 
webpauk ©   (2007-11-12 13:12) [22]

если ID не использовать, как в SQL запросе найти запись по её номеру?
SQL.ADD("SELECT * FROM MyTable WHERE (???=1)");


 
Reindeer Moss Eater ©   (2007-11-12 13:14) [23]

SQL.ADD("SELECT * FROM MyTable WHERE (RecNo=1)");


 
webpauk ©   (2007-11-12 13:21) [24]

наверно, нечетко сформулировал: надо добавить в базу N записей, причем
для каждого поля ID значение равно RecordCount+1


 
webpauk ©   (2007-11-12 13:22) [25]

одним INSERT-ом


 
Reindeer Moss Eater ©   (2007-11-12 13:22) [26]

goto [1]


 
Anatoly Podgoretsky ©   (2007-11-12 13:24) [27]

> webpauk  (12.11.2007 13:21:24)  [24]

Проблема с сохранением во временную переменную и ее инкриментирование?


 
webpauk ©   (2007-11-12 13:24) [28]

SQL.Clear;
SQL.Add("INSERT INTO MyTable SELECT ???, IDFilter, Name FROM MyTable WHERE (IDFilter=1)");
ExecSQL;


 
webpauk ©   (2007-11-12 13:25) [29]


> Anatoly Podgoretsky ©   (12.11.07 13:24) [27]


инкриментирование


 
Reindeer Moss Eater ©   (2007-11-12 13:26) [30]

Триггер таблицы на инсерт


 
Сергей М. ©   (2007-11-12 13:30) [31]


> TDBISAMQuery


Зашибись СУБД)

А TSuperPuperQuery - это тоже СУБД, надо понимать ?


 
Anatoly Podgoretsky ©   (2007-11-12 13:36) [32]

> webpauk  (12.11.2007 13:25:29)  [29]

N := N + 1;


 
webpauk ©   (2007-11-12 13:36) [33]


> Reindeer Moss Eater ©   (12.11.07 13:26) [30]
> Триггер таблицы на инсерт

примерчик???


 
Reindeer Moss Eater ©   (2007-11-12 13:38) [34]

в документации по серверу


 
webpauk ©   (2007-11-12 14:03) [35]

во...
ID: тип поля ftAutoInc
как правильно добавить запись (поля ID, IdFilter, Name)
SQL.Add("INSERT INTO MyTable VALUES (...)") если IDFilter=1, Name="Hello"


 
Reindeer Moss Eater ©   (2007-11-12 14:07) [36]

SQL.Add("INSERT INTO MyTable(IDFilter,Name) VALUES (1,"Hello")")


 
webpauk ©   (2007-11-12 14:11) [37]


> Reindeer Moss Eater ©   (12.11.07 14:07) [36]

фффух...
тип поля ftautoinc - и не надо ломать голову!!!



Страницы: 1 вся ветка

Текущий архив: 2007.12.09;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.03 c
11-1180619713
=BuckLr=
2007-05-31 17:55
2007.12.09
Тип string в .Selection


2-1195140032
vegarulez
2007-11-15 18:20
2007.12.09
Вопрос про часики (clock)


15-1194549102
Cyrax
2007-11-08 22:11
2007.12.09
Ищу хакеров...


1-1190366442
nali
2007-09-21 13:20
2007.12.09
Ошибка при динамическом создании компонента.


15-1194534907
Alral
2007-11-08 18:15
2007.12.09
MSXML 4.0 SP2 Setup