Колоната NvarChar (Max) в таблиците на услугата за приложения на Azure запазва празен низ за големи данни

Когато се опитам да преобразувам масивите от байтове за изображение (& аудио файл, създаден в приложение Xamarin Forms) в JSON и да го запазя в SQL бекенд на услугата за приложения на azure в колона NVARCHAR(Max), той напълно пропуска този запис & вместо това записва празен низ.

Ето примерен JSON файл, който се създава. Големи Json данни

когато json файлът няма байтови масиви, получените низови данни се записват добре.

Останалите данни в съответните колони също се запазват добре.


person Supreet    schedule 15.09.2016    source източник


Отговори (1)


Не качвайте и не поставяйте в базата данни. Поставете го в акаунт за съхранение. За блог как да направите това (приблизително), вижте https://shellmonger.com/2016/05/30/30-days-of-zumo-v2-azure-mobile-apps-day-27-file-handling-v1/ и https://shellmonger.com/2016/06/01/30-days-of-zumo-v2-azure-mobile-apps-day-28-file-handling-v2/

Ако не използвате Xamarin и/или Cordova, има подобни SDK за работа с v1 в iOS и Android. В момента обаче File Sync работи само в .NET.

person Adrian Hall    schedule 15.09.2016
comment
Идеята е определено да го запазите в акаунт за съхранение. Но като се има предвид моя контекст, исках да проверя дали мога по някакъв начин да го запазя в DB. За да ви дам малко контекст, в моето мобилно приложение xamarin, за да извлека списъка с байтове, ще трябва да ровя в много обекти. (Шаблони-›Секции-›Контроли и след това разберете контролите и ако са от тип blob, актуализирайте байтовете в blob и вземете URL) Моето запазване от мобилно устройство вече е много бавно, защото правя офлайн синхронизиране в Azure на много данни. Идеята ми беше да предам данните в DB, ​​откъдето свързаното уеб приложение може да ги вземе и запази в хранилището - person Supreet; 16.09.2016
comment
Ако приложението ви е бавно, когато извършва офлайн синхронизиране, уверете се, че извършвате постепенно синхронизиране (полето UpdatedAt и полето Version във вашия модел от страна на клиента, плюс наименувана заявка във вашето извикване PullAsync(). - person Adrian Hall; 16.09.2016
comment
Благодаря Адриан, първоначално използвах инкрементална синхронизация, но се оказа, че не винаги връща всички данни, които трябва. Въпреки че е малко бавен, но непредаването на ключа за заявка гарантира 100%, че получавам всички набори от записи. - person Supreet; 19.09.2016
comment
Имаше грешка в v2.2.1 Node.js backend SDK, когато се използва с SQLite хранилище за данни. Това доведе до неправилна работа на постепенното синхронизиране. Инсталирайте v2.2.0 (или изчакайте корекцията във v3.0 по-късно тази седмица) Можете да прочетете за грешката тук: github.com/Azure/azure-mobile-apps-node/issues/496 - person Adrian Hall; 19.09.2016