Форум: "Базы";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
ВнизОшибки при открытии таблиц Найти похожие ветки
← →
Ренат (2002-08-08 09:28) [0]Есть несколько таблиц Используются в программе на foxpro
При открытии некоторых(не всех) в delphi вываливаются ошибки BDE
Could not find language drive и Invalid index descriptor
Как это дело все исправить?
← →
Leran2002 (2002-08-08 11:00) [1]Скорее всего тебе нужно соединиться с базой при помощи ODBC:
BDE Administrator
Object -> ODBC Administrator
Add... Ну а там выбираешь нужный драйвер (тебе наверное подойдет Microsoft Visual FoxPro Driver) и давишь на Готово, а дальше я думаю ты уже сам разберешься...
Желаю удачи.
← →
Leran2002 (2002-08-08 11:05) [2]Ах да забыл еще выгрузи и загрузи по новой BDE Administrator (ато он что-то не обновляется автоматически), и там появится новый Алиас созданный при помощи ODBC Administrator.
← →
Ренат (2002-08-08 11:45) [3]Что-то получается но почему-то из 4 таблиц из каталога открывается только одна в разное время другая а так выдается ошибка table does not exists
← →
Leran2002 (2002-08-08 12:11) [4]Ты выбрал Free Table directory при создании Алиаса???
← →
Ренат (2002-08-08 13:09) [5]Естественно только как интересно эти алиасы удаляются?
← →
Leran2002 (2002-08-08 13:16) [6]При помощи ODBC Administrator - Remove...
Че никак не хочет идти???
← →
Ренат (2002-08-08 13:29) [7]Да проблема в другом как-то коряво все работает
То delphi сваливается при открытии таблицы, то Table does not exist
Может это из-за драйвера Microsoft Visual FoxPro Driver
потому что таблицы на какой-то древней версии foxpro
только при выборе других драйверов dBase или foxpro driver появляется ошибка ODBC что не удется загрузить программы для установки драйвера из-за системной ошибки
← →
Leran2002 (2002-08-08 13:41) [8]Подождика я кажись не внимательно прочитал вопрос, кажись проблема в языковом драйвере, попробуй открыть таблицу при помощи DBDesktop (надеюсь она откроется), сделай Restructure, там в Table Properties есть Table Language, потом Modify, и там попробуй поставить что нить другое...
← →
Ренат (2002-08-08 13:49) [9]Нет таблицы там не открываются кодовая страница у них dBase rus cp866
Проблема в каком-то глюке только не пойму где. Потому как например беру удаляю простой индекс у таблицы состоя щий из 1 поля и все открывается Только при чем ошибка в языковом драйвере непонятно?
← →
Leran2002 (2002-08-08 13:51) [10]
> Ренат © (08.08.02 13:49)
Все здаюсь, мыслей нет... Сорь что не смог помочь...
← →
Leran2002 (2002-08-08 13:53) [11]Подожди, а переиндексировать таблицы не пробывал, или зделать регенерацию индексов???
← →
Ренат (2002-08-08 14:13) [12]переиндексировать да
а что значит регенереция?
← →
Leran2002 (2002-08-08 14:24) [13]Регенерация это что-то типа пересоздания индексов, вот тебе кусок кода (только перед тем как запускать закрой свой проект, а-то Delphi будет блокировать таблицу, или вообще закрой Delphi):
uses BDE;
...
{Регенерация индексов таблицы Базы Данных (проверялось только на файлах DBF)
Здесь, если 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;
procedure TForm1.Button3Click(Sender: TObject);
var
Er:byte;
begin
TableRegenIndexes(Er,Table1);
end;
← →
Ренат (2002-08-08 14:31) [14]так я ж таблицу не могу открыть
← →
Leran2002 (2002-08-08 14:35) [15]А открывать ее не надо, просто укажи ее в свойстве TableName...
← →
Ренат (2002-08-08 14:51) [16]Tbl.Active:=TRUE;
А эта строка что по твоему делает?
← →
Leran2002 (2002-08-08 15:00) [17]Да парюсь я уже...
Все точно здаюсь, мыслей нет... Еще раз сорь что не смог помочь...
← →
Leran2002 (2002-08-08 15:12) [18]Знаешь если можешь скинь таблицы мне на ящик (лучше в запакованном виде), я поручаю их на своем компе (ну конечно если это не секретные материалы)…
Вот мой ящик: menshov_s@mail.ru
← →
Ренат (2002-08-08 15:23) [19]в том-то и дело что секретные
← →
Ренат (2002-08-08 15:23) [20]настолько что не открываются
← →
Desdechado (2002-08-10 19:34) [21]имхо, в ключе индекса используются встроенные функции Foxpro, например:
для числового поля NN:
Str(NN)
БДЕ их, естественно, не понимает :(
← →
Anatoly Podgoretsky (2002-08-10 19:51) [22]Str и еще с десяток BDE понимает, так как сам dBase работает с тем же BDE
Есть ряд вещей которые не понимает, одна из них если языковый драйвер 1251 - вот это не понимает, вероятно ты на язык таблицы и нарвался, судя по сообщению.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.008 c