Хороший способ продемонстрировать классический веб-сайт ASP - PullRequest
1 голос
/ 13 июля 2009

Каков наилучший способ сохранения данных в переменных сеанса на классическом веб-сайте?

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

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

Как мне добиться того же в ASP с бэкэндом MS Access?

Ответы [ 3 ]

0 голосов
/ 13 июля 2009

Если вы хотите сохранить состояние на нескольких страницах (например, для демонстрации завершения приложения), это немного сложно.

Я бы предложил копировать файл MDB для каждого сеанса и использовать скопированную версию. Это гарантирует, что каждый сеанс использует свои собственные данные.

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

Примечание: Тогда единственный недостаток, который я вижу здесь, заключается в том, что вам нужно удалить неиспользуемые файлы MDB, поскольку через некоторое время они могут получить много Вы можете сделать это с помощью запланированной задачи или даже при запуске сеанса, прежде чем создавать новую.

Я не уверен, что вы можете использовать, чтобы проверить, используется ли он или нет, но проверить дату создания файлов или, возможно, файл LDF также может помочь вам (если он не существует = не используется).

0 голосов
/ 14 июля 2009

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

При таком подходе вы упрощаете возможные пути к коду. В противном случае это "мы в демонстрационном режиме или нет?" логика пропитает большую часть вашего кода.

Я бы сделал это так ...

  1. Когда пользователь начинает демонстрацию, сделайте копию БД доступа для использования этим пользователем. Если ваша база данных - foo.mdb, скопируйте ее в /tempdb/foo_1234567890.mdb, где 1234567890 - идентификатор сеанса пользователя.

  2. Измените строку подключения пользователя, чтобы она указала на свежую копию базы данных. С этого момента ваше приложение может работать как «обычное» без дальнейших изменений.

  3. Иметь запланированное задание, которое удаляет все файлы в / tempdb с последним измененным временем более чем за __ часов в прошлом. Если у вас нет возможности планировать задачи на сервере (возможно, вы находитесь в среде с общим хостингом и т. Д.), Вы можете сделать это одновременно с выполнением шага № 1.

0 голосов
/ 13 июля 2009

Вы можете сохранить соединение или включить объект в переменную сеанса, насколько вы помните, какую переменную вы храните во время получения. Я никогда не сохранял набор данных в переменной сеанса, но я хранил множество массивов в переменных сеанса, поэтому вы можете использовать метод ADO Getrows *1002*, чтобы найти полный набор данных в переменной сеанса.

...