dbGrid 1.8rc1 показывает другие данные чем в 1.6

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

Re: dbGrid 1.8rc1 показывает другие данные чем в 1.6

Сообщение t-ea » 11.07.2008 13:23:36

DBF — это база KLADR налоговой службы РФ.
Использовать её я собираюсь очень редко и только как справочную — для поиска, то есть эта база у меня только для чтения.

Первым делом я естественно попробовал tDBF, но он не знает 866 кодовой страницы. Учитывая это, и то, что эта база периодически изменяется, и поэтому вариант — один раз переконвертировал в «удобный» формат и забыл про DBF — здесь не проходит, пришлось подключать ODBC.

Не найдя в MSE встроенного компонента для MS SQL пришлось и её, пока эсперементирую, подключить через тот же ODBC. Чуть позже, может быть попробую Zeos — я просто не знал что он поддерживает MS SQL.
t-ea
новенький
 
Сообщения: 98
Зарегистрирован: 22.09.2006 00:22:34

Re: dbGrid 1.8rc1 показывает другие данные чем в 1.6

Сообщение GrayEddy » 26.09.2008 17:17:27

В MSE 1.8 msesqlquery напрочь отказывается работать, если в таблице есть поля, тип которых nchar и nvarchar.

Текст запроса: select orderid, shipname, shippeddate from orders
Для этих полей выводятся сообщения: Datatype mismatch dataset 'msesqlquery1' field 'shipname' expected: 'ftWideString' actual 'ftUnknown'.

Тип поля shipname - nvarchar(40).

Если изменить запрос и убрать shipname - все ОК.
Юзаю MS SQL, доступ через ODBC.
База Northwind, таблица Orders.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: dbGrid 1.8rc1 показывает другие данные чем в 1.6

Сообщение debi12345 » 27.09.2008 19:50:35

Ответ Мартина пол поводу N[VAR]CHAR :
Код: Выделить всё
Probably not. I don't have MS SQL so you must fix it your self. Is utf-8 and
field type conversion no option?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: dbGrid 1.8rc1 показывает другие данные чем в 1.6

Сообщение GrayEddy » 29.09.2008 10:20:20

В опциях проекта encode выставлен в utf8. Результат отрицателен.
Для encode = locale аналогично.
Сходил на форум, смотрю - вы уже отписались об этой проблеме.
Если я правильно понял, надо завести новый тип поля ftUt8ToString.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Re: dbGrid 1.8rc1 показывает другие данные чем в 1.6

Сообщение debi12345 » 29.09.2008 21:39:39

В M$ SQL N*CHAR - не UTF8, а галимый ftWideString.

( это PostgreSQL умеет хранить юникод в UTF8 - чтобы место на диске не раздувать без причины )

Ответ Мартина :
Код: Выделить всё
Can the problem be reproduced with the free MS SQLServer Express edition on
Windows 2000? Can the reporter provide a testcase? If I get a testcase and
a link to SQLServer Express edition download which runs on Windows 2000
I'll try to fix the issue.

Суть проблемы - Мартин не уверен, что нынешняя реализация FPC SQLDB ODBCConnection умеет читать и записывать UCS2-поля при общении "клиент-сервер". В принципе, когда сильно нужно, Мартин делает свои "форки" - но ODBC пока в список нужных кому-либо не попадал ( потому что у самого ODBC-режима есть несколько неприятных ограничений ). Есть желание помочь довести до ума ?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: dbGrid 1.8rc1 показывает другие данные чем в 1.6

Сообщение GrayEddy » 29.09.2008 23:13:14

Спасибо, не стоит, задача неактуальная и решается другими средствами (коллега пишет на C#). Считайте, что это был эксперимент на проверку возможностей MSE увидеть MS SQL, он меня удовлетворил. Лазарус в аналогичной ситуации не взлетел.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Пред.

Вернуться в MSEide + MSEgui

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru