Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.011 c
4-39139
SergeySEM
2003-12-08 10:33
2004.02.13
Послать Refrech


7-39121
fiatik
2003-11-28 23:17
2004.02.13
Help! Как запросить у компа: какие системе доступны компорты?


6-38991
able
2003-12-11 15:26
2004.02.13
Люди, помогите!


14-38995
Knight
2004-01-27 01:51
2004.02.13
Ваши настольные книги...


3-38737
SasaR
2004-01-20 19:00
2004.02.13
rxMemoryDataSet





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский