Господа, возникла следующая проблема:
имеется некоторое приложение которое работает с двумя БД (базы соответственно в PARADOX) через BDE, назовем их A_DB и B_DB, с помошью компонента TBatchMove переношу данные из таблицы aTable, которая находится в базе A_DB в таблицу bTable, которая находится в базе B_DB (таблицы имеют одинаковую структуру). При копировании используется функция следующего вида
Код
Попробуйте использовать ADO или ODBC - там свои внутренние перекодировщики есть или используйте промежуточный буфер для декодирования из codepage 866 -> 1251 и назад
//(codepage 866 -> 1251)
CString CPlaschadkaDlg::WINConvert( CString m_strDescr )
{unsigned char ch, chVal;
for ( int i=0; i<m_strDescr.GetLength(); i++ )
{chVal = (unsigned char)m_strDescr.GetAt(i);
if(chVal == 44)
m_strDescr.SetAt(i, 46);
if ( chVal >= 128 && chVal <= 159 )
m_strDescr.SetAt(i, chVal + 64 );// += 64;
if ( chVal >= 160 && chVal <= 175 )
m_strDescr.SetAt(i, chVal + 64);// += 64;
if ( chVal >= 224 && chVal <= 239 )
m_strDescr.SetAt(i, chVal + 16);// += 16;
}
return m_strDescr;
}
или
Спасибо за совет, надо будет попробовать копировать данные из одной таблицы в другую, используя ADO. Проблему с кодировками я решил следующим образом: У класса TTable есть метод
Код
Так для работы с любой базой данных я использую ADO - принцип работы - на мой взгляд - очень прост. Приведу код на VC++
Код
Большое спасибо за пример. Обязательно попробую использовать, а я в Builder обычно использую TADOConnection, TADODataSet и другие классы для работы с ADO.
Для: SVAN
Привет!
Я тут не много запоздало.....
Вообще у меня есть модуль писанный правда на Pascale, но читает все без косяков.....
Если надо обращайся солью.....
Успехов!
Привет, если не можешь, вышли пожалуйста пожалуйста исходники на SVAN@pochtamt.ru. Интересно очень посмотреть, заранее благодарен.
Цитата(Guest @ 9:02:2006, 15:21 )
Цитата(DITR @ 8:02:2006, 10:12 )
Я создаю строку ConnectionString у компонента ADOConnection. На вкладке поставщик данных выбрал Microsoft Jet 4.0 OLE DB Provider. Жму 'Далее', 'Выберите или введите имя базы данных:' - жму кнопку с троеточием, иду по дереву каталогов до того места, где у меня лежит табличка Paradox(создавал в Database Desktop). Но добравшись до нужной папки файла там нет, т.к. внизу в Типе файлов(подлежащих отображению) написано 'Базы данных Microsoft Access (*.mdb)'. Если сменить на 'Все файлы', то конечно я увижу файлы моей таблицы. Если выберу свой файл namefile.db, затем стеру слово Admin в графе 'Пользователь' и нажму 'Проверить подключение', то выдаст:"Не выполнена проверка подключения при инициализации поставщика. Нераспознаваемый формат базы данных:'C:\pathtofile\namefile.db'"
Что делать?
Delphi 7, WinXP
Сообщение отредактировал malor - 5:06:2007, 08:10
Цитата
Цитата