![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с открытием pFIBDataSet по FB 1.5.1 [D7, FireBird]
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 тотже, что и у базы данных.