SASGIS - SAS.Планета
View Issue Details
0002886SAS.Планета[All Projects] Багpublic04-11-2015 08:5518-11-2015 09:58
sheavy 
zed 
normalminoralways
resolvedfixed 
Windows7Professional
151111 
160606160606 
0002886: Ошибка при импорте sml-файла в MS SQL
при импорте возникает ошибка
MarkSystemORM: Update operarion is failed!

да, именно так - operarion, а не operation.
Подключение к MS SQL через ODBC
в таблице Mark поле mGeoWKB остается равным NULL

Возможно проблема в длине поля lonlatarr в sml-файле. Но в mysql импорт проходит без проблем. Возможно, ограничения связаны с типом данных varbinary(max) поля mGeoWKB в MS SQL.
No tags attached.
? problem_marks2.sml (17,711) 04-11-2015 08:55
https://bugtracker.sasgis.org/file_download.php?file_id=1963&type=bug
? Categoryproblem_marks2.sml (518) 04-11-2015 10:03
https://bugtracker.sasgis.org/file_download.php?file_id=1964&type=bug
log SASPlanet 20151109 103224.log (103,716) 09-11-2015 07:51
https://bugtracker.sasgis.org/file_download.php?file_id=1973&type=bug
Issue History
04-11-2015 08:55sheavyNew Issue
04-11-2015 08:55sheavyFile Added: problem_marks2.sml
04-11-2015 10:03sheavyFile Added: Categoryproblem_marks2.sml
04-11-2015 10:19zedNote Added: 0016717
04-11-2015 11:10zedNote Added: 0016721
04-11-2015 11:10zedAssigned To => zed
04-11-2015 11:10zedStatusnew => confirmed
04-11-2015 14:38vdemidovTarget Version => 151111
05-11-2015 18:04zedNote Added: 0016733
05-11-2015 20:11zedStatusconfirmed => feedback
06-11-2015 14:05sheavyNote Added: 0016743
06-11-2015 14:05sheavyStatusfeedback => assigned
06-11-2015 18:21zedNote Added: 0016744
07-11-2015 15:27zedStatusassigned => feedback
09-11-2015 07:51sheavyFile Added: SASPlanet 20151109 103224.log
09-11-2015 07:52sheavyNote Added: 0016766
09-11-2015 07:52sheavyStatusfeedback => assigned
09-11-2015 08:14zedNote Added: 0016767
09-11-2015 08:15zedNote Added: 0016768
09-11-2015 08:17zedNote Added: 0016769
09-11-2015 14:07sheavyNote Added: 0016770
09-11-2015 14:22zedNote Added: 0016771
09-11-2015 14:30zedNote Edited: 0016771bug_revision_view_page.php?bugnote_id=16771#r6777
09-11-2015 14:59vdemidovStatusassigned => feedback
10-11-2015 10:58zedTarget Version151111 => 191221
12-11-2015 14:59zedNote Added: 0016789
12-11-2015 15:00zedStatusfeedback => resolved
12-11-2015 15:00zedFixed in Version => 191221
12-11-2015 15:00zedResolutionopen => fixed
18-11-2015 09:50vdemidovTarget Version191221 => 160606
18-11-2015 09:50vdemidovFixed in Version191221 => 160606
18-11-2015 09:58vdemidovProduct Version.Nightly => 151111

Notes
(0016717)
zed   
04-11-2015 10:19   
При попытке обновить поле mGeoWKB, когда данных более 8000 байт, вываливается сообщение от сервера: "TODBCStatement - TODBCLib error: [HY104] [Microsoft][ODBC Driver 11 for SQL Server]Недопустимое значение точности (0)\r\n".

Где тут грабли (в SAS или в настройках сервера), сходу понять не удалось.

В MySQL сталкивался с похожей проблемой при попытке вставить более 1Мб, но там быстро нагуглился параметр в конфиге, который за это отвечает - max_allowed_packet.

В MongoDB есть лимит на размер документа в 16Мб и это никаким конфигом не изменишь.

В PostgreSQL, по-моему проблем с лимитами небыло.
(0016721)
zed   
04-11-2015 11:10   
Ага, похоже таки проблема в обёртке над ODBC в mORMot. Сделал небольшой фикс и всё заработало. Сейчас надо обсудить этот фикс с разработчиками фреймворка и посмотреть, что они скажут.
(0016733)
zed   
05-11-2015 18:04   
Фикс одобрили, тестируйте следующую ночнушку.
(0016743)
sheavy   
06-11-2015 14:05   
Zed, спасибо за внимание к этому тикету. Теперь при обращении к пустым таблицам возникает ошибка EMarkSystemORMErrorr: MarkSystemORM: ID is empty!

Пробовал удалить все таблицы. При обращении к пустой базе таблицы создаются снова и возникает такая же ошибка.
(0016744)
zed   
06-11-2015 18:21   
Не воспроизводится. Пробуйте тестовую версию, которая пишет логи: https://yadi.sk/d/Y1EO3soxkHGSs
(0016766)
sheavy   
09-11-2015 07:52   
логи приложены: http://www.sasgis.org/mantis/file_download.php?file_id=1973&type=bug
(0016767)
zed   
09-11-2015 08:14   
У вас оно почему-то не может ни прочитать, ни записать имя пользователя в таблицу. В обоих случаях вываливается с ошибкой:

> [HY104] [Microsoft][ODBC SQL Server Driver]Недопустимое значение точности (0)

Попробуйте другой драйвер, например, у меня в сообщениях (в других багах) фигурирует "SQL Server Native Client 10.0".
(0016768)
zed   
09-11-2015 08:15   
Или добавьте юзера 'sasgis' руками, может заработает.
(0016769)
zed   
09-11-2015 08:17   
И вот ещё заметил, в самом начале, при попытке соединения:

> [01S00] [Microsoft][ODBC SQL Server Driver]Недопустимый атрибут строки соединения (0)

что-то у вас там лишнее/неправильное в строке соединения?
(0016770)
sheavy   
09-11-2015 14:07   
> что-то у вас там лишнее/неправильное в строке соединения?
Проверил: строка соединения скопирована с предыдущей работающей ночнушки:

Driver=SQL Server;Server=sql01; Database=SASPlanet;Integrated Security=SSPI

> Или добавьте юзера 'sasgis' руками, может заработает.
добавил пользователя с помощью предыдущей работающей ночнушки - не помогло.

> Попробуйте другой драйвер
попробую и отпишусь
(0016771)
zed   
09-11-2015 14:22   
(edited on: 09-11-2015 14:30)
>с предыдущей работающей ночнушки
Это какая версия конкретно? Через DSN подключаться пробовали? Я только так и тестирую.

(0016789)
zed   
12-11-2015 14:59   
>Driver=SQL Server;Server=sql01; Database=SASPlanet;Integrated Security=SSPI

C такой строкой, у меня тоже не работает, но работает с драйверами:

SQL Native Client
SQL Server Native Client 10.0
SQL Server Native Client 11.0
ODBC driver 11 for SQL Server

Для этих драйверов параметр "Integrated Security=SSPI" является неизвестным, о чём и выдаётся сообщение (и у вас в логах было это сообщение). Чтобы использовать Windows авторизацию, нужно добавлять параметр: "Trusted_Connection=yes;"

Рабочая строка подключения:

Driver=SQL Server Native Client 11.0;Server=HOME-PC\SQLEXPRESS;Database=sasmarks;Trusted_Connection=yes;

Драйвер Native Client 10.0 устанавливается вместе с сервером MS SQL 2008.
Все драйвера можно скачать с сайта Microsoft и установить отдельно, что я и сделал для тестов.