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

Вниз

Проблема с кодировкой   Найти похожие ветки 

 
DPetrovich ©   (2002-05-08 12:25) [0]

Пытаюсь подключить dbf-ку сформированную в 1C через ADO, но возникает проблема с кодировкой. Менял настройку CharSet в DBGrid - не помогает... Если кто сталкивался, подскажите, пожалуйста!


 
Reindeer Moss Eater   (2002-05-08 12:28) [1]

Обнули 30-й байт в заголовке dbf


 
MONSTER   (2002-05-08 12:29) [2]

Аналогично! Но я подсоединялся не через ADO. Лазил по ODBC. Программка DBCommander работает через BDE откравает как милая, без проблем! А в Delphi и SQL server-е зябры! Кто поможет решить, отблагодарю, сдам алгоритм движения документов в Бухгалтерии (по DBF-файлам) Как и что делают бухгалтера я не знаю.. :)


 
DPetrovich ©   (2002-05-08 12:33) [3]

Reindeer Moss Eater, каким образом?


 
Reindeer Moss Eater   (2002-05-08 12:37) [4]

Можно точечным лазерным ударом в нужный магнитный домен на винте.
А можно и используя FileWrite


 
MONSTER   (2002-05-08 12:40) [5]

МЫСЛИ ВСЛУХ: все равно копию делать, я вручную попробовал, не получается! И потом "в заголовке" это где?


 
Reindeer Moss Eater   (2002-05-08 12:41) [6]

В заголовке файла Дибейса конечно же


 
MONSTER   (2002-05-08 12:43) [7]

ВОПРОС!
Как я могу вычленить заголовок, от "ТЕЛА"? Или это просто 30-й байт с начала файла????


 
MONSTER   (2002-05-08 12:44) [8]

Reindeer Moss Eater
Если не в лом:
ICQ 150153967


 
MONSTER   (2002-05-08 12:49) [9]

Слышь, прикалываешься?


 
Reindeer Moss Eater   (2002-05-08 12:51) [10]

Это просто тридцатый байт от начала файла.
Перед тем как это делать надо убедиться что первый байт < $4
Потому что в версиях выше третьей cp хранится по иному


 
MONSTER   (2002-05-08 12:59) [11]

Давай по-простому:
.f......A.......................ID......
или
03660508830000004102DC0000000000000000000000000000000000010000004944000000000000
Как должно быть???
(Это первые байты DBF-а)


 
Reindeer Moss Eater   (2002-05-08 13:02) [12]


function DBaseLangPatch(const fName:string):boolean;
var H:Integer; MyArray:array[1..30] of Byte;
begin
Result:=False;
if not FileExists(fName) then Exit;
FillChar(MyArray,30,0);
try
try
H:=FileOpen(fName,fmOpenReadWrite or fmShareExclusive);
except
MessageDlg("Ошибка монопольного доступа к файлу",mtError,[mbCancel],0);
Exit;
end;
FileRead(H,MyArray,30);
if MyArray[1] >= $04 then
begin
Result:=True;
Exit;
end;
if MyArray[30] <> $0 then
begin
MyArray[30]:=$0;
FileSeek(H,0,0);
FileWrite(H,MyArray,30);
end;
Result:=True;
finally
FileClose(H);
end;
end;


 
Reindeer Moss Eater   (2002-05-08 13:06) [13]

При открытии файла Dbase BDE смотрит что написано в 30 байте заголовка. Если он не равен нулю, то BDE верит, что данные там лежат в той кодовой странице, что написано в заголовке.
Если байт нулевой, БДЕ считает что данные лежат в кодовой странице указанной для Dbase в системных параметрах.


 
MONSTER   (2002-05-08 13:07) [14]

Прикол в том, что 30-й байт у меня 0! СМ образец выше! а откуда ты взял это решение? Может стоит покопать первоисточник? Или ты и есть первоисточник?


 
MONSTER   (2002-05-08 13:09) [15]

Ок! Вот за это спасибо. Есть над чем подумать! Хорошо, др. вопрос а разве Delphi работает не через BDE? СТОП! ODBC? Думаю........


 
Reindeer Moss Eater   (2002-05-08 13:09) [16]

Так и копай первоисточник, формат Dbase открыт, в отличие от парадокса.

Если байт = 0, исправь параметры в BDE админе. Либо у тебя версия dbase > 3


 
MONSTER   (2002-05-08 13:10) [17]

У меня нет! У 1С да! Dbase5!


 
Reindeer Moss Eater   (2002-05-08 13:13) [18]

Если речь идет о файлах экспорта, то попроси у 1C сохранять данные в DBase III.
А иначе изучай формат заголовка Dbase5


 
MONSTER   (2002-05-08 13:22) [19]

Нет! Речь идет не о файлах экспорта! Нужно реалтайм!


 
MONSTER   (2002-05-08 14:00) [20]

YES!!!
Я его сделал! Не через ADO! Все нормально!
Ну!!! Ура!


 
MONSTER   (2002-05-08 14:01) [21]

Ну что же теперь попробуем не через BDE!



Страницы: 1 вся ветка

Текущий архив: 2002.05.30;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.009 c
3-97121
Great DAN
2002-05-04 11:44
2002.05.30
Как работать с Quick Report


14-97390
asafr
2002-04-18 18:58
2002.05.30
О пивной зависимости...


6-97366
новенький в Делфи
2002-03-19 18:45
2002.05.30
Виснет сканер портов


1-97351
dlK
2002-05-20 11:57
2002.05.30
При открытии проекта происходит подсвечивание клавиши и пункта ме


3-97196
kserg@ukr.net
2002-05-07 17:36
2002.05.30
Кто работал с данными типа Time - подскажите