Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Delphi

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 14.03.2008, 18:38   #1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 31.01.2008
Сообщений: 37
Репутация: 4
По умолчанию ADODataSet.Locate

Подскажите пожалуйста, как избежать сброса параметров при применении ADODataSet.Locate, не постя значения (физически изменения в таблицу не должны вноситься).

Код:
procedure TForm2.Button1Click(Sender: TObject);
var i:integer;
begin
i:=5;
ADODataset1.Locate('Cod',i,[]);
DBGridEh1.Columns.Items[2].Field.NewValue:='True';
ADODataSet1.Next();
//ADODataset1.Locate('Cod',i+1,[]);
end;
При next() все нормально, значение True в пятой строке остается, а при Locate все обнуляется.
Может, существует какой-то другой способ встать на нужную строку?
Заранее спасибо.
Terio вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Магазин бытовой техники: schaub lorenz slg vi6610 - переходи на сайт ТАЙМТВ!paypal тик токesbe cra211круизы на теплоходе из санкт-петербурга на август 2026 годаМебельный магазин: полка книжная - Переходи на сайт!


Старый 14.03.2008, 22:32   #2
Wizard2007
Постоялец
 
Пол:Мужской
Регистрация: 19.10.2007
Сообщений: 272
Репутация: 4
По умолчанию Ответ: ADODataSet.Locate

Ты хочешь пройти по всем записям датасета ?
тогда это можно в цикле сделать и не надо некстов и локейтов.
Можешь сначала просто перерать все записи потом , сохраняя все значения в какой нибудь массив а потом просто в цикле их за один раз проставить.
Wizard2007 вне форума
 
Ответить с цитированием Вверх
Старый 14.03.2008, 23:56   #3
Terio
Неактивный пользователь
 
Пол:Мужской
Регистрация: 31.01.2008
Сообщений: 37
Репутация: 4
По умолчанию Ответ: ADODataSet.Locate

У меня возникла такая идея.
Хотел бы сохранить все значения таблицы (одной колонки) в массиве, а потом сравнивать какое-то значение с этим массивом, и если оно в нем есть, добавлять в свой, уже другой массив.
Но, к своему стыду, совершенно не умею работать с циклами, вообще не представляю как такое реализовать
Подскажите пример пожалуйста
Terio вне форума
 
Ответить с цитированием Вверх
Старый 15.03.2008, 04:09   #4
Wizard2007
Постоялец
 
Пол:Мужской
Регистрация: 19.10.2007
Сообщений: 272
Репутация: 4
По умолчанию Ответ: ADODataSet.Locate

попробуй
PHP код:
 begin
   Str
:=ADODataSetOrders.FieldByName('balan').Asstring;
   
ADODataSetOrders.next;
 
end
'balan' - имя возвращаемого поля
.Asstring - не понравиться строковый тип , тогда ставиш курсор после точки и Ctrl+ пробел и выбирай из списка что доступно )

таким вот не хитрым способом перебереш все что есть в датасете, в том порядке в котором оно там находиться и будет тебе счастье ).
Wizard2007 вне форума
 
Ответить с цитированием Вверх
Старый 04.04.2008, 08:52   #5
eloger
Новичок
 
Аватар для eloger
 
Пол:Мужской
Регистрация: 10.06.2007
Сообщений: 3
Репутация: 0
По умолчанию Re: ADODataSet.Locate

Вся проблема в том что ты не делаешь post перед передвижением

Добавь ADODataSet1.Post перед ADODataset1.Locate('Cod',i+1,[]);
eloger вне форума
 
Ответить с цитированием Вверх
Старый 04.04.2008, 13:38   #6
Wizard2007
Постоялец
 
Пол:Мужской
Регистрация: 19.10.2007
Сообщений: 272
Репутация: 4
По умолчанию Ответ: Re: ADODataSet.Locate

Цитата:
Сообщение от eloger Посмотреть сообщение
Вся проблема в том что ты не делаешь post перед передвижением

Добавь ADODataSet1.Post перед ADODataset1.Locate('Cod',i+1,[]);

Зачм такие сложность если просто надо перебрать все записи? Такой способ ,помоему будет более трудоемкий по машинному времени
Wizard2007 вне форума
 
Ответить с цитированием Вверх
Старый 19.04.2008, 11:49   #7
sirwhale
Новичок
 
Пол:Мужской
Регистрация: 26.11.2007
Сообщений: 12
Репутация: 0
По умолчанию Ответ: ADODataSet.Locate

Цитата:
Сообщение от Terio Посмотреть сообщение
Подскажите пожалуйста, как избежать сброса параметров при применении ADODataSet.Locate, не постя значения (физически изменения в таблицу не должны вноситься).

Код:
procedure TForm2.Button1Click(Sender: TObject);
var i:integer;
begin
i:=5;
ADODataset1.Locate('Cod',i,[]);
DBGridEh1.Columns.Items[2].Field.NewValue:='True';
ADODataSet1.Next();
//ADODataset1.Locate('Cod',i+1,[]);
end;
При next() все нормально, значение True в пятой строке остается, а при Locate все обнуляется.
Может, существует какой-то другой способ встать на нужную строку?
Заранее спасибо.

Если хочешь пройти через всем записом

При Next все нормально, смотри что next делаеть в Delphi Help


Цитата:
procedure Next;

Description

Call Next to move to the next record in the dataset, making it the active record. Next posts any changes to the active record and

sirwhale вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Locate Laptop YSF Варезник 0 20.03.2008 17:12

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 01:05. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.04994 секунды с 13 запросами