Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.011 c
14-20808
K$oft
2003-07-22 16:51
2003.08.07
Хелп для Delphi


1-20504
Эл
2003-07-24 10:37
2003.08.07
Захват окна


7-20822
Intell
2003-04-19 19:09
2003.08.07
Как связать расширение с прогой?


1-20475
Сергей Енин
2003-07-23 13:11
2003.08.07
Работа с Word.Application...


3-20454
Nikolai_S
2003-07-17 15:40
2003.08.07
Проблема с Lookup полями в ADO с MS SQL Server





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