Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADO, DBase, индексы [dBase, FoxPro]


YuRock ©   (2004-02-10 14:58:00) 

Уважаемые мастера!
Давно не работал с dbf"ками, но вот, к сожалению пришлось...
Взял TADOConnection, TADOTable, в ADOConnection.ConnectionString прописал "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Файлы dBASE"... Все работает, данные получаю.

Но вот пришла проблема с индексами: при попытке удаления индекса получаю сообщение: "[Microsoft][Драйвер ODBC dBase] Ошибка синтаксиса в инструкции DROP TABLE или DROP INDEX".

Делаю так: беру ADOCommand, делаю так:

CommandType := cmdText;
CommandText := "DROP INDEX "Table.dbf".IDX_NAME";
Execute;

На Executeвыскакивает выше описанная ошибка. Не подскажете, в чем может быть проблема?


YuRock   (2004-02-10 16:48:00) [1]

Спасибо, заработало (правда, не полностью), но в моем случае действительно легче и быстрее использовать TDBF, а то я смотрю, тут мне уникальный индекс делать прийдется...
В общем, извиняюсь за беспокойство, еще раз спасибо.


sniknik   (2004-02-10 16:37:00) [2]

хотя если таблица у тебя именно так и называется (зарезервированное слово) то надо так
"DROP INDEX IDX_NAME ON [Table]";


sniknik   (2004-02-10 16:33:00) [3]

проверь, вместо
"DROP INDEX "Table.dbf".IDX_NAME";
это
"DROP INDEX IDX_NAME ON Table";


sniknik   (2004-02-10 16:31:00) [4]

ну так ты же не LOCAL SQL пользуешся! у тебя ADO - Файлы dBASE (драйвер ODBC или Jet в зависимости от апгрейда/системы)

смотри в другом хелпе, JETSQL40.CHM с поставкой MS офиса идет (поиши у себя на машине)


YuRock   (2004-02-10 16:09:00) [5]

> sniknik © (10.02.04 15:53) [2]

Синтаксис (из хелпа):
DROP INDEX table_reference.index_reference | PRIMARY

Пример (из хелпа):
DROP INDEX "Employee.dbf".Namex

похоже на твое? Не надо путать DROP с CREATE!


sniknik   (2004-02-10 15:53:00) [6]

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

Синтаксис
DROP {TABLE таблица | INDEX индекс ON таблица | PROCEDURE процедура | VIEW представление}

похоже на твое?


YuRock   (2004-02-10 15:35:00) [7]

Если ни у кого идей нет - то и не нужно себя утруждать. Спасибо.

Я тут нашел компонент TDBF, и он помог (его возможностей мне хватит).


Наверх

Титульная страница Поиск, карта сайта Написать письмо