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

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

Проблема с открытием pFIBDataSet по FB 1.5.1 [D7, FireBird]


Страницы:   1 2

wipr ©   (2007-12-08 00:49:00) 

Если используется сервер FB 1.5.4, то все работает нормально (клиентское приложение написано на ПК, на котором установлен FB 1.5.4). Как только приложение переносится клиенту (у него клиент и сервер имеет FB 1.5.1) возникает ошибка:
frm.qu2.SelectQuery:
Arithmetic overflow or division by zero has occurred. Arithmetic exception, numeric overflow, or string truncation.
Cannot transliterate character between character sets.

Сдесь qu2 - это pFIBDataSet в качестве запроса выбора используется следующий текст:
SELECT *
FROM SANCTION
WHERE USERNAME=:USERNAME

открывается запрос с помощью:
 qu2.Close;
 qu2.ParamByName('USERNAME').AsString:=trim(listUser.Text);
 qu2.Open;
где listUser - это ComboBox
Ошибка возникает в момент qu2.Open;


turbouser   (2007-12-08 19:51:00) [21]


> wipr   (08.12.07 19:25) [10]

Надо взять отресторенную бд у клиента и сравнить с исходной.
Все-таки даунгрейд получается и вполне возможны какие-то проблемы.
p.s.
Почему бы и клиенту не поставить 1.5.4 ?


wipr   (2007-12-08 19:25:00) [22]


> А так ?
>
>  qu2.Close;
>  qu2.ParamCheck := false;
>  qu2.SQL.Text :=
>    'SELECT * '+#13#10+  
>    'FROM   SANCTION '+#13#10+  
>    'WHERE USERNAME= '''+trim(listUser.Text)+''' ';
>  qu2.Open;


Тоже не работает.


wipr   (2007-12-08 19:22:00) [23]

База одна передается клиенту backup -> copy -> restore
База и поле имеют WIN1251.
Проблема в том что с FB 1.5.1 не работает, а с FB 1.5.4 работает.


Desdechado   (2007-12-08 17:46:00) [24]

Почитай в ReleaseNotes, может, они поменяли версию ODS для базы. Ты как переносишь ее - через backup-restore или простым копированием?
А также помни, что чарсет можно задавать не только для БД, но и для отдельных полей.
Создаешь базу ты и потом ее отдаешь или юзер ее сам делает? Если сам, то он мог просто по умолчанию для базы другой чарсет задать, чем у тебя.
Кроме того, эта ошибка может быть от Arithmetic overflow or division by zero has occurred, string truncation., т.е. у клиента размер поля другой.


atruhin   (2007-12-08 15:49:00) [25]

Во первых пропиши в запросе поля, * - один из главных источников ошибок.
Во вторых где метаданные SANCTION ?


turbouser   (2007-12-08 14:38:00) [26]


> wipr   (08.12.07 10:03) [4]

БД - то одинаковая? Проверь CHARSET у той, что у себя и той, что у клиента.


PEAKTOP   (2007-12-08 13:45:00) [27]

А так ?

 qu2.Close;
 qu2.ParamCheck := false;
 qu2.SQL.Text :=
   'SELECT * '+#13#10+  
   'FROM   SANCTION '+#13#10+  
   'WHERE USERNAME= '''+trim(listUser.Text)+''' ';
 qu2.Open;


wipr   (2007-12-08 10:03:00) [28]

> CHARSET надо выставить у pFDataBase тотже, что и у базы
> данных.

В том то и дело что выставлено WIN1251
Но почему в FB 1.5.1 не работает, а FB 1.5.4 работает.


wipr   (2007-12-08 09:52:00) [29]


> CHARSET надо выставить у pFDataBase тотже, что и у базы
> данных.


В том то и дело что выставлено WIN1251


Виталий Панасенко(дом)   (2007-12-08 01:32:00) [30]

старая, как сам InteBase, проблема... хоть и не проблема... заскок.. есть украинский вариант загадки: ходыть, ходыть - не заходыть... а як зайде - не выгонеш!... видповидь:за..б в голову..:-)))


turbouser   (2007-12-08 01:21:00) [31]


> wipr   (08.12.07 00:49)  

CHARSET надо выставить у pFDataBase тотже, что и у базы данных.


Страницы:   1 2

Наверх

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