Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Базы данных. Создание индекса в таблице... 
:(
    Опции темы
X-Vlad
  Дата 1.4.2003, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

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



Привет всем.

у меня есть таблица с создаными колонками и заполнеными записями в ней.

насколько я знаю поиск по таблице производится по индексированым столпцам (тоесть столпец должен быть индексным)...

Вопрос как создать\удалить индекс?

Например у меня есть колонки (CPU, MOTHERBOARD, RAM, HDD ...) и я хочу чтобы при поиске можна было выбрать колонку.

помогите.

Спасибо.




--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
SmaLL
Дата 1.4.2003, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Какая БД?


--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
X-Vlad
Дата 1.4.2003, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

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



DBASE


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
X-Vlad
Дата 1.4.2003, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

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



Пробовал создать так:
Код

Var
i:integer;
begin
 i:=combobox1.ItemIndex;
with Query1 do
  begin
   databasename:=Table1.DatabaseName;
   sql.Clear;
   sql.Add('ALTER TABLE '+table1.TableName+' ADD index ('+combobox1.Items.Strings[i]+')');
   execsql;
   table1.Refresh;
  end;

невыходит. Ощибка: " незнает что такое "index"

помогите...


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
SmaLL
Дата 1.4.2003, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



DBASE не поддерживает индексов.
Лучше использовать Paradox.


--------------------
Что ни делается - всЁ к лучшему! SmallWeb
Мой адрес не дом и не улица, мой адрес родной пивзавод!
PM MAIL WWW ICQ   Вверх
X-Vlad
Дата 2.4.2003, 05:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

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



тогда каким макаром осуществляется поиск в етой базеconfused.gif??
или вней такого как поиск - вообще нету?


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
December
Дата 2.4.2003, 05:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


Профиль
Группа: Участник
Сообщений: 4423
Регистрация: 14.8.2002
Где: Харьков

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



SmaLL, с каких порconfused.gifconfused.gifconfused.gif
dBase с индексами, конечно, не лучшим образом, но работает.
X-Vlad, поиск можно Locate'ом, и ещё много какими способами.
Что касается индексов... Пример из живого проекта (удави там лишнее...)
Код
procedure IndexIt;
begin
with form1 do
   begin
   if fileexists(copy(edit1.Text,1,length(edit1.Text)-4)+'.MDX') then
                                   try
                                   RemoveIndex;
                                   finally
                                   end;
   table1.active:=false;
   Table1.AddIndex('ByName',NameFieldName,[]);
   table1.active:=true;
   table1.IndexName:='ByName';
   end;{with}
end;{IndexIt}


procedure RemoveIndex;
begin
if form1.table1.IndexName<>'' then form1.table1.IndexName:='';
try
form1.table1.DeleteIndex('ByName');
finally
end;{finally}
end;{RemoveIndex}





--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
X-Vlad
Дата 2.4.2003, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

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



Цитата
Пример из живого проекта (удави там лишнее...)
спасибо.

нашол:
Код

Добавление индекса:

procedure TForm1.Button2Click(Sender: TObject);
Var
i:integer;
begin
 i:=combobox1.ItemIndex;
 Table1.AddIndex('find', combobox1.Items.Strings[i], [ixExpression]); {ixExpression - только для баз DBASE}
 table1.Refresh;
 end;
end;

удаление индекса:

table1.DeleteIndex(listbox1.Items.Strings[0]);



ещё вопрос:
1. как создать\удалить индекс в Paradox?
2. сортировка полей происходит только когда стоит индекс?




--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
X-Vlad
Дата 2.4.2003, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

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



Пробовал делать:
Код

procedure TForm1.Button2Click(Sender: TObject);
Var
i:integer;
begin
i:=combobox1.ItemIndex;
Table1.AddIndex('find', combobox1.Items.Strings[i], [ixPrimary]);
table1.Refresh;
end;
end;

невыходит sad.gif выскакивает ошибка...


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
78125
Дата 2.4.2003, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Какая ошибка?

Уверен что добавление ixPrimary возможно?
--------------------
купим подпись
PM MAIL   Вверх
Vit
Дата 2.4.2003, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



Я бы использовал квери:

Alter Table для изменения первичного ключа
Create/Drop Index для изменения вторичных индексов


--------------------
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   Вверх
Cashey
Дата 2.4.2003, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


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

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



Цитата

1. как создать\удалить индекс в Paradox?

Если сама таблица уже описана то примерно так
Код

begin
with IndexDefs do
  begin
     with AddIndexDef do
            begin
            //название ключа для первичного индекса не требуется
            Name := ' ';
            Fields := 'ID';
            //признак первичного ключа
            Options := [ixPrimary];
            end;
   //второй индекс
     with AddIndexDef do
     begin
     Name := := ' NameInd';
     Fields := 'Name'
    end;
end
//после этого надо вызвать метод создания таблицы        



--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
Vit
Дата 2.4.2003, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



Модератор: Для дополнительных вопросов открывайте новую тему.


--------------------
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   Вверх
X-Vlad
Дата 3.4.2003, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

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



Цитата
Модератор: Для дополнительных вопросов открывайте новую тему.


у меня дозвон мне в лом потом искать свои вопросы по всему форуму, если бы сидел на выделенке вопросов нет создавал бы отдельно!!!
тем более что мои вопросы касаются одной темы Базы.


--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
Vit
Дата 3.4.2003, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


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

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



Цитата(X @ 3.4.2003, 12:05)
у меня дозвон мне в лом потом искать свои вопросы по всему форуму, если бы сидел на выделенке вопросов нет создавал бы отдельно!!!
тем более что мои вопросы касаются одной темы Базы.

Модератор:
Ваши проблемы с дозвоном вряд ли могут являтся причиной нарушений правил форума. Созданная Вами тема звучит "Базы данных., Создание индекса в таблице...", и все вопросы не относящиеся к этой теме будут рассматриваться как офтопик. А по поводу такой темы как "Базы", так может нам создать один раздел и один вопрос "программирвоание" и будем там все спрашивать и отвечать обо всём. На всех форумах существует определённый порядок - в теме должен быть один конкретный вопрос, который и обсуждается отвечающими.

Дальнейшие споры по целесообразности таких правил и обсуждение действий модератора должно проводится в разделе "Обсуждение форума".


Администрация оставляет за собой право удалять ответы, которые не относятся к теме обсуждения, а так же топики состоящие из более чем одного вопроса. Я выделяю ваш вопрос в новый топик.



--------------------
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   Вверх
Lobsang
Дата 4.4.2003, 06:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











По поводу индексов.
Индексы в таблицах создаются для ускорения поиска, но это не значит, что нельзя искать данные в не проиндексированных столбцах. Просто такой поиск - по значению, значительно медленнее.
тем не менее это совсем не означает, что следует индексировать все столбцы, поскольку для хранения индексов требуется место. Индексируй то что действительно необходимо.
  Вверх
X-Vlad
Дата 5.4.2003, 08:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 570
Регистрация: 10.4.2002
Где: Украина, Львов

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



Цитата
По поводу индексов.
Индексы в таблицах создаются для ускорения поиска, но это не значит, что нельзя искать данные в не проиндексированных столбцах. Просто такой поиск - по значению, значительно медленнее.
тем не менее это совсем не означает, что следует индексировать все столбцы, поскольку для хранения индексов требуется место. Индексируй то что действительно необходимо.


ето то что я хотел услышать...smile.gif Спасибо!



--------------------
Хорошая штука - комп..:)
www.x-vlad.com
PM MAIL WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

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


 




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


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

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