Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
VBScript/ASP Classic
У меня есть пара вопросов относительно VBScript и ASP Classic:
Каков предпочтительный способ доступа к базе данных сервера MS SQL в VBScript/ASP?
Каковы наилучшие методы в отношении отделения модели от представления от контроллера?
Есть еще что-нибудь, что я должен знать о VBScript или ASP?
Если вы еще не заметили, я новичок в кодировании VBScript. Я понимаю, что числа 2 & 3-это своего рода гигантские вопросы "black hole", которые являются слишком общими, поэтому не думайте, что я ожидаю узнать все, что нужно знать об этих двух вопросах отсюда.
ADO-это отличный способ получить доступ к базе данных в VBScript/Classic ASP.
Dim db: Set db = Server.CreateObject("ADODB.Connection")
db.Open "yourconnectionstring -> see connectionstrings.com"
Dim rs: Set rs = db.Execute("SELECT firstName from Employees")
While Not rs.EOF
Response.Write rs("firstName")
rs.MoveNext
Wend
rs.Close
Более подробная информация здесь: http://www.technowledgebase.com/2007/06/12/vbscript-how-to-create-an-ado-connection-and-run-a-query/
Одно предостережение заключается в том, что если вы возвращаете поле MEMO в наборе записей, убедитесь, что вы выбрали только одно поле MEMO одновременно, и убедитесь, что это столбец LAST в вашем запросе. В противном случае вы столкнетесь с проблемами. (Ссылка: http://lists.evolt.org/archive/Week-of-Mon-20040329/157305.html )
Я должен был уйти от своего PC, когда увидел первый ответ, и все еще огорчен тем, что он был одобрен столькими людьми. Это ужасный пример самого худшего вида кода ASP, который гарантирует, что ваш сайт будет SQL-инъекционным и, если вы продолжите использовать этот код по всему сайту, взломанным в течение дюйма его жизни.
Это NOT вид кода, который вы должны дать кому-то новому для ASP кодирования, поскольку они будут думать, что это профессиональный способ кодирования на языке!
NEVER покажите строку подключения в вашем коде, поскольку она содержит имя пользователя и пароль к вашей базе данных. Вместо этого используйте файл UDL или, по крайней мере, константу, которую можно объявить в другом месте и использовать на всем сайте.
Больше нет никакого хорошего оправдания для использования inline SQL для любой операции в веб-среде. Используйте хранимую процедуру - преимущества безопасности не могут быть достаточно подчеркнуты. Если вы действительно не можете этого сделать, то посмотрите на встроенные параметры как на второй лучший вариант... Встроенный SQL оставит ваш сайт широко открытым для SQL инъекций, вредоносных программ инъекций и rest.
Позднее объявление переменных может привести к небрежному кодированию. Используйте "option explicit" и объявите переменные в верхней части функции. Это лучшая практика, а не реальный WTF, но лучше всего начать, как вы собираетесь идти дальше.
Никаких подсказок базе данных о том, что это за соединение-только для чтения, или пользователь будет обновлять записи? Соединение может быть оптимизировано, и база данных может обрабатывать блокировку очень эффективно, если эффективно сказать, чего ожидать.
Соединение с базой данных не закрывается после использования, и объект набора записей не полностью уничтожается.
ASP - это все еще сильный язык, несмотря на то, что многие люди предлагают перейти на .NET - при хорошей практике кодирования можно написать сайт ASP, который прост в обслуживании, масштабируем и быстр, но вы HAVE, чтобы убедиться, что вы используете все доступные методы, чтобы сделать ваш код эффективным, вы HAVE, чтобы поддерживать хорошую практику кодирования и немного предусмотрительности. Хороший редактор тоже поможет, я предпочитаю PrimalScript, который я нахожу более полезным для кодера ASP, чем любой из последних продуктов MS, которые кажутся очень полезными .NET-ориентированной.
Кроме того, откуда берется поле "MEMO"? Это номенклатура доступа или, может быть, MySQL? Я спрашиваю, как такие поля назывались TEXT или NTEXT полей в MS-SQL в течение десятилетия.
Не забывайте программировать на языке, а не программировать на нем. Просто потому, что вы используете ограниченный набор инструментов, не означает, что вы должны программировать, как это делается в 1999 году.
Я согласен с JasonS насчет классов. Это правда вы не можете делать такие вещи как наследование но вы можете легко подделать его
Class Dog
Private Parent
Private Sub Class_Initialize()
Set Parent = New Animal
End Sub
Public Function Walk()
Walk = Parent.Walk
End Function
Public Function Bark()
Response.Write("Woof! Woof!")
End Function
End Class
В моих проектах страница ASP будет иметь следующее: INC-APP-CommonIncludes.asp-это включает в себя такие вещи, как мои общие библиотеки (доступ к базе данных, файловые функции и т. д.) и устанавливает безопасность, а также включает в себя любые конфигурационные файлы (например, строки подключения, расположение каталогов и т. д.) и общие классы (пользователь, разрешение и т. д.) и включается в каждую страницу.
Modules/ModuleName/page.vb.asp-что-то вроде кода за страницей. Включает в себя определенные для страницы классы BO, BLL и DAL и настраивает данные, необходимые для страницы / получает данные формы отправки и т. д
Modules/ModuleName/Display/INC-DIS-Page.asp-отображает данные, настроенные в page.vb.asp.
AXE-Asp Xtreme Evolution - это MVC фреймворк для ASP classic
Есть несколько попыток создания тестовых фреймворков для asp: aspUnit-это хорошо, но больше не поддерживается.
Я видел образец того, как сделать свой собственный несколько месяцев назад. В этом примере nUnit используется для вызова функций против веб-сайта для автоматического тестирования. Я думаю, что получил его здесь (моя линия забита, поэтому я не могу проверить)
Повторяя некоторые идеи и добавляя несколько своих собственных:
1) Лучший способ получить доступ к базе данных-это абстрагировать ее в какой-то компонент COM, к которому вы получаете доступ из VBScript.
2) Если бы вы действительно хотели, вы могли бы написать контроллер в VBScript, а затем получить доступ к нему на странице. Это будет похоже на шаблон контроллера страницы, а не на передний контроллер, который вы увидите в ASP.NET MVC или MonoRail
3) Почему вы так поступаете с собой? Большинство инструментов, необходимых для выполнения такого рода работ, уже даже не доступны.
По номеру 2, я думаю, у вас есть несколько вариантов...
1) Вы можете использовать компоненты COM, разработанные в VB6 или подобных им, чтобы отделить часть вашей бизнес-логики от UI.
2) Вы можете создавать классы в VBScript. Нет никакой концепции наследования, и другие более продвинутые функции отсутствуют в реализации, но вы можете инкапсулировать логику в классы, которые помогают уменьшить объемность вашего приложения. Проверьте это: http://www.4guysfromrolla.com/webtech/092399-1.shtml
Я согласен с @Cirieno,, что выбранный ответ было бы неразумно использовать в производственном коде, по всем причинам, которые он упоминает. Тем не менее, если у вас есть только небольшой опыт, этот ответ является хорошей отправной точкой в отношении основ.
В моем опыте ASP я предпочитал писать свой уровень доступа к базе данных с использованием VB, компилируя до DLL и ссылаясь на DLL через VBScript. Трудно отлаживать непосредственно через ASP, но это был хороший способ инкапсулировать весь код доступа к данным вдали от кода ASP.
давным-давно, в те времена, когда VBScript/ASP были еще в порядке Я работал в коммунальной компании с очень смешанным DB envrionment, я привык клясться этим сайтом: http://www.connectionstrings.com/
@michealpryor все правильно понял
Я застрял, строя на ASP, и чувствую твою боль.
1) лучший способ запроса к серверу SQL-это параметризованные запросы; это поможет предотвратить атаки с использованием инъекций SQL.
Учебник (не мой блог):
http://www.nomadpete.com/2007/03/23/classic-asp-which-is-still-alive-and-parametised-queries /
2) я не видел ничего относительно MVC, специально ориентированного на ASP, но мне определенно интересно, потому что это то, что я с трудом могу себе представить. Я обычно стараюсь, по крайней мере, содержать вещи, которые похожи на представление, и вещи, которые похожи на контроллер, в отдельных функциях. Я полагаю, что вы могли бы написать код в отдельных файлах, а затем использовать серверные компоненты, чтобы объединить их все вместе.
3) вы, вероятно, исходите из языка, который имеет больше встроенных функций. Сначала может показаться, что некоторые вещи отсутствуют, но часто это просто вопрос написания гораздо большего количества строк кода, чем вы привыкли.