Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на Delphi

Выпуск № 067
от 30.08.2002, 15:10

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 160
Отправлено ответов: 252
Активность: 157.5 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Pablo
Статус: Профессиональный
Общий рейтинг: 131.48
URL: Моя страничка
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 116.89
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Артём Шегеда
Статус: Профессиональный
Общий рейтинг: 119.34
URL: Пристанище неодинокого программиста
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 151. Уважаемые эксперты! Помогите решить проблему с GetVolumeInformation. Результат - пустая строка! Где ... (ответов: 1)
Вопрос № 152. Насчет вопроса о TTable (в приложении) Ответ Pablo: Чтото не совсем понятно, если ты удаляешл индекс... (ответов: 2)
Вопрос № 157. Ну вот так как не всегда по твоим словам индекс хранится в том же файле, как он и называется для это... (ответов: 2)

Вопросов: 3, ответов: 5


 Вопрос № 151

Уважаемые эксперты! Помогите решить проблему с
GetVolumeInformation. Результат - пустая строка!
Где Ошибка ? Заранее спасибо!. Приложение Прилогается...


Приложение:


Вопрос отправлен: 24.08.2002, 11:00
Отправитель: Yevg

[Следующий вопрос >>] [Список вопросов]

Отвечает Pablo

Доброе время суток, Yevg!
Ну я бы в Билдере так написал:
char root[] = "c:", vol[10], filesys[10];
DWORD volsize = 10, volsn, maxcl, fsysflg, fsyssize = 10;
GetVolumeInformation(root,vol,volsize,&volsn,&maxcl,&fsysflg,filesys,fsyssize);
Символ "&" перед некотолрыми именами означает что в функцию передается не значение переменной, а ее адрес.

Ответ отправлен: 24.08.2002, 16:31
Отправитель: Pablo


 Вопрос № 152

Насчет вопроса о TTable (в приложении)
Ответ Pablo:
Чтото не совсем понятно, если ты удаляешл индекс то почему он должен быть найден?!
Потому что делфи в БД по 28 байту dbf файла, записала 1 (типа БД проиндексирована => индекс должен быть, соответсвенно 0 - непроиндексирована) и ей плевать есть он на самом деле или нет.
А Name это же имя индекса, и я впервые слышу чтоб каждый индекс содердался в одлеьном файле, помому они или
в БД держатся или все индексы в отдельном файле, но не каждый.
Переписываю клиперовскую программу, у нее каждый индекс в отдельном файле.


Приложение:


Вопрос отправлен: 26.08.2002, 03:46
Отправитель: Serzhant (Serzhant_mail@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Pablo

Добрый день, Serzhant!
Ну вот так как не всегда по твоим словам индекс хранится в том же файле, как он и называется для этого и нужно поле Name.
А по поводу удаления индекса, тебе что нужно обязательно таблица не индексированная?! Если не то апосля удаления ненужного индекса создавай какой нить фиктивный индекс например!

Ответ отправлен: 26.08.2002, 13:12
Отправитель: Pablo


Отвечает baldr

Добрый день, Serzhant!
Не знаю как в твоем клиторе, но вот я делал БД на Делфи с paradox-таблицами, так вот каждый индекс там действительно хранится в отдельном файле. Может, ты путаешь индекс и значение? В таблице может быть хоть миллион записей, но один или несколько индексов (от нуля до количества полей, кажется).

Ответ отправлен: 26.08.2002, 12:29
Отправитель: baldr


 Вопрос № 157

Ну вот так как не всегда по твоим словам индекс хранится в том же файле, как он и называется для этого и нужно поле
Name.
?!, есть у меня бд dbname.dbf, если для нее я создаю индекс
методом addindex("myindex","FieldName",[ixUnique]), то у меня создается файл, не myindex.mdx,а dbname.mdx причем dbname.dbf с подправленны заголовком, хотя я не просил делфи проявлять инициативу, может это отменить как нибудь можно, если уж вернуть все как выросло нельзя?
А по поводу удаления индекса, тебе что нужно обязательно таблица не индексированная?!
Индексированную таблицу с удаленным индексом(файлом) делфи открывать отказывается :(
фиктивный индекс например! - что это такое?
P.S. Сорри, я тебе чужое авторство присвоил.



Вопрос отправлен: 27.08.2002, 15:07
Отправитель: Serzhant (Serzhant_mail@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Артём Шегеда

Здравствуйте, Serzhant!

Я тут смотрю, вы скоро на кулаки перейдёте...
А заглянуть в Source\Vcl\dbtables.pas никто не додумался? Поищите там реализацию метода TTable.GetHandle и поймите, что средствами Borland VCL проблема индексов не решится! Повторно убедится можно, заглянув в реализацию TTable.IsXBaseTable.
То есть, нужно писать с использованием BDE. Как - приблизительно подскажу. Есть родной VCL объект TDataBase. Его свойство Handle позволит открыть таблицу вызовом DbiOpenTable. Получив Handle открытой таблицы, можно издеваться над ней так, как душе угодно, например - DbiDeleteIndex. После издевательств рекомендуется закрыть таблицу, используя DbiCloseCursor.

Ответ отправлен: 27.08.2002, 18:38
Отправитель: Артём Шегеда


Отвечает Pablo

Доброе время суток, Serzhant!
Я не понял таки зачем тебе нужно чтоб индекс был создан а хатем удален?!
Ну и правильно, один файл с индексами, который и содержит в себе все индексы к базе данных.

Ответ отправлен: 27.08.2002, 22:02
Отправитель: Pablo



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (29)
Perl (12)
Delphi (16)
Pascal (26)
Basic / VBA (11)
Java / JavaScript (13)
PHP (11)
MySQL / MSSQL (13)
Пользователю
Windows 95/98/Me (45)
Windows NT/2000/XP (31)
"Железо" (40)
Поиск информации (18)
Администратору
Windows NT/2000/XP (16)
Linux / Unix (17)
Юристу
Гражданское право (9)
Семейное право (7)
Трудовое право (8)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное