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

Вниз

Закладка при выполнении 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.043 c
2-1201254130
abhtr
2008-01-25 12:42
2008.02.17
WinExec непонятно работает


15-1200404670
Dmitry S
2008-01-15 16:44
2008.02.17
Авторизация на контроллере домена через PHP


2-1201197179
Anton
2008-01-24 20:52
2008.02.17
Считать данные из таблицы Access в упорядоченную структуру ?


2-1201105865
SamProf
2008-01-23 19:31
2008.02.17
Как правильно сделать работу с TAdvNavBar


2-1201243371
tytus
2008-01-25 09:42
2008.02.17
Excel (Office2003) - как писать в разных листах?





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