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

Вниз

ADO, BDE, FOX, dBASE: КОДИРОВКА ДОС/ВИН   Найти похожие ветки 

 
Alex_xxx ©   (2004-05-11 10:43) [0]

Подскажите, кто знает.
Дано: таблицы FOX с описаниями DOS-кодировка(исходные данные).
таблица dBASE с результатом. Тоже должна быть в ДОСе.
Из таблиц FOXa читаю через ADO.
При попытке записать в dBASE через ADO получается фигня:
....
qADOQSave.SQL.Add("insert into plucash (articul,name) values (:art,:name))";
qADOQSave.Parameters.Items[0].Value:=qADOQGet.FieldByName("ARTICUL").AsString;
qADOQSave.Parameters.Items[1].Value:=WindowsToDos(qADOQGet.FieldByName("name2").AsString);
qADOQSave.ExecSQL;
....
При замене qADOQSave на qBDESave - все отлично.

Функция WindowsToDos выглядит так:
function WindowsToDos(s:string):string;
var s1,s2:string;
begin
  s1:=s;  SetLength(s2,Length(s1));
  CharToOem(PChar(s1),PChar(s2));
  WindowsToDos:=s2;
end;

НО: хочется все сделать в ADO. Даже требыется ADO :-(

Есть ли решение этой проблемы?


 
sniknik ©   (2004-05-11 11:16) [1]

т.е. 2 коннекта к фоксу и дбасе? строки конекта какие?

или коннект один? тогда не получится (у фокса(VFP) 1251 страница в дос у dBase 866) это вариант когда нужны преобразования.
у старого фокса та же страница, и преобразования не нужны совсем (можно просто copy файлу) но ты же их делаеш (?).

функцию можно поменять (меньше места займет, или тебе за количество строк платят? ;о)))

function WindowsToDos(const s: string): string;
begin
 SetLength(result, Length(s));
 CharToOem(PChar(s),PChar(result));
end;


 
Alex_xxx ©   (2004-05-11 11:39) [2]

Строки следующие:
dbRezult.ConnectionString:="Provider=MSDASQL.1;Persist Security Info=False;"+"Extended Properties="DSN=файлы dBASE;DBQ="+PPlu+";DefaultDir="+PPlu+";DriverId=533;MaxBufferSize=2048;PageTimeout=5;"";

dbShop.ConnectionString:="Provider=MSDASQL.1;Persist Security Info=False;"+"Extended Properties="DSN=Visual FoxPro Tables;UID=;"+"SourceDB="+PShop+";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;"+"Deleted=Ye s;"";

А за количество строк мне не платят, сделал так потому, что работает, а красоты наводить некогда :-)


 
sniknik ©   (2004-05-11 12:00) [3]

со второй ничего не сделаеш как есть так и читает (настроек перекодировки нет (?) не находил/с другой стороны и в документацию сильно не углублялся)

а первую советую сменить, на
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=dBase IV;Persist Security Info=False
т.к. есть неопределенность в использовании старого ODBC драйвера, он подменяется jet-ом, и в разных вариантах будут разные настройки, и + не нужен DSN имя которого тоже может быть разным (английское/русское)
хотя при смене тоже есть варианты установлен/неустановлен BDE но их всетаки на один меньше будет ;о)
изменяется в реестре (для твоей строки это тоже скорее всего действует (значит уже подменен))
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase

DataCodePage
Этот параметр используется только в том случае, если на данном компьютере не установлено приложение BDE.
Определяет способ сохранения текстовых страниц. Возможные значения:

OEM — Преобразования из OEM в ANSI и из ANSI в OEM выполняются.
ANSI — Преобразования из OEM в ANSI и из ANSI в OEM не выполняются.
По умолчанию задается значение «OEM». Значения имеют тип String в Windows 95 и Windows NT 4.0 или тип REG_SZ в Windows NT 3.51.


да вторую тоже можно поменять (просто избавиться от DSN заменив его на имя драйвера)
Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DRIVER={Microsoft Visual FoxPro Driver};UID=;SourceDB=d:\;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"

> А за количество строк мне не платят, сделал так потому, что работает, а красоты наводить некогда :-)
так оно и быстрее будет, не только ради красоты.


 
Alex_xxx ©   (2004-05-11 12:14) [4]

Спасибо. После обеда попробую.



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

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

Наверх




Память: 0.48 MB
Время: 0.049 c
1-1084340584
Новик
2004-05-12 09:43
2004.05.30
ComboBox с горизонтальным скроллингом


1-1084944309
IrBisoff
2004-05-19 09:25
2004.05.30
MouseEnter & MouseLeave


6-1081649543
NND
2004-04-11 06:12
2004.05.30
-= Пишем ЧАТ, господа =-


14-1084177556
Всеволод Соловьёв
2004-05-10 12:25
2004.05.30
Про надмозга


8-1079855312
BenderLog
2004-03-21 10:48
2004.05.30
Как уменьшить размер графического файла?