![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DbiRegenIndexes для FoxPro2.5! Помогите горю по срокам!!! [D5, dBase, FoxPro]
nic418 © (2002-08-22 09:19:00)Есть файл F1.DBF и связанный с ним индексный файл F1.CDX(FoxPro2.5). Нужно в Delphi5(под BDE) переиндексировать файл.
AddIndex - нельзя из-за структуры одного из Тэг-ов F1.CDX(Создан в Фоксе и имеет фильтр).
Пробую DbiRegenIndexes(TabDbf.Handle) - что-то не так делаю наверное!?. Помогите новичку.
nic418 (2002-08-22 11:41:00) [1]Desdechado
"помнится, было заявлено, что поддержка работы с DBF производится через MSSQL. так почему не дать ему переиндексировать БД? Если же он этого не умеет, то как он будет их использовать? Нафига такая поддержка и работа с DBF через MSSQL?!"
Несовсем такЖ
Часть комплексов переводятся на SQL2000, а часть старых-на Фоксе.
Я делаю ведение Нормативно-справочной информации. Ведётся под Делфой на SQL и синхронно должна корректировать и соответствующие файлы BF&CDX на сервере NOVELL. Должно обеспечиваться полное соответствие DBF-файлов и SQL -таблиц
Tornado (2002-08-22 11:13:00) [2]Регенерация индексов таблицы Базы Данных (проверялось только на файлах DBF)
Нужно подключить модули :
DBTables, DB, dbiProcs,DbiErrs,dbiTypes;
Здесь, если NrErr>0 , то вывод на экран сообщения об ошибке (если была ошибка).
function TableRegenIndexes(NrErr : byte;Tbl : TTable) : Boolean;
Var
YesEx,YesAct : byte;
S : String;
Res,Res1 : DBIResult;
CCC : array[0..255] of Char;
begin
YesEx:=0;
if Tbl.Exclusive then YesEx:=1;
YesAct:=0;
if Tbl.Active then YesAct:=1;
Tbl.Active:=FALSE;
Tbl.Exclusive:=TRUE;
Tbl.Active:=TRUE;
Res:=DbiRegenIndexes (Tbl.Handle);
Tbl.Active:=FALSE;
if YesEx<=0 then Tbl.Exclusive := FALSE;
if YesAct>0 then Tbl.Active:=TRUE;
if Res=0 then begin
Result:=TRUE;
end
else begin
if NrErr>0 then begin
Res1:=DbiGetErrorString (Res,CCC);
Str(Res,S);
S:="Ошибка реген.индекс.: "+S+" -> "+StrPAS(CCC)+" для : "+Tbl.TableName;
MessageBeep(mb_IconHand);
MessageDlg(S,mtError,[mbOk],0);
end;
end;
end;
Desdechado (2002-08-22 10:35:00) [3]помнится, было заявлено, что поддержка работы с DBF производится через MSSQL. так почему не дать ему переиндексировать БД? Если же он этого не умеет, то как он будет их использовать? Нафига такая поддержка и работа с DBF через MSSQL?!
nic418 (2002-08-22 09:48:00) [4]После запуска процедуры -> FI05.CDX УДАЛИЛАСЬ из папки(до запуска были DBF&CDX)!
//
Mike Kouzmine (2002-08-22 09:40:00) [5]Наверное BDE не имеет полной поддержки индексов fox. Нужен другой путь.
Виталий Панасенко (2002-08-22 09:34:00) [6]Попробуй через ODBC (Visual FoxPro driver). Должно получиться
Anatoly Podgoretsky (2002-08-22 09:31:00) [7]А что не так?
Кстати учти что Борланд рекомендует использовать таблицы FoxPro только в режиме ReadOnly