Форум: "Базы";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
ВнизДелаю сортировке в Title DBGrid простым способом Найти похожие ветки
← →
Yuraz (2003-07-17 10:26) [0]но курсор, после, встаёт на 1 строку, т.е. если я работал на 5000й строке, сделал сортировку по др. столбцу, DBGrid сортирует, но поднимается курсором в самое начало, на 1ю строку, что не очень удобно. Как сделать так, чтобы сортировал, но курсор оставался на текущей позиции?
Вот моя процедура:
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
ADOTable1.IndexFieldNames:=Column.FieldName;
end;
← →
Sergey13 (2003-07-17 10:32) [1]Перед сортировкой запомни ID текущей записи, а после найди эту запись.
5000 строк в гриде - круто!!! Мне бы так. 8-)
← →
Yuraz (2003-07-17 10:36) [2]Их всего 25000, коннектюсь ADOTable, отображается в Гриде, в чём дело то?
Совет понял, спасибо, я больше не знаю как это в коде реализавать...
← →
Соловьев (2003-07-17 10:42) [3]
> Yuraz © (17.07.03 10:36)
procedure TForm1.CopyDataClick(Sender: TObject);
var
SavePlace: TBookmark;
PrevValue: Variant;
begin
withTable1 do
begin
{ get a bookmark so that we can return to the same record }
SavePlace := GetBookmark;
try
{ move to prior record}
FindPrior;
{ get the value }
PrevValue := Fields[0].Value;
{Move back to the bookmark
this may not be the next record anymore
if something else is changing the dataset asynchronously }
GotoBookmark(SavePlace);
{ Set the value }
Fields[0].Value := PrevValue;
{ Free the bookmark }
finally
FreeBookmark(SavePlace);
end;
end;
end;
← →
Sergey13 (2003-07-17 11:04) [4]2Yuraz © (17.07.03 10:36)
>Их всего 25000, коннектюсь ADOTable, отображается в Гриде, в чём дело то?
Да так. Если тебе нравится, то я не против. Может у тебя мозг обрабатывает по 100 записей в секунду, да в несколько потоков. 8-)
← →
Zacho (2003-07-17 11:06) [5]Небольшое дополнение:
Тип TBookmark и методы GetBookmark, GotoBookmark и FreeBookmark - рудименты, оставшиеся от Дельфи 2 (если я правильно помню). Начиная с Дельфи 3 удобнее использовать тип TBookmarkStr и св-во TDataSet.Bookmark
Впрочем, на вкус и цвет товарища нет :)
← →
Yuraz (2003-07-17 11:16) [6]ADODataSet.MaxRecords=100, вроде пошустрей стало, Sergey13, ты это имел ввиду?
← →
Sergey13 (2003-07-17 11:35) [7]2Yuraz © (17.07.03 11:16)
Примерно. Хотя не понятно, что за базу ты юзаешь. Для таких объемов логичнее было бы использовать SQL.
← →
Yuraz (2003-07-17 15:05) [8]SQL использовать логичнее, да Table проще, потому что одна таблица в БД. БД-Access+ADO доступ. Через ADOTable можно и редактировать, и удалять записи легко, а вот если бы было несколько таблиц, а в грид выводим результирующую, то тут да, в результируюшую выводим результат Query, только я не знаю, какое есть свойство или способ ограничивать показ сотней записей(Sergey13), а потом подгружать, и если в результируещей что то меняем, то тут придётся Update пользоваться, что не очень то и легко сделать, по крайней мере для меня...
Хочу обратится с просьбой, есть ли у кого хорошая (своя) демка, с использованием SQLQuery при выводе в результирующий грид (запрос из неск. табл. см. ниже), и UpdateSQL если что то в этом гриде меняем, но очень желательно, в результирующем гриде результат выборки из нескольких таблиц, например в SQL Server 2000 есть БД Northwind, и в ней есть нужные табл., SQLQuery такой:
select
(select c.ContactName from Customers c where c.CustomerID=Orders.CustomerID) as Customer,
(select e.lastName from employees e where e.EmployeeID=orders.EmployeeID) AS Employee,
Freight,
Shipname,
ShipAddress
from orders
DBGrid можно редактировать, желательно в столбцах Customer и Employee при нажатии появлялся PickList, с данными из таблиц Customers и Employees , а потом, после редактирования UpdateSQL обрабатывал, обновлял какие надо таблицы (т.е. по обратному пути, если в PickList Имя, то получем ID, а это ID заносим в orders)
За услугу могу выслать диск всех экзаменов, тестов, ebook по подготовке на CCNP & CCIP (700мб)
← →
Yuraz (2003-07-17 15:56) [9]Да, пример можно на любой БД, SQLServer, Access, Oracle,- на D5+ADO.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c