Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить указатель на строку в Table1.Fields[2].AsString ? [D3]


TTable ©   (2007-04-25 02:24:00) 


procedure TForm1.Button3Click(Sender: TObject);      
begin
Table1.First;
  ShowMessage(Table1.Fields[2].AsString);
Table1.Next;
  ShowMessage(Table1.Fields[2].AsString);
end;


При доступе к Table1.Fields[2].AsString результат выводится в виде вопросительных знаков ??????, т.к. кодировка таблицы неизвестна. Можно ли как-нибудь получить доступ напрямую к тем ячейкам памяти, где хранятся данные, что бы узнать их char-коды?


TTable   (2007-04-28 15:01:00) [1]

Всё, проблему я решил установив вот эти бесплатные компоненты -

http://torry.net/db/direct/ms_access/ODA356os.exe
http://www.opus.ch/OpenSource/DirectAccess/Documentation/Default.htm

Они понимают unicode через WideString.


sniknik   (2007-04-25 20:32:00) [2]

нет видимо, надо импортировать Microsoft ActiveX Data Objects (msado15.dll) там описание типов/обьектов ADO, вот с ними и работать... в принципе можно и без них через вариант, но с описаниями проще... хотя ты и с описаниями "упаришся", еще проще 7делфю поставить, и готовые компоненты использовать.


TTable   (2007-04-25 20:10:00) [3]

> MessageBoxW(0, PWideChar(WideString(Table1.Fields[2].Value)), 'Unicode', MB_OK + MB_ICONINFORMATION);

Этим способом результат тот же - вопросительные знаки - значит дело в драйвере базы данных, буду пробовать через ADO.

>хотя... в D3 есть импорт библиотеки типов?

Есть Import ActiveX Control, я экспортировал TAdodc это оно?


Плохиш   (2007-04-25 16:11:00) [4]


> TTable   (25.04.07 02:24)  


MessageBoxW(nil, PWideChar(WideString(Table1.Fields[2]. Value)), 'Unicode', MB_OK + MB_ICONINFORMATION);


sniknik   (2007-04-25 15:47:00) [5]

хотя... в D3 есть импорт библиотеки типов? тогда можно непосредственно с обьектами ADO работать. попробуй.


sniknik   (2007-04-25 15:45:00) [6]

> Это элементарно,
исходные коды BDE и ODBC драйверов есть? тогда да, элементарно, пару тройку лет работы в одиночку и программа почти готова...

> к тому же цель - вывод в файл в юникоде.
> Сама база данных в формате access (*.mdb)
тогда прощай D3 и BDE, здравствуй D7(оптимум имхо, чтото >= D5), ADO и TNT (необязательно для записи в файл, но если нужно отображение то не обойтись)


TTable   (2007-04-25 14:35:00) [7]

>юникод... на 95%

Да, скорее всего юникод.

>не поможет, если только не сделаешь (самостоятельно ?) поддержку юникода на всех этапах.

Это элементарно, к тому же цель - вывод в файл в юникоде.

Сама база данных в формате access (*.mdb)


sniknik   (2007-04-25 02:48:00) [8]

> т.к. кодировка таблицы неизвестна.
юникод... на 95%

> получить доступ напрямую
не поможет, если только не сделаешь (самостоятельно ?) поддержку юникода на всех этапах.
> Table1
BDE? все, забудь о поддержке. лучше попытайся настроить сервер/коннект (чего там у тебя?) чтобы выдавал/конвертил строки в ansi стандарте.


Наверх

Титульная страница Поиск, карта сайта Написать письмо