Форум: "Базы";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
ВнизПроход по BookmarkList Найти похожие ветки
← →
Жук (2004-01-20 14:39) [0]Нужно сделать мультиселективную выборку из НД посредством DBGrid, но у меня при прохождении по гриду :
for i:=0 to DBGrid1.SelectedRows.Count-1 do
FIBDataSet1.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
все букмраки ссылаются на последнюю запись НД.
Что неправильно ?
← →
}|{yk (2004-01-20 17:52) [1]Я юзаю QuantumGrid (рекомендую) там это решается легко
Например так
while ((i < dxDBGridExport.SelectedCount) and (contin = true)) do
begin
InsertRecordIntoExportFile(dxDBGridExport.SelectedNodes[i]);
i:=i+1;
end;
← →
TohaNik (2004-01-20 19:45) [2]А так
DBGrid1.DataSourse.FIBDataSet1.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
← →
Жук (2004-01-21 08:15) [3]
> TohaNik © (20.01.04 19:45) [2]
> А так
Так, конечно не пойдёт. Если вы имеете в виду :
DBGrid1.DataSourse. DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i])),
то та же фигня :-(
← →
TohaNik (2004-01-21 10:26) [4]for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
DBGrid1.DataSource.DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
---------
end;
При правильных настройках работает 100%
← →
stud (2004-01-21 10:40) [5]все правильно, но помнится у меня тоже была проблема, что только одна строка из грида обрабатывалась. оказалось была какая-то строка кода, в результате выполнения которой все выделение после обработки первой же выделенной строки сбрасывалось. нужно трассировать и смотреть что происходит.
← →
Жук (2004-01-21 11:48) [6]
> TohaNik © (21.01.04 10:26) [4]
> При правильных настройках работает 100%
Я подозреваю, что тут какой-то глюк с фибсами, но пока не нашёл. Может, кто сталкивался ?
> stud © (21.01.04 10:40) [5]
Может подробности припомните ?
← →
Desdechado (2004-01-21 11:57) [7]проверьте события BeforeScroll и AfterScroll у датасета
← →
stud (2004-01-21 12:02) [8]проще самому проверить трассируеш программу и смотриш на значение DBGrid1.SelectedRows.Count
← →
Жук (2004-01-21 13:58) [9]
> stud © (21.01.04 12:02) [8]
> проще самому проверить трассируеш программу и смотриш на
> значение DBGrid1.SelectedRows.Count
А что даст этот параметр ? Проблема-то в том, что сколько выдено записей, столько раз всё и выполняется, что нужно, но только при GotoBookMark(очередная букмрака), курсор уходит на последнюю запись.
Это нормальное поведение курсора, если записи с указанной букмракой нет в НД ?
← →
stud (2004-01-21 14:29) [10]а так ?
DBGrid1.DataSourse.DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i]));
← →
Жук (2004-01-21 15:28) [11]В Д6 и с нормальным ИБХ всё работает. Значит фибсы глючат. Придётся извращенческим путём идти :-(
← →
Desdechado (2004-01-21 15:49) [12]BookmarkValid проверяй
← →
Жук (2004-01-21 16:17) [13]
> Desdechado © (21.01.04 15:49) [12]
> BookmarkValid проверяй
Все марки не соответствуют требованиям :-(
BookmarkValid=false
← →
Johnmen (2004-01-21 23:13) [14]>Жук ©
Приведенный TohaNik © (21.01.04 10:26) приём, описанный, кстати в хелпе, железно работает для FIBPlus >= v4.7.7 !!!
Если тебе очень надо, но всё-таки не получается (???), то просто:
mark:=GetBookmark;
DisableControls;
First;
while not EOF do begin;
if DBGrid1.SelectedRows.CurrentRowSelected then
<делаем своё дело>
Next;
end;
try GotoBookmark(mark); finally FreeBookmark(mark); end;
EnableControls;
← →
Жук (2004-01-22 08:42) [15]
> Johnmen © (21.01.04 23:13) [14]
Спасибо ! Заработала !!!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.01 c