Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
Set Con=Server.CreateObject("ADODB.Connection") Con.Open "driver={SQL Server};server=MySQLSrv;database=Sales;uid=sa;dsn=''" strName = "'" & trim(request.form("NameFld")) & "'" strSQL = "SELECT SalesMan_Kod FROM salesmen WHERE SalesMan_Name =" & strName Set rs1=Con.Execute(strSQL) Пользователь выбирает имя человека в форме. Имя написано по-русски. В результате если вывести strSQL на просмотр то получаем SELECT SalesMan_Kod FROM salesmen WHERE SalesMan_Name ='ИВАНОВ И.И.' Этот запрос прекрасно работает в Query Analyzer и возвращает данные. На html данных запрос не возвращает, хотя так же отрабатывает. Подскажите плиз что я не так делаю? Может надо преобразовывать как-то русский? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 09:50 |
|
||
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
В базе поле с фамилиями имеет большее число знаков и поэтому в запросе из поля выглядит как 'Иванов П.И. ' Т.е. надо просто убрать пробелы справа! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 15:44 |
|
||
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
Так а разве строка trim(request.form("NameFld")) пробелов не убирает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 15:50 |
|
||
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
может попробовать request.form("NameFld") в промежуточную переменную положить, а её уже тримать? вроде бы помогало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 16:09 |
|
||
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
Попробовала, но неудачно. Да, а я же строку запроса передавала на страничку, все с пробелами правильно. И та же самая строка запущенная из Query Analyzer результат возвращает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 16:27 |
|
||
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
а ошибку какаую-то выдаёт? может здесь что-то не так? Con.Open "driver={SQL Server};server=MySQLSrv;database=Sales;uid=sa;dsn=''" в строке подключения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2004, 17:34 |
|
||
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
Неужели никто так и не заметил отсутствия апострофов в строке формирования запроса? В Query Analyser она ведь с оными! Итого получаем: strSQL = "SELECT SalesMan_Kod FROM salesmen WHERE SalesMan_Name ='" & strName & "'" И наслаждаемся результатом! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 02:04 |
|
||
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
Сорри, с утра глазищи еще не протер :), не увидел предыдущую строку. Во-первых, выведи на страничку результат с помощью Response.Write(strName), увидишь, что за строка у тебя в Request.Form(""), большое подозрение, что она пуста. Во-вторых, практика конкатенации строк для запросов весьма порочна и чревата проблемами безопасности, используй привязку переменных и построение объекта Command. Кстати, для отладки это тоже лучше, рантайм скорее всего заругается на неверное значение, передаваемое в параметр, если оно пустое, а в твоем случае ничего не произойдет. И в дальнейшем убережешься от проблем с датами, временем и всякими спесьфичьскими типами данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 02:31 |
|
||
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
В том то и дело что апострофы есть (строка 3): strName = "'" & trim(request.form("NameFld")) & "'" А результатом насладиться не могу... Кстати для того чтобы проверить строку strSQL я ее выводила на экран Document.Write(strSQL) и ее же подставляю в Query An., она выходит с апострофами! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 17:17 |
|
||
|
Передача поля (на русском) из формы в SQL запрос
|
|||
|---|---|---|---|
|
#18+
Кстати, насколько я вижу, код ASP, а не ASP.NET, поэтому по поводу кодировки не могу сказать ничего, все всегда работало на ASP, в том числе и русские буквы в параметрах запроса и элементах формы. Приведи параметры своей системы - версия IIS, версия браузера, которым смотришь, версия SQL сервера. Еще способ - выполни запрос без подстановки, т.е. уже готовый на странице, вот так: strSQL = "SELECT SalesMan_Kod FROM salesmen WHERE SalesMan_Name ='ИВАНОВ И.И.'" Set rs1=Con.Execute(strSQL) убери слова ";dsn=''" из строки запроса Насколько я вижу, у тебя вдобавок SQLServer точно не MSDE с 3-м сервис-паком, иначе был бы указан пароль для сисадмина, либо ты его обрезала? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2004, 02:14 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=18&tid=1395694]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 360ms |

| 0 / 0 |
