Классический ASP / MySQL - проблема с параметрами - PullRequest
0 голосов
/ 27 ноября 2011

Я пытался вставить огромную строку текстового редактора в мою базу данных. Приложение, которое я разрабатываю, позволяет моему клиенту создавать и редактировать положения и условия своего веб-сайта из административной части своего веб-сайта. Итак, как вы можете себе представить, они невероятно длинные. У меня более 18 000 символов в длину, и теперь я получаю сообщение об ошибке при попытке добавить еще одну загрузку текста.

Я получаю сообщение об ошибке:

ADODB.Command error '800a0d5d'
Application uses a value of the wrong type for the current operation

Что указывает на эту часть моего приложения, а именно на строку Set newParameter:

Const adVarChar = 200
Const adParamInput = 1
Set newParameter = cmdConn.CreateParameter("@policyBody", adVarChar, adParamInput, Len(policyBody), policyBody)
cmdConn.Parameters.Append newParameter

Теперь эта политика, которую я создаю, длиной более 18 000 символов, выполнена только наполовину, если это так. Это может подскочить до 50 - 60000! Я пытался использовать adLongVarChar = 201 ADO type, но это все равно не помогло.

Правильно ли я поступаю для такой большой записи? Если я поступаю правильно, как я могу решить эту проблему? ... или если я делаю не то, что правильно?

1 Ответ

1 голос
/ 27 ноября 2011

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

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

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

...