![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибки при открытии таблиц
Ренат © (2002-08-08 09:28:00)Есть несколько таблиц Используются в программе на foxpro
При открытии некоторых(не всех) в delphi вываливаются ошибки BDE
Could not find language drive и Invalid index descriptor
Как это дело все исправить?
Anatoly Podgoretsky (2002-08-10 19:51:00) [1]Str и еще с десяток BDE понимает, так как сам dBase работает с тем же BDE
Есть ряд вещей которые не понимает, одна из них если языковый драйвер 1251 - вот это не понимает, вероятно ты на язык таблицы и нарвался, судя по сообщению.
Desdechado (2002-08-10 19:34:00) [2]имхо, в ключе индекса используются встроенные функции Foxpro, например:
для числового поля NN:
Str(NN)
БДЕ их, естественно, не понимает :(
Ренат (2002-08-08 15:23:00) [3]настолько что не открываются
Ренат (2002-08-08 15:23:00) [4]в том-то и дело что секретные
Leran2002 (2002-08-08 15:12:00) [5]Знаешь если можешь скинь таблицы мне на ящик (лучше в запакованном виде), я поручаю их на своем компе (ну конечно если это не секретные материалы)…
Вот мой ящик: menshov_s@mail.ru
Leran2002 (2002-08-08 15:00:00) [6]Да парюсь я уже...
Все точно здаюсь, мыслей нет... Еще раз сорь что не смог помочь...
Ренат (2002-08-08 14:51:00) [7]Tbl.Active:=TRUE;
А эта строка что по твоему делает?
Leran2002 (2002-08-08 14:35:00) [8]А открывать ее не надо, просто укажи ее в свойстве TableName...
Ренат (2002-08-08 14:31:00) [9]так я ж таблицу не могу открыть
Leran2002 (2002-08-08 14:24:00) [10]Регенерация это что-то типа пересоздания индексов, вот тебе кусок кода (только перед тем как запускать закрой свой проект, а-то 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:13:00) [11]переиндексировать да
а что значит регенереция?
Leran2002 (2002-08-08 13:53:00) [12]Подожди, а переиндексировать таблицы не пробывал, или зделать регенерацию индексов???
Leran2002 (2002-08-08 13:51:00) [13]
> Ренат © (08.08.02 13:49)
Все здаюсь, мыслей нет... Сорь что не смог помочь...
Ренат (2002-08-08 13:49:00) [14]Нет таблицы там не открываются кодовая страница у них dBase rus cp866
Проблема в каком-то глюке только не пойму где. Потому как например беру удаляю простой индекс у таблицы состоя щий из 1 поля и все открывается Только при чем ошибка в языковом драйвере непонятно?
Leran2002 (2002-08-08 13:41:00) [15]Подождика я кажись не внимательно прочитал вопрос, кажись проблема в языковом драйвере, попробуй открыть таблицу при помощи DBDesktop (надеюсь она откроется), сделай Restructure, там в Table Properties есть Table Language, потом Modify, и там попробуй поставить что нить другое...
Ренат (2002-08-08 13:29:00) [16]Да проблема в другом как-то коряво все работает
То delphi сваливается при открытии таблицы, то Table does not exist
Может это из-за драйвера Microsoft Visual FoxPro Driver
потому что таблицы на какой-то древней версии foxpro
только при выборе других драйверов dBase или foxpro driver появляется ошибка ODBC что не удется загрузить программы для установки драйвера из-за системной ошибки
Leran2002 (2002-08-08 13:16:00) [17]При помощи ODBC Administrator - Remove...
Че никак не хочет идти???
Ренат (2002-08-08 13:09:00) [18]Естественно только как интересно эти алиасы удаляются?
Leran2002 (2002-08-08 12:11:00) [19]Ты выбрал Free Table directory при создании Алиаса???
Ренат (2002-08-08 11:45:00) [20]Что-то получается но почему-то из 4 таблиц из каталога открывается только одна в разное время другая а так выдается ошибка table does not exists