Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка по БД, пузырь :) 
:(
    Опции темы
Makarofff
Дата 27.4.2005, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 29.1.2005

Репутация: нет
Всего: нет



Надо сделать сортировку в таблице по номеру строки, не используя ключ.Создал поле number (paradox).

По методу пузырька делал, голова болит и ничего не фурычит
Цитата


procedure sort;
const
n = 2;
var
a : array[1..n] of integer;
i,j,k,rab : integer;
begin
Form1.Table1.RecNo:=1;
For i:=1 to Form1.Table1.RecordCount do begin
a[i]:= Form1.Table1.RecNo ;
Form1.Table1.RecNo:= Form1.Table1.RecNo+1 ;
end;
for i:=1 to n-1 do
for j:=1 to n-i do
  if a[j]>a[j+1] then
  begin
    rab := a[j+1];
    a[j+1]:=a[j];
    a[j]:=rab;
  for k:=1 to Form1.Table1.RecordCount do    begin
  Form1.Table1.RecNo:= a[k];
    end;
  end;



Процедуру вызываю в formactivate между Table1.Active :=false; и труе.
PM MAIL   Вверх
Pakshin A. S.
Дата 27.4.2005, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



А использовать SQL? Вроде тама есть параметр order by, который отвечает за сортировку по заданному полю... smile
PM   Вверх
Vit
Дата 27.4.2005, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Мдя ... СЛАВА ВЕЛОСИПЕДОСТРОИТЕЛЯМ!

Используй SQL, всё очень просто и ЗНАЧИТЕЛЬНО быстрее чем пузырьками...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Guest
Дата 27.4.2005, 23:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











не мудри, закинь на форму query и пропиши, приблизительно в этом духе
Код

select name,gd from person group by gd

  Вверх
DimW
Дата 28.4.2005, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



Цитата
select name,gd from person group by gd
smile
я не понял мы сортируем или груперуем....?

Код

SELECT NAME1, NAME2
FROM TABLE_NAME
ORDER BY 1






PM MAIL ICQ   Вверх
Makarofff
Дата 30.4.2005, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 29.1.2005

Репутация: нет
Всего: нет



У меня ошибка лезет "No such table or correlation name"
PM MAIL   Вверх
Pakshin A. S.
Дата 1.5.2005, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Код

SELECT * FROM DemoTable ORDER BY Field1;

Код

SELECT Field1, Field2 FROM DemoTable ORDER BY Field1;

Это не срабатывает?! Тогда проверь таблички... smile Или предоставь запрос...
PM   Вверх
Makarofff
Дата 2.5.2005, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 29.1.2005

Репутация: нет
Всего: нет



Цитата
with form1.Query1 do begin


          SQL.Add('SELECT N, Name, Publisher, Autor, Comments');
          SQL.Add('FROM "D:\Delphi\Borland\Delphi7\???????\???? ?????? ?????\school.db"');


          SQL.Add('ORDER BY N');


        end;
end;

PM MAIL   Вверх
Pakshin A. S.
Дата 2.5.2005, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Странно... а все названия точны?
PM   Вверх
Makarofff
Дата 2.5.2005, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 29.1.2005

Репутация: нет
Всего: нет



Цитата(Pakshin @ 2.5.2005, 20:41)
Странно... а все названия точны?

Да,не ругается.
PM MAIL   Вверх
innok
Дата 3.5.2005, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.10.2004

Репутация: 1
Всего: 1



MakarofffА через SQLExplorer?
PM MAIL   Вверх
Makarofff
Дата 8.5.2005, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 29.1.2005

Репутация: нет
Всего: нет



Короче пашет сортировка, но тогда в таблицу не добавляются данные,кнопка navigatorа + не активна
PM MAIL   Вверх
Makarofff
Дата 9.5.2005, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 29.1.2005

Репутация: нет
Всего: нет



Вопрос :

Цитата
with form1.Query1 do begin
           Close;       // ??????? ????-????????? ?????????? ??????????? ???????
           SQL.Clear;   // ??????? ????? ??????????? ???????
           // ?????????? ????? ?????? ? ???????? SQL
           SQL.Add('SELECT Name');
           SQL.Add('FROM "' + dirname + '\' + 'school.db' + '"');
           SQL.Add('WHERE (TRIM (Name) ) LIKE "%'+ naz +'%"');
         
           Open;   

Где naz - это критерий поиска.
Почему когда исп. LIKE у меня появляются значения указанного поля , а других нет?

ПОнял, потому что надо SELECT *

Это сообщение отредактировал(а) Makarofff - 9.5.2005, 21:43
PM MAIL   Вверх
Makarofff
Дата 10.5.2005, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 29.1.2005

Репутация: нет
Всего: нет



Проблема!!!При добавлении записи

With Form1.Query1 do begin
close;;
Sql.Clear ;
Sql.Add('INSERT INTO School (N,Name,Comments) ');
Sql.add('VALUES ("'+ n + '","'+name12+'","'+name11+'") ') ;
open;
end;

Error creating kursor handle
Как исправить?
PM MAIL   Вверх
innok
Дата 11.5.2005, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.10.2004

Репутация: 1
Всего: 1



Makarofff
нужно не open, a execsql. Insert into.... не возвращает результирующего набора данных, что и говорится в послании.
PM MAIL   Вверх
Bodrox
  Дата 3.6.2005, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 14.4.2004
Где: Чебоксары

Репутация: нет
Всего: нет



А если у меня есть ADOTable к DBGrid'у (MSAccess), а сортить вы предлагаете через ADOQuery, то как это привить на один DBGrid... Или как вариант, как сделать так, чтобы при добавлении через ADOQuery автоматически происходила сортировка по поле-счётчику? smile

Это сообщение отредактировал(а) Bodrox - 3.6.2005, 12:30
PM MAIL   Вверх
Bodrox
Дата 3.6.2005, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 14.4.2004
Где: Чебоксары

Репутация: нет
Всего: нет



И ещё, как получить значение поля в DBGrid, на котором фокус находится или на которое только что мышкой щёлкнул?
PM MAIL   Вверх
innok
Дата 4.6.2005, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.10.2004

Репутация: 1
Всего: 1



Bodrox
1.посмотри свойство Sort. вот из хелпа:
Цитата

Specifies the sort order of the recordset.

Delphi syntax:

property Sort: WideString;



Description

Set Sort to establish or change the list of fields on which the recordset is sorted. Set sort to the name of a single field or to a comma-separated list of fields. Each field may optionally be followed by the keyword ASCENDING or DESCENDING to specify a sort direction for the field. If one of these keywords is not used, the default sort direction for the field is ascending. Set Sort to an empty string to reset the recordset to the sort order originally used when the recordset’s data was first retrieved.

ADOQuery1.Sort := 'LastName ASC, DateDue DESC'
ADOQuery1->Sort = "LastName ASC, DateDue DESC"

Read Sort to determine the field (or fields) on which the recordset is sorted.

2.
Код


DBGrid1.DataSource.DataSet.FieldByName(......)......



Это сообщение отредактировал(а) innok - 4.6.2005, 17:49
PM MAIL   Вверх
Rubin
Дата 6.6.2005, 20:24 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Предлагаемым методом
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  with query1 do
  begin
   close;
   sql.Clear;
   sql.Add('Select id,fam,name,adres,tel,email');
   sql.Add('FROM "C:\Program Files\Common Files\Borland Shared\Database Desktop\WorkDir\adrbook.db"');
   sql.Add('order by fam');
   execSQL;
   end;

end;

Сортировка не пашет. После выполнения запроса остается не активный грид smile и один столбик. я уже не знаю что делать
  Вверх
innok
Дата 7.6.2005, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 12.10.2004

Репутация: 1
Всего: 1



Цитата
execSQL;


вообще то, если используется select, то нужно Open. Или свойство Active:=True;
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0857 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.