Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.02;
Скачать: CL | DM;

Вниз

Ошибки при открытии таблиц   Найти похожие ветки 

 
Ренат ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
1-3464
Life
2002-08-19 12:38
2002.09.02
код символа


14-3579
Ev_genus
2002-08-06 11:27
2002.09.02
Словарь русских имён и фамилий


14-3609
AL2002
2002-08-01 18:40
2002.09.02
---|Ветка была без названия|---


3-3285
angelcom
2002-08-08 19:53
2002.09.02
Еще один вопрос о времени...


1-3339
Smok_er
2002-08-21 18:27
2002.09.02
DblClick на Tab e PageControl a