Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.09.2007, 19:23   #1
Римма
Пользователь
 
Регистрация: 06.12.2006
Сообщений: 31
Радость сортировка, когда невозможно использовать свойства таблицы IndexFieldName

Привет всем. У меня возникла вопрос. Помогите найти ответ на этот вопрос. У меня есть таблица 10x10.Название столбцов не буду писать. Мне надо отсортировать одну столбец по возрастанию, но проблема в том что он временный. И к нему невозможно использовать свойства таблицы IndexFieldNames. Как еще это можно зделать? Заранее спасибо.
Римма вне форума Ответить с цитированием
Старый 05.09.2007, 09:34   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Если нужно сортировать столбцы таблицы (например, кликом по заголовку столбца) и есть проблемы с индексами - проще всего вызывать таблицу sql-запросом. Сразу все проблемы отпадут.
' ... order by FIELD'
'... order by FIELD desc'
_SERGEYX_ вне форума Ответить с цитированием
Старый 05.09.2007, 10:43   #3
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

для общего развития Вам, в дополнение к уже написанному Сержем(которому отдельній респект): по умолчанию order by сортирует по возрастанию(или order by ASC), но его можно не указівать, а если по убіванию нужно , то order by Field DESC....Можно отсортировать ,например , по столбцу под номером 3 ------ order by 3....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Старый 06.09.2007, 17:19   #4
Римма
Пользователь
 
Регистрация: 06.12.2006
Сообщений: 31
Радость

Большое вам спасибо что откликнулись. Но у меня еще один вопрос есть Я в вожу в Edit1 то что мне надо найти по конкретному столбцу, и нажимаю на копку он показывает то что я ищу. А вот как можно сделать что бы при нажатие на кнопку НАЗАД таблица пришла на начальную состоянию то есть показала все базу. Свойства таблицы Cancel че то не идет. На это че можете подсказать люди добрые
Римма вне форума Ответить с цитированием
Старый 06.09.2007, 18:29   #5
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Ну, уточнила бы сначала чем таблица вызвана... Через TTable или TQuery.
И что значит кнопка НАЗАД? Это в навигаторе? Выбрось его сразу...

Если первое, то

var loc: string;

loc:= Твоему уникальному полю.
после всех действий...
Table.Locate('ПОЛЕ', loc,[Локейт опции]

Если второе, сделай запрос на вывод всех записей
query.sql.add('select * from таблица') (Ну, или поле конкретное)
_SERGEYX_ вне форума Ответить с цитированием
Старый 07.09.2007, 10:56   #6
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от Римма Посмотреть сообщение
Большое вам спасибо что откликнулись. Но у меня еще один вопрос есть Я в вожу в Edit1 то что мне надо найти по конкретному столбцу, и нажимаю на копку он показывает то что я ищу. А вот как можно сделать что бы при нажатие на кнопку НАЗАД таблица пришла на начальную состоянию то есть показала все базу. Свойства таблицы Cancel че то не идет. На это че можете подсказать люди добрые
тоесть тебе нужно вернуться на ту строку, что біла перед поиском?
все просто, используй закладки...
var
bm1:TbookmarkStr;
begin

....
//єто делаем перед поиском
bm1:=table1.bookmark;
......
//а вот єто при нажатии на НАЗАД...
table1.bookmark:=bm1;

end;


тоесть метки используются для того, чтобі запомнить позицию..а потом если что- вернуться на ту запись....
Если тебе нужно вернуться к состоянию базі, то adodataSet1.updateBatch - для сохранения, а cancelBatch для отмені....

Можно еще использовать транзакции... IBTransaction1.commitRetaining(отме на транзакции)
либо ADOConnection1.BeginTrans;
try.....
except
//при ошибке
DataModule1.ADOConnection1.Rollback Trans;
просто транзакцию лучше использовать , т.к при транзакции либо віполняется весь запрос, либо нет..т.е не возникнет такой ситуации, что половина данніе передалась, а половина нет...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как мне узнать когда одновременно нажаты две клавиши vitalik007 Помощь студентам 8 11.10.2007 17:13
Когда надо свернуть форму... Slash Общие вопросы Delphi 5 11.09.2007 18:11
Webbrowser и "Невозможно отобразить страницу" celovec Работа с сетью в Delphi 1 06.07.2007 13:45
Как узнать когда браузер скачивает, а когда нет? iPod Работа с сетью в Delphi 1 07.05.2007 15:16