powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Кто нибудь работает в PB 11 или 12 с dbf через ODBC
11 сообщений из 11, страница 1 из 1
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36853052
Oleg_res
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
Используем данный интерфейс для импорта и экспорта.
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36853547
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает.
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36853895
Oleg_res
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это хорошо.
Какие драйвера пользуете?
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36855031
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_resКакие драйвера пользуете?
driver do Microsoft dBase (*.dbf)
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36855181
Oleg_res
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в 866 кодировку выгружает?
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36855367
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_resА в 866 кодировку выгружает?
Выгружаем в 866. А какое отношение имеет кодировка текстовой строки к работе драйвера?
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36855467
Oleg_res
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Локшин МаркOleg_resА в 866 кодировку выгружает?
Выгружаем в 866. А какое отношение имеет кодировка текстовой строки к работе драйвера?

Мы работаем с DataDirect dBASE (с PB9 шли )
Почти все DBF файлы нужно выгружать в 866 кодировке.
Поэтому к профайлу ODBC у нас подсоденен транслятор, который автоматически переводит кодировку 1251 в 866. Т.е. в коде просто пишем Insert ..('Иванов', ...), а в DBF ке уже "Иванов" в 866 кодировке.
С учетом этого написано много кода.
С PB11 эти драйвера отказываются работать.
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36855560
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_resПоэтому к профайлу ODBC у нас подсоденен транслятор, который автоматически переводит кодировку 1251 в 866. Т.е. в коде просто пишем Insert ..('Иванов', ...), а в DBF ке уже "Иванов" в 866 кодировке.
Каким образом это сделано?
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36855666
Oleg_res
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Настройка драйвера -> вкладка advanced -> Кнопка Translate.
нажать и выбрать транслятор от ASA 5
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36855682
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_resНастройка драйвера -> вкладка advanced -> Кнопка Translate.
нажать и выбрать транслятор от ASA 5
У нас переводится программно. И если это интерфейс для импорта/экспорта, то я не поверю что там слишком много менять нужно.
...
Рейтинг: 0 / 0
Кто нибудь работает в PB 11 или 12 с dbf через ODBC
    #36855939
Для PB9 работало так - мб поможет
Здесь MS driver
Изменение кодировки предусмотрено

// Создаем ODBC источник для работы с dbf через Microsoft dBase Driver (*.dbf)
string Driver
RegistrySet( "HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\dbfimp","DefaultDir", RegString!, 'C:\PFLEX.RT\DBFIMP')
RegistryGet( "HKEY_LOCAL_MACHINE\Software\ODBC\ODBCINST.INI\Microsoft dBase Driver (*.dbf)","Driver", RegString!, Driver)
// Microsoft dBase Driver (*.dbf)
if Driver='' then // Для Висты предположительно так
Driver='c:\windows\system32\odbcjt32.dll'
end if
RegistrySet( "HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\dbfimp","Driver", RegString!, Driver)
RegistrySet( "HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\dbfimp","Fil", RegString!, "dBase III")
RegistrySet( "HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\dbfimp","DriverId", ReguLong!, 21)
RegistrySet( "HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\dbfimp\Engines\Xbase","CollatingSequence", RegString!, 'ASCII')
// по умолчанию OEM если надо другое менять перед коннектом и возвращать взад после
// обязательно enablebde(false) - enablebde(true) при коннекте см комментарий функции
RegistrySet( "HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\dbfimp\Engines\Xbase","DataCodePage", RegString!, 'OEM')

----------------------------------------

global type enablebde from function_object
end type

forward prototypes
global subroutine enablebde (boolean vkl)
end prototypes

global subroutine enablebde (boolean vkl);// Отключает/включает BDE для операций с dbf файлами
// При установленной BDE драйвер Microsoft Dbase Driver работает некорректно
// Как выход "HKEY_LOCAL_MACHINE\Software\Borland\Database Engine","DLLPATH" модифицируется на время исполнения запроса
// False - выключаем (перед выполнением подключения)
// True - включаем (после выполнения подключения)

string dllpath
dllpath=''
Registryget( "HKEY_LOCAL_MACHINE\Software\Borland\Database Engine","DLLPATH", RegString!, dllpath)
if vkl then
if lower(left(dllpath,9))='fdisable_' then
RegistrySet( "HKEY_LOCAL_MACHINE\Software\Borland\Database Engine","DLLPATH", RegString!, mid(dllpath,10))
end if
elseif len(dllpath)>0 then
RegistrySet( "HKEY_LOCAL_MACHINE\Software\Borland\Database Engine","DLLPATH", RegString!, 'fdisable_'+dllpath)
end if

end subroutine



PS
DataDirect кардинально лучше работал
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Кто нибудь работает в PB 11 или 12 с dbf через ODBC
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]