Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
В общем создал я тему про передачу данных через jdbc в бинарном виде, никто толком не отреагировал. Ну вот ловите пример. Connection db; // The connection to the database Statement st; // Our statement to run queries with PreparedStatement ps; Class.forName("org.postgresql.Driver"); // Load the driver db = DriverManager.getConnection(url, usr, pwd); //подсоединились, тут конечно в url, usr, pwd надо предварительно положить что надо. st = db.createStatement(); st.executeUpdate("create table basic (a int2, b float4 )"); //создали табличку ps = db.prepareStatement("insert into basic values (?,?)"); float tt=(float) 1.90000009; System.out.println(" insert value=" + tt ); ps.setInt(1, 1); ps.setFloat(2, tt); ps.executeUpdate(); ps.close(); System.out.println("performing a query"); ResultSet rs = st.executeQuery("select a, b from basic"); rs.next(); int a = rs.getInt("a"); float b = rs.getFloat("b"); System.out.println("value from table=" + b); rs.close(); /////под посгресом на выдача такая insert value=1.9000001 performing a query value from table=1.9 //// вот такая вот фигня, как с этим бороться??? насколько я сам копался в исходниках драйвера, бинарной передачи для простых типов float, double, int, тама нету в принципе, может ещё какие дрова бывают? я выходов вижу только два либо менять субд где дрова нормальные, либо сворачивать свой обьект в массив байтов и запихивать это в базу в тип bytea. Но тогда как бы с таким же успехом можно пихать в файл всё это. ЗЫ: я знаю что этот эффект можно побороть увеличив точность преобразования из float в текст, это нужно делать как на клинете так и на сервере, в принципе я даже знаю как это сделать. Но на мой взгляд это вообще маразм получиться, и так конструкци уродская так ещё более уродские заплатки на это ставить надо. У кого какие мысли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2006, 21:31 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
Если это фсе прафда, и здеся никто не откликнится то: 1. Юзать http://archives.postgresql.org/pgsql-jdbc/ - для поиска проблемы 2. Юзать тоже, но сформулировав проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2006, 21:45 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
мужчина учите мат часть и не сбивайте с толку людей!!! читайте как хранятся данные в компьютере читайте про типы в постгресе учитесь, учитесь, учитесь!!!! если вам нужна умопомрачительная точность например такая 0.9000000000001 то юзайте не флоат попробуйте задать вот такой запрос из какого нить пгадмина и посмотрите что выйдет Код: plaintext я Вам уже писал что драйвера работают нормально только используйте их правильно!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2006, 22:55 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
2vfabr. мне не нужна умопомрачительная точность, проматчасть я думается знаю достаточно. Всего навсего требуется чтобы на выходе был то же набор битов что и на входе, и это не должно зависить от того как этот набор битов интрепретируется. Что вы на это скажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2006, 00:09 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
Andrey DaeronЕсли это фсе прафда, и здеся никто не откликнится то: 1. Юзать http://archives.postgresql.org/pgsql-jdbc/ - для поиска проблемы 2. Юзать тоже, но сформулировав проблему. Самое смешное что это почемуто проблемой ни кто не считает. Вывод сделан из общения нa irc://irc.freenode.net/#postgresql. Т.е. через libpq всё нормально, а в jdbc это просто не реализованно. (бинарный режим) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2006, 00:12 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
vfabrмужчина учите мат часть и не сбивайте с толку людей!!! читайте как хранятся данные в компьютере читайте про типы в постгресе учитесь, учитесь, учитесь!!!! если вам нужна умопомрачительная точность например такая 0.9000000000001 то юзайте не флоат попробуйте задать вот такой запрос из какого нить пгадмина и посмотрите что выйдет Код: plaintext я Вам уже писал что драйвера работают нормально только используйте их правильно!!! а по поводу мат части, не поскажете уважаемый чему равняются те числа которые привёл в качестве примера в hex виде а?? а я подскажу 1.90000009=1.90000009537=3FF33334 1.9= 1.89999997616=3FF33333 И чего это в последнем бите то отличие?? может быть это драйвер такой хороший, сами мат часть учите. У меня образование и работа связанна с вычислительной математикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2006, 00:25 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
я 5 постов переписал лично мне удалось через ждбц драйвера положить число 0.9000000000001 в базу да я не использовал тип колонки флоат я взял нумерик то что Вы математик только мешает (вот если бы инженер) и причем тут хексы? я думал компьютер работает на 1 и 0 и по Вашему же примеру джава тоже не должна Вас устраивать потому что float tt=(float) 1.90000009; System.out.println(" insert value=" + tt ); insert value=1.9000001 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2006, 00:43 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
Вы наверное Александр +7-926-594-1685 студент или аспирант и у Вас ужастный юношеский максимализм :-) я кстати тоже туризмом увлекался только спортивным :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2006, 01:08 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
я и не студент и не аспирант. обьясните математику уважаемый инженер, может ли вообще назывться нормальной система хранения данных в которых отсылаеш один набор битов а получаеш другой?? конкретно 3FF33334 и 3FF33333 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2006, 21:38 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
значит даю ссылку на таблицу которая называется Numeric Types (числовые типы) я отправлял Вас к ней раз 5 http://www.postgresql.org/docs/8.0/interactive/datatype.html#DATATYPE-NUMERIC-TABLE Вы используете тип float4 он же real найдите его в этой таблице и прочитайте ВСЕ колонки на строчке где описан тип real напомню какое число вы хотели в него запихнуть 1.9000001 вот сопоставив эти 2 факта я надеюсь Вы как математик и человек с высшим образованием сможете догадаться в чем была Ваша ошибка ... я мог сделать так с самого начала (ткнуть Вас носом), но обычно я привык общаться с вежливыми и умными людьми которым хватает просто намека на путь решения проблем и еще что Вы мне своими хексами тычите? я в них неразбираюсь нолики и единички пожалуйста (это физический принцип действия компьютера) десятичная система пожалуйста (я в ней зарплату получаю) а хексы это не к нам убогим :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2006, 22:01 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
vfabr и еще что Вы мне своими хексами тычите? я в них неразбираюсь нолики и единички пожалуйста (это физический принцип действия компьютера) десятичная система пожалуйста (я в ней зарплату получаю) а хексы это не к нам убогим :-) так сразу и надо было говорить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 11:13 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
ну прояснилась ситуачия? почему меняются биты :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 12:01 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
float имеет точность 6 знаков после запятой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 14:10 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
Hordifloat имеет точность 6 знаков после запятой. спасибо, я знаю но здесь это не существенно. (хотя вообще то 7) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 18:32 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
stuav Hordifloat имеет точность 6 знаков после запятой. спасибо, я знаю но здесь это не существенно. (хотя вообще то 7) Почему 7? Я про то что постгрес учитывает http://www.postgresql.org/docs/8.0/interactive/datatype.html#DATATYPE-NUMERIC-TABLE А почему здесь это не существенно? Постгрес получил float - обработал 6 знаков после запятой как и записано в документации, после этого выдал тебе правильное значение. Или я что-то не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 19:33 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
7 - это по IEEE стандарту. точная фраза: The precision is approximately one part in 2**23; typically 7 decimal digits. Почему я полагаю это не имеет отношения к делу - это потому что я всё таки полагаю что нужно по хорошему передавать число как набор битов, а не как его текстовое представление в десятичном формате. Передача в битовом режиме снимает вопрос как с потерей точности так и связанный с невозможность хешировать составные обьекты в которые входит число с плавающей точкой. Хотя в принципе с точки зрения документции конечно правильно, СУБД работает с числом как с обьектом и обрабатывает его в рамках допустимых документацией. Но всё равно не аккуратненько как то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 20:30 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
конечно те кто пишут базы данных и драйвера полные лохи вот Вас бы туда сразу бы все вопросы сняли бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 21:41 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
vfabrконечно те кто пишут базы данных полные лохив данном случае вы скорее правы, чем нет одни проблемы сруле чего стоят. очень срульные проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 10:31 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
Странный треп... Неужели трудно понять что 1) JDBC в Постгресе еще достаточно сырой. 2) Подавляющее большинство здешнего народа его не использует. 3) Тех кто использует JDBC точность его работы с float не колышет. Видимо математическое образование( в отличии от инженерного ) не позволяет сделать простейший вывод : "Если драйвер херовый - спасет только медитация над его исходниками или ежедневные мольбы к девелоперам " 8)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 11:28 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
stuav7 - это по IEEE стандарту. точная фраза: The precision is approximately one part in 2**23; typically 7 decimal digits. Почему я полагаю это не имеет отношения к делу - это потому что я всё таки полагаю что нужно по хорошему передавать число как набор битов, а не как его текстовое представление в десятичном формате. Передача в битовом режиме снимает вопрос как с потерей точности так и связанный с невозможность хешировать составные обьекты в которые входит число с плавающей точкой. Хотя в принципе с точки зрения документции конечно правильно, СУБД работает с числом как с обьектом и обрабатывает его в рамках допустимых документацией. Но всё равно не аккуратненько как то. Этот топик мне напоминает одну вещь: "зачем ты пришел?" ... - Ты знаешь, кто я? - Да. - Как ты мог догадаться? - По тому, как ты начал разговор. Ты философ. - Да, я философ. А ты - сантехник. - Да, я сантехник. Hо почесать языком я тоже люблю. Где тут у вас бачок засорился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 12:28 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
stuavХотя в принципе с точки зрения документции конечно правильно, СУБД работает с числом как с обьектом и обрабатывает его в рамках допустимых документацией. Но всё равно не аккуратненько как то. У PostgreSQL есть недостаток - он аккадемический. Т.е. если в стандарте написано, что без ORDER BY данные выводятся в произвольном порядке - то так оно и будет :) И т.д. Если в стандарте написано 7 знаков после запятой - значит так оно и будет, если в документации не указано другое. Из более интерестных примеров - работа с датами и интервалами. Более правильной работы с этим типом я не встречал, хотя в некоторых моментах жутко неудобно, и приходится изобретать странные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 12:54 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
ShweikСтранный треп... Неужели трудно понять что 1) JDBC в Постгресе еще достаточно сырой. 2) Подавляющее большинство здешнего народа его не использует. 3) Тех кто использует JDBC точность его работы с float не колышет. Видимо математическое образование( в отличии от инженерного ) не позволяет сделать простейший вывод : "Если драйвер херовый - спасет только медитация над его исходниками или ежедневные мольбы к девелоперам " 8)) Позволяет всё позволяет, даже в голову пришло сразу простейшее решение - СУБД поменять, благо всё ещё пока на этапе проектировния. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 13:48 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
stuav Позволяет всё позволяет, даже в голову пришло сразу простейшее решение - СУБД поменять, благо всё ещё пока на этапе проектировния. Угу.... главное выбрать помаститее ну типа Оракл *)) а то натолкнётесь гомологичные грабельки в FireBird/MySQL 8) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 00:07 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
Shweik stuav Позволяет всё позволяет, даже в голову пришло сразу простейшее решение - СУБД поменять, благо всё ещё пока на этапе проектировния. Угу.... главное выбрать помаститее ну типа Оракл *)) а то натолкнётесь гомологичные грабельки в FireBird/MySQL 8) Да чего все на Оракуле помешались - ну нету в нем ничего хорошего, кроме афигенной масштабируемости и расширяемости. А так - такие же сырые дрова типа ODBC и т.д. в которых есть свои тараканы которые НЕ лечатся даже разработчиками. Пример - были проблемы с деланьем запроса обновляемым через ADO+ODBC. Не получилось, хотя почему - ниизвестно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 09:55 |
|
||
|
и как после этого юзать PostrgeSQL? (особенности работы jdbc драйвера)
|
|||
|---|---|---|---|
|
#18+
Andrey Daeron...Да чего все на Оракуле помешались - ну нету в нем ничего хорошего, кроме афигенной масштабируемости и расширяемости. Там даже этого нет. В смысле - офигенной. stuavПозволяет всё позволяет, даже в голову пришло сразу простейшее решение - СУБД поменять, благо всё ещё пока на этапе проектировния. Ну попробуй что-ли IBM DB2. А вообще доку читать надо. Программа должна работать так, как написано в документации, а не так, как приспичило пользователю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2006, 11:42 |
|
||
|
|

start [/forum/search_topic.php?author=LLLLLLL&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
6ms |
get forum list: |
20ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 656ms |
| total: | 812ms |

| 0 / 0 |
