“не мог найти хранимую процедуру”

Пытался добавить комментарий, но это слишком долго. Я думаю, у вас есть несколько проблем:

На самом деле, по сути, ваш код не имеет смысла. Похоже, вы пытаетесь передать Bitmap через Intent, просто чтобы преобразовать его обратно в байтовый массив. Просто передайте байтовый массив в Intent.

Существуют и другие проблемы с тем, как вы пытались это сделать, даже игнорируя вышесказанное.

mBitMap = (Bitmap)data.Extras.Get("data"); не должно работать вообще. На самом деле я очень удивлен, что здесь не выдается исключение времени выполнения. Вы не можете просто добавить растровое изображение в Intent, поэтому, хотя Intent.Extras.Get возвращает объект, он всегда должен выдавать исключение, если вы просто пытаетесь привести его к растровому изображению. Вы также не можете просто привести байтовый массив к растровому изображению. Если вы хотите передать растровое изображение через намерение, вы должны сначала преобразовать его в байтовый массив, а затем добавить его в свое намерение. С другой стороны, получите байтовый массив из Intent и преобразуйте его в Bitmap.

Существует также ограничение на количество данных, которые могут быть переданы через намерение. Google не указывает, сколько данных он может хранить, так как зависит от ряда факторов (например, размера кучи), но предполагает, что он меньше 500 КБ. Правило таково, чтобы объем передаваемых данных был небольшим. Если растровое изображение маленькое, например пиктограмма, все будет в порядке, но если оно слишком большое, вы получите исключение.

MemoryStream также будет иметь лимит данных, основанный на ряде факторов, включая выделенный размер кучи, поэтому, опять же, это может легко стать проблемой, если вы имеете дело с большими объемами данных. Если вы используете потоки с большими наборами данных, либо используйте класс, который автоматически реализует буферизацию, либо реализуйте его самостоятельно.

Наконец, в любом случае остерегайтесь передачи растровых изображений. Они занимают много памяти, и вы должны быть очень осторожны, чтобы не создавать утечки памяти через ссылки. Не забудьте избавиться от растровых изображений и удалить все ссылки на них (или использовать слабые ссылки) с обеих сторон намерения, как только вы закончите с ними.

Если растровое изображение является большим, постоянным или у вас их несколько, вам следует рассмотреть возможность записи его в файловую систему, а затем получить его, хотя, опять же, не забудьте удалить все имеющиеся у вас растровые изображения и удалить все ссылки на них. их.

16
задан Drew 9 October 2013 в 03:00
поделиться

3 ответа

Walk of shame:

The connection string was pointing at the live database. The error message was completely accurate - the stored procedure was only present in the dev DB. Thanks to all who provided excellent answers, and my apologies for wasting your time.

58
ответ дан 30 November 2019 в 15:07
поделиться

You may need to check who the actual owner of the stored procedure is. If it is a specific different user then that could be why you can't access it.

8
ответ дан 30 November 2019 в 15:07
поделиться

Убедитесь, что имя вашей схемы указано в строке подключения?

2
ответ дан 30 November 2019 в 15:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: