Индексация баз
Подскажите кто нить, как правильно переидексировать базу. Например *.dbf ?
Цитата:
Originally posted by Тимофей
Подскажите кто нить, как правильно переидексировать базу. Например *.dbf ?
Подскажите кто нить, как правильно переидексировать базу. Например *.dbf ?
Как dbf не знаю, наверное просто в десктопе удалить все индексы, а потом создать новые. А SQL-базы при восстановлении из бэкапа позволяют не восстанавливать индексы - есть такая опция. Включаешь её, а потом создаёшь новые индексы.
Ты SQL знаешь? Так вот есть такая вещь как CREATE INDEX. Точный систаксис я не помню, но если сам не найдешь то могу посмотреть. То есть ты загружаешь строку в Query и выполняешь, а база индексируется.
Цитата:
Originally posted by SEDEGOFF
Ты SQL знаешь? Так вот есть такая вещь как CREATE INDEX. Точный систаксис я не помню, но если сам не найдешь то могу посмотреть. То есть ты загружаешь строку в Query и выполняешь, а база индексируется.
Ты SQL знаешь? Так вот есть такая вещь как CREATE INDEX. Точный систаксис я не помню, но если сам не найдешь то могу посмотреть. То есть ты загружаешь строку в Query и выполняешь, а база индексируется.
SQL я не знаю. Опиши весь путь индексации поподробнее плз. Че-то про строку я совсем не понял, что ты хотел этим сказать.
Цитата:
Originally posted by Тимофей
SQL я не знаю. Опиши весь путь индексации поподробнее плз. Че-то про строку я совсем не понял, что ты хотел этим сказать.
SQL я не знаю. Опиши весь путь индексации поподробнее плз. Че-то про строку я совсем не понял, что ты хотел этим сказать.
Учи.. :)) Без SQL тут никак..
ID - уникальный номер
FAM - фамилия
NAME - ИМЯ
LNAME - Отчество
KOD - код подраздиления
Помещаешь на свою форму компонент Query, указываешь АЛИАС и в программе пишешь
//
String quer;
quer = "CREATE INDEX FIO ON SOTR FAM, NAME, LNAME";
Query1->SQL->Clear();
Query1->SQL->Add(quer);
Query1->ExecSQL();
Query1->Close();
//Этим мы создали сложный индекс
quer = "CREATE INDEX PODR ON SOTR KOD";
Query1->SQL->Clear();
Query1->SQL->Add(quer);
Query1->ExecSQL();
Query1->Close();
//этим мы создали простой индекс для одного поля
А не проще ли создавать индекс свойствами компоненты Table.
Table->AddIndex("CODindex","COD",TIndexOptions()<< ixDescending);
Только вот если он (индекс)уже есть Билдер ругается.
Зачем исплоьзовать ещё один компонент SQL?
Query нужен для использования твоей программы в сети. Вот например у тебя в БД 30000 записей, а тебе нужно выбрать только людей с фамилей "череззабороногузадерищенко", так вот когда ты ставиш фильтер в табле, твоя программа всеравно получает 30000 записей, что локально не страшно, а попробуй через сеть погонять такой объем, а если у тебя одновременно открыты 10 БД, получается жопа. Query возвращает именно столько записей сколько нужно.
И вообще, несмотря на удобность Table лучше для работы с большиме базами данных пользоваться компонентой Query и SQL. Так что учи SQL, там ничего сложного нет
Подскажите где мона доку "для идиотов" по SQL скачать.
Спасибо.
Цитата:
Originally posted by Тимофей
В плюсях SQL я никогда не сомнивался, теорию вроде знаю немного а вот на практике никогда применять не приходилось, только на бумажках запросы писал когда в универе учился.
Подскажите где мона доку "для идиотов" по SQL скачать.
Спасибо.
В плюсях SQL я никогда не сомнивался, теорию вроде знаю немного а вот на практике никогда применять не приходилось, только на бумажках запросы писал когда в универе учился.
Подскажите где мона доку "для идиотов" по SQL скачать.
Спасибо.
mysql.ru там в доках все найдешь..
Ну или