Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
ВнизИспользование GetCurrentRecord Найти похожие ветки
← →
Patrick (2003-04-11 10:24) [0]Небольшой вопрос: У компонента TDataSet есть метод GetCurrentRecord, который помещает значения полей текущей записи в буфер, но только я не нашел ничего того, что делает обратное, т.е. из буфера в поля записи.
← →
sniknik (2003-04-11 10:35) [1]исходники для TDataSet.GetCurrentRecord "метода" выглядят так
function TDataSet.GetCurrentRecord(Buffer: PChar): Boolean;
begin
Result := False;
end;
обратный метод можеш написать сам, это несложно :о))).
← →
Жук (2003-04-11 10:46) [2]Уважаемый Patrick ! Скажите, если не секрет, смысл перестановок записей в НД, плз.
← →
Patrick (2003-04-11 11:00) [3]Смысл таков: Всё это мне нужно для визуального представления данных на экране, посредством TDBGrid"а, т.е. пользователю требуется перемещать записи относительно друг друга, и весь смысл заключается в том, чтобы при этом не делать сброс данных в базу. Конечно это можно делать через другую компоненту представления данных, но грид как-то более адаптирован, если посоветуете что-то еще буду весьма благодарен. По поводу предложенного Вами метода, он не хочет сбрасывать в НД данные типа varCurrency, и я пытался искать что-нибудь другое. Заводить кучу временных переменных тоже не хочется.
Очень интересный исходник GetCurrentRecord, он что постоянно возпращает False и всё. Хотя может я что-то не понимаю?
← →
sniknik (2003-04-11 11:10) [4]> Очень интересный исходник 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;
← →
sniknik (2003-04-11 11:13) [5]кстати насчет смысла (жизни и вообще :о))
> для визуального представления данных на экране
попробуй использовать индексы и сортировки (как и все порядочные программисты :-))
← →
Patrick (2003-04-11 11:27) [6]с сортировками и индексами все понятно, и безусловно поступать (по всем правилам) нужно было именно так, но только одно но, что данный DataSet, это Query от хранимой процедуры с MSSQL, поэтому данные вещи здесь вроде как неуместны.
← →
sniknik (2003-04-11 11:52) [7]> данные вещи здесь вроде как неуместны.
еще как уместны, используй 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 больше не развивается.
← →
sniknik (2003-04-11 11:59) [8]о позор на мои седые %№?я :о))
инфа немного не точна, (там есть еще более поздний список от последнего апдейта) но смысла это не меняет
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)
← →
Anatoly Podgoretsky (2003-04-11 12:13) [9]sniknik © (11.04.03 11:13)
упорядоченные программисты :-))
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c