Главная страница
    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.009 c
1-38887
h0use
2004-02-04 15:49
2004.02.13
Организация стэка


1-38866
download
2004-02-04 22:19
2004.02.13
Как убить поток


9-38664
S_c_o_R_p
2003-08-03 17:24
2004.02.13
GlScene


1-38783
staryx
2004-02-03 15:33
2004.02.13
проблемы с clipboard ом


1-38848
maxim_caban
2004-02-02 13:47
2004.02.13
функциональность Ворда в своей программе.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский