Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Вниз

ADO, Ehlib. Коллеги, подскажите, пожалуйста!   Найти похожие ветки 

 
azamatufa ©   (2007-07-03 13:52) [0]

Уважаемые коллеги!

Имею DBEhlibGrid с мультиселектом.
Выделяю неск. записей и собираю их ID"ы (чтоб потом скопом удалить)


 s := "";
 for i:=0 to MainGrid.SelectedRows.Count-1 do begin
   MainQuery.Bookmark := MainGrid.SelectedRows[i];
   if i>0 then s := s + ",";
   s := s + MainQuery.FieldByName("ID").AsString;
 end;


в результате имеем s = "2,3,4,5,7,8,9"   типа того (набор ID"ов)
а далее
DELETE FROM Table1 WHERE ID IN (s);

Вопрос:
иногда после удаления, жму на грид и выскакиваеи ошибка - типа неверная закладка! Отловить не могу!

Как после вышеуказанного цикла очистить букмарк???
MainQuery.Bookmark := "";         //    так можно?

Спасибо!


 
Johnmen ©   (2007-07-03 14:23) [1]

MainGrid.SelectedRows.Clear


 
azamatufa ©   (2007-07-03 14:26) [2]


> Johnmen ©   (03.07.07 14:23) [1]
> MainGrid.SelectedRows.Clear


вот спасибо!


 
azamatufa ©   (2007-07-12 08:51) [3]


> Johnmen


че-то не пропал этот глючок ((
появляется в EhLibVcl с надписью "Недопустимая закладка" (когда я делаю выделение и удаление выделенных записей свой процедуркой см. выше)..
ну никак не могу отловить.. ((


 
Johnmen ©   (2007-07-12 09:42) [4]

1. собираем ID
2. чистим список закладок
3. делаем что угодно, и DELETE и прочее...


 
MsGuns ©   (2007-07-12 10:06) [5]

Закладки перестают быть актуальными после любой перечитки датасета, в т.ч. из локального буфера


 
azamatufa ©   (2007-07-12 10:40) [6]

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

---
в этой функции глючит: (ehlibvcl)


function DataSetCompareBookmarks(DataSet: TDataSet; Bookmark1, Bookmark2: TBookmarkStr): Integer;
begin
 Result := DataSet.CompareBookmarks(TBookmark(Bookmark1), TBookmark(Bookmark2));
end;


 
MsGuns ©   (2007-07-12 12:39) [7]

Вместо букмарок для сохранения и локализации использовать UID записей


 
azamatufa ©   (2007-07-12 13:28) [8]


> Вместо букмарок для сохранения и локализации использовать
> UID записей


ну хорошо, а как тогда мне в MainGrid"e узнать какие выбраны записи?

подскажите альтернативу нижеследующему:

s := "";
for i:=0 to MainGrid.SelectedRows.Count-1 do begin
  MainQuery.Bookmark := MainGrid.SelectedRows[i];
  if i>0 then s := s + ",";
  s := s + MainQuery.FieldByName("ID").AsString;
end;


видно, что в этом фрагменте используется букмарк..

(а вообще для сохранения указателя я делаю как вы говорите:
if not DataSet.IsEmpty then
 ID := DataSet.FieldByName("ID").AsInteger
else
 ID := 0;

...
после чего:
 DataSet.Locate("ID",ID,[]);


 
azamatufa ©   (2007-07-12 14:03) [9]

т.е. как после того как я говорил

MainQuery.Bookmark := MainGrid.SelectedRows[i];


сказать Датасету и Гриду, что нет никаких букмарков!!! ((  нет букмарков - нет "недопустимых закладок"  ((


 
azamatufa ©   (2007-07-12 15:22) [10]

ну вот опять: в IDE дельфей ошибка есть, запускаю вне - ошибки нет (



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.08.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.047 c
2-1184323485
lamerskii_vopros
2007-07-13 14:44
2007.08.12
динамическое создание компонента


2-1184427323
Bbbbb...
2007-07-14 19:35
2007.08.12
TButton, inherited, Enabled


2-1184574310
Alex13
2007-07-16 12:25
2007.08.12
помогите с DateTimePicker


2-1184568047
Girol
2007-07-16 10:40
2007.08.12
удалить запись(и) из БД Access


2-1184691623
mfender
2007-07-17 21:00
2007.08.12
Преобразование времени RFC822 в TDateTime





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