Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование GetCurrentRecord [D7, MSSQL]


Patrick ©   (2003-04-11 10:24:00) 

Небольшой вопрос: У компонента TDataSet есть метод GetCurrentRecord, который помещает значения полей текущей записи в буфер, но только я не нашел ничего того, что делает обратное, т.е. из буфера в поля записи.


Anatoly Podgoretsky   (2003-04-11 12:13:00) [1]

sniknik © (11.04.03 11:13)

упорядоченные программисты :-))


sniknik   (2003-04-11 11:59:00) [2]

о позор на мои седые %№?я :о))
инфа немного не точна, (там есть еще более поздний список от последнего апдейта) но смысла это не меняет

Fully certified drivers:
ACCESS (Microsoft 3.51-Access 95 and 97)
FOXPRO (Microsoft 3.51)
MSSQL Server (Microsoft 3.6
- Server version 6.5 and 7.0)
MSSQL Server (Intersolv 3.11
- Server version 6.5 and 7.0)
ORACLE7 (Intersolv 3.11
- Server version 7.3)


sniknik   (2003-04-11 11:52:00) [3]

> данные вещи здесь вроде как неуместны.

еще как уместны, используй ADOQuery.Sort (сортирует уже полученный датасет на локале)

(Query значит BDE? для доступа к MSSQL? - отстой полный. BDE он для своих драйверов только хорош (парадокс,...))

информация к размышлению (из файла ридми BDE)
Fully certified drivers:
ACCESS (Microsoft 3.40-Access 95 and 97)
FOXPRO (Microsoft 3.40)
MSSQL Server (Microsoft 3.00-Server version 6.5)
MSSQL Server (Intersolv 3.01-Server version 6.5)
ORACLE 7 (Intersolv 3.01-Server version 7.3)
и большего не будет, BDE больше не развивается.


Patrick   (2003-04-11 11:27:00) [4]

с сортировками и индексами все понятно, и безусловно поступать (по всем правилам) нужно было именно так, но только одно но, что данный DataSet, это Query от хранимой процедуры с MSSQL, поэтому данные вещи здесь вроде как неуместны.


sniknik   (2003-04-11 11:13:00) [5]

кстати насчет смысла (жизни и вообще :о))
> для визуального представления данных на экране

попробуй использовать индексы и сортировки (как и все порядочные программисты :-))


sniknik   (2003-04-11 11:10:00) [6]

> Очень интересный исходник GetCurrentRecord, он что постоянно возпращает False и всё. Хотя может я что-то не понимаю?

именно ничего не делает (в хелпе так и написано), и заметь в TADODataSet и TCustomADODataSet этот метод не перегружается. Похоже рабочий только для BDE (native драйвера).
вот его метод (разницу видиш? ;о)))

function TBDEDataSet.GetCurrentRecord(Buffer: PChar): Boolean;
begin
if not IsEmpty and (GetBookmarkFlag(ActiveBuffer) = bfCurrent) then
begin
UpdateCursorPos;
Result := (DbiGetRecord(FHandle, dbiNoLock, Buffer, nil) = DBIERR_NONE);
end else
Result := False;
end;


Patrick   (2003-04-11 11:00:00) [7]

Смысл таков: Всё это мне нужно для визуального представления данных на экране, посредством TDBGrid"а, т.е. пользователю требуется перемещать записи относительно друг друга, и весь смысл заключается в том, чтобы при этом не делать сброс данных в базу. Конечно это можно делать через другую компоненту представления данных, но грид как-то более адаптирован, если посоветуете что-то еще буду весьма благодарен. По поводу предложенного Вами метода, он не хочет сбрасывать в НД данные типа varCurrency, и я пытался искать что-нибудь другое. Заводить кучу временных переменных тоже не хочется.
Очень интересный исходник GetCurrentRecord, он что постоянно возпращает False и всё. Хотя может я что-то не понимаю?


Жук   (2003-04-11 10:46:00) [8]

Уважаемый Patrick ! Скажите, если не секрет, смысл перестановок записей в НД, плз.


sniknik   (2003-04-11 10:35:00) [9]

исходники для TDataSet.GetCurrentRecord "метода" выглядят так
function TDataSet.GetCurrentRecord(Buffer: PChar): Boolean;
begin
Result := False;
end;


обратный метод можеш написать сам, это несложно :о))).


Наверх

Титульная страница Поиск, карта сайта Написать письмо