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

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

Что за Ошибка [D6, D7, MDB]


Sherbacov ©   (2003-04-09 17:54:00) 

-!Внимание Ошибка!- 09.04.03 17:47:13 Row cannot be located for updating. Some values may have been changed since it was last read

Код:

while not db1.temp.Eof(ADO TABLE) do
begin
DB1.sheta.First;
while not DB1.sheta.Eof(ADO TABLE) do
begin
if DB1.tempchet.Value = db1.shetaChet.Value then
begin
DB1.temp.Edit;
DB1.tempEnable.Value := 1;
DB1.temp.Post;-Ошибка происходит тут действий Onpost нет и других.
end;
DB1.sheta.Next;
end;
DB1.temp.Next;
end;


Структура DB1.temp
Id - счетчик (ключ)
Klientno -числовой
Fio -текстовой (255)
Chet - текстовой (20)
Summ - денежный
Enable - числовой

Структура DB1.sheta.Next
Аналогично


Sherbacov   (2003-04-10 23:24:00) [1]

>sniknik Я и не думал оскорблять, просто уже надоели с SQL. Везде к где можно и нельзя добавляют. Я за золотую серединку.
Про sleep я подумаю.


sniknik   (2003-04-10 17:03:00) [2]

Sherbacov © (10.04.03 15:56)
во первых я нигде не утверждал, что я "крутой" программер (я профи раз за это деньги платят, разница!)

во вторых нет нигде правила что нельзя еше один компонент использовать (ADOCommand) если уже положил туда другой (ADOTable).

в третьих "локально" для ADO это заблуждение (в большинстве случаев) т.к. движок того же jet-а к примеру работает как своеобразный клиент-сервер, а таблица то же самое что SELECT * FROM TableName. (но вообще конечно от провайдера зависит, VFP драйвер к примеру открывает и "держит" таблицу (удалить после селекта не удастся))

в четвертых, да раз хочется используй! запретов тоже нет

bol: boolean;

while not db1.temp.Eof(ADO TABLE) do begin
DB1.sheta.First;
bol:= true;
while (not DB1.sheta.Eof(ADO TABLE)) and (bol) do begin
if DB1.tempchet.Value = db1.shetaChet.Value then begin
DB1.temp.Edit;
DB1.tempEnable.Value := 1;
DB1.temp.Post;
bol:= false;
end;
DB1.sheta.Next;
end;
DB1.temp.Next;
end;

заодно и побыстрее будет. (или у тебя и так скорость на максимуме? про sleep подумай)


Johnmen   (2003-04-10 16:28:00) [3]

>Sherbacov © (10.04.03 15:56)

Не надо оскорблений. Тем более, что sniknik © сказал тебе дело, притом без наездов. А ты в ответ - слегка пурги...:)


Sherbacov   (2003-04-10 15:56:00) [4]

sniknik с запросоми быстрее навигация по НД, но локально Table быстрее, тут даже спорить не надо. Каждый компонент для своего назанчения, а пихать запросы везде и говорить что ты крутой программер и хорошо знаешь SQL, я думаю это не логично.


sniknik   (2003-04-09 22:29:00) [5]

да брось ты. быстрее, - видно насколько, цикл в цикле специально чтобы не мелькало? чтобы хоть чуть задержку сделать? так ты там sleep поставь для солидности. ;о)) придать весу "вычислениям".

(поставь у ADOCommand-а с этим запросом асинхронное выполнение и запрос для программы продлится долю секунды на любыхразмерах таблиц)


Sherbacov   (2003-04-09 18:45:00) [6]

В моей ситуации ADOTABLE будет быстрее


sniknik   (2003-04-09 18:36:00) [7]

и это все вместо простого запроса!!??
UPDATE temp, sheta SET temp.Enable=1 WHERE temp.Chet=sheta.Chet
и чего люди SQL не любят?


Sherbacov   (2003-04-09 18:12:00) [8]

db1.temp.CanModify = true


Zz_   (2003-04-09 18:01:00) [9]

Properties["Update Criteria"] чему равны


Johnmen   (2003-04-09 18:01:00) [10]

Степень релевантности - 3-4 раза в неделю...:)


Наверх

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