Главная страница
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.048 c
8-1079639405
maxXP
2004-03-18 22:50
2004.05.30
Как растянуть видео на всю panel?


1-1084718369
Coder
2004-05-16 18:39
2004.05.30
Программа для автоматизированного проектирования гидросхем


3-1084046913
ser_ega
2004-05-09 00:08
2004.05.30
Database Desktop


4-1081727678
Matveyev
2004-04-12 03:54
2004.05.30
Drag & Drop с Провоодником Windows


9-1075429776
Magikan
2004-01-30 05:29
2004.05.30
Игрушки на pascal-скриптах