Текущий архив: 2008.02.17;
Скачать: CL | DM;
Вниз
Закладка при выполнении SQL Найти похожие ветки
← →
SveTT (2008-01-24 01:20) [0]Здравствуйте!
Подскажите. пожалуйста, как возможно создать "bookmark" перед выполнением SQL запроса с тем, чтобы после выполнения вернуть курсор на закладку?
/FreeBookmark
GetBookmark
GotoBookmark/
← →
Сергей М. © (2008-01-24 01:27) [1]Никак.
Интересующая тебя закладка есть, по сути, адрес в памяти приложения, где находятся данные записи из текущего НД.
Выполнение запроса приводит к уничтожению текущего НД и созданию нового НД, при этом происходит множественное перереспределение ресурсов памяти приложения, так что закладка, относившаяся к предыдущему НД, становится недействительной.
← →
Сергей М. © (2008-01-24 01:27) [2]Никак.
Интересующая тебя закладка есть, по сути, адрес в памяти приложения, где находятся данные записи из текущего НД.
Выполнение запроса приводит к уничтожению текущего НД и созданию нового НД, при этом происходит множественное перереспределение ресурсов памяти приложения, так что закладка, относившаяся к предыдущему НД, становится недействительной.
← →
Германн © (2008-01-24 01:35) [3]
> SveTT (24.01.08 01:20)
>
> Здравствуйте!
>
> Подскажите. пожалуйста, как возможно создать "bookmark"
> перед выполнением SQL запроса с тем, чтобы после выполнения
> вернуть курсор на закладку?
>
А задачу можешь изложить? Поскольку хотя Сергей М. © (24.01.08 01:27) [1] абсолютно прав, но как говорится возможны варианты.
← →
ASoft (2008-01-24 07:11) [4]
> SveTT (24.01.08 01:20)
как вариант (если я правильно понял вопрос)
- запомнить в переменную `ID`
- после выполнения запроса попробовать найти Locate"ом
← →
SveTTT (2008-01-24 08:09) [5]Спасибо, за разъяснение.
> - запомнить в переменную `ID`
> - после выполнения запроса попробовать найти Locate"ом
ID нельзя запомнить т.к. после INSERT или UPDATE мой "ID" меняется на больший.
Но, ... ;-) м.б. есть возможность после выполнения перейти на max значение по полю ID.
← →
Skyle © (2008-01-24 08:14) [6]
> SveTTT (24.01.08 08:09) [5]
> Спасибо, за разъяснение.
>
> > - запомнить в переменную `ID`
> > - после выполнения запроса попробовать найти Locate"ом
>
> ID нельзя запомнить т.к. после INSERT или UPDATE мой "ID"
> меняется на больший.
> Но, ... ;-) м.б. есть возможность после выполнения перейти
> на max значение по полю ID.
Id записи должен быть вечным. Просто в какой-то момент он может быть неизвестен.
А перейти на макс можно: отсортировать и перейти на последнюю (первую) запись.
← →
MsGuns © (2008-01-24 09:10) [7]>SveTTT (24.01.08 08:09) [5]
>ID нельзя запомнить т.к. после INSERT
После вставки новый ID должен быть извлечен доп.командой серверу - по нему и надо искать запись в переоткрытом нд
>при UPDATE мой "ID" меняется на больший.
У вас какой-то неправильный ID
← →
SveTTT (2008-01-24 09:34) [8]я ошиблась, у меня не ID, а ID_I.
ПЕРВЫЙ И ПОСЛЕДНИЙ не подходит, т.к сортировка грида выполнена по другим полям, а меня интересует только курсор на значении равное максимальному ID_I.
← →
Sergey13 © (2008-01-24 09:56) [9]> [8] SveTTT (24.01.08 09:34)
> я ошиблась, у меня не ID, а ID_I.
Ты ошиблась не только в этом.
Ты НЕ указала СУБД, которую мучаешь. Ты НЕ рассказала, что и как конкретно делаешь и почему у тебя "после INSERT или UPDATE мой "ID" меняется на больший".
← →
SveTTT (2008-01-24 10:43) [10]Извиняюсь, спешила, одной рукой кормлю ребенка, другой пишу.
База Парадокс. Что делаю: вставляю или изменяю данные посредством запроса в парадоксовской таблице, после INSERT или UPDATE ID_I изменяемого значения, получает новый ID_I по порядку возрастания. (пример: последнее значение ID_I - 4001. Редактирую значение ID_I 3728. После UPDATE это значение получает ID_I - 4002. т.е. ID_I указывает, что это значение было отредактированно последним или является новым). Мне нужно, чтобы курсор в гриде оставался на значении с ID_I равное 4002. (по примеру).
← →
Sergey13 © (2008-01-24 10:47) [11]> [10] SveTTT (24.01.08 10:43)
> База Парадокс
Сочувствую.
> После UPDATE это значение получает ID_I - 4002
А просто ID (т.е. поле, которое является первичным ключом) у тебя есть?
← →
Sergey13 © (2008-01-24 10:53) [12]> [10] SveTTT (24.01.08 10:43)
Я к тому, что первичный ключ не должен меняться, а отслеживать хронологию данных удобнее например в поле с датой/временем. Перед вставкой/изменением запоминаешь текушее время и вставляешь его в поле. Потом ищешь локейтом по нему.
← →
MsGuns © (2008-01-24 11:52) [13]>SveTTT (24.01.08 10:43) [10]
>Извиняюсь, спешила, одной рукой кормлю ребенка, другой пишу.
Уважаю ;)
← →
Sergey13 © (2008-01-24 11:59) [14]> [10] SveTTT (24.01.08 10:43)
+ к
> [11] Sergey13 © (24.01.08 10:47)
и
> [12] Sergey13 © (24.01.08 10:53)
Если вставлять записи не отдельными запросами, а методами датасета, то вообще не придется переоткрывать его и перепозиционироваться. Это, ИМХО, самое правильное решение.
← →
SveTTT (2008-01-24 13:30) [15]
> А просто ID (т.е. поле, которое является первичным ключом)
> у тебя есть?
конечно.
Хронологию отслеживат (у меня) ID_I.
Чтобы не менять структуру базы, можно же использовать локейт и по ID_I?
← →
Sergey13 © (2008-01-24 13:42) [16]> [15] SveTTT (24.01.08 13:30)
> можно же использовать локейт и по ID_I?
Можно и по нему, если ты сама рулишь его значением.
Повторюсь, изменяя данные методами датасета ничего не надо будет делать вообще для позиционирования.
← →
clickmaker © (2008-01-24 13:45) [17]
> [10] SveTTT (24.01.08 10:43)
> Извиняюсь, спешила, одной рукой кормлю ребенка, другой пишу
"Одной рукой пишу тебе письмо, другой - думаю о тебе" (c)
:)
← →
ASoft (2008-01-24 15:34) [18]>SveTTT
Однако, я думал вы однозначно поймете, что я имел в виду ID - U>уникальный идентификатор записи...
Запомнить запись вы хотели перед выполнением SQL запроса
а судя по этому:
> есть возможность после выполнения перейти на max значение
> по полю ID.
- после
Страницы: 1 вся ветка
Текущий архив: 2008.02.17;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.036 c