Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передача поля (на русском) из формы в SQL запрос / 11 сообщений из 11, страница 1 из 1
10.03.2004, 09:50
    #32435698
Полина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
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 данных запрос не возвращает, хотя так же отрабатывает. Подскажите плиз что я не так делаю? Может надо преобразовывать как-то русский?
...
Рейтинг: 0 / 0
10.03.2004, 15:44
    #32436545
ram
ram
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
В базе поле с фамилиями имеет большее число знаков и поэтому в запросе из поля выглядит как 'Иванов П.И. '
Т.е. надо просто убрать пробелы справа!
...
Рейтинг: 0 / 0
10.03.2004, 15:50
    #32436554
Полина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
Так а разве строка
trim(request.form("NameFld"))
пробелов не убирает?
...
Рейтинг: 0 / 0
10.03.2004, 16:09
    #32436588
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
может попробовать
request.form("NameFld")
в промежуточную переменную положить, а её уже тримать?
вроде бы помогало
...
Рейтинг: 0 / 0
10.03.2004, 16:27
    #32436627
Полина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
Попробовала, но неудачно. Да, а я же строку запроса передавала на страничку, все с пробелами правильно. И та же самая строка запущенная из Query Analyzer результат возвращает.
...
Рейтинг: 0 / 0
10.03.2004, 17:34
    #32436755
hDrummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
а ошибку какаую-то выдаёт?

может здесь что-то не так?

Con.Open "driver={SQL Server};server=MySQLSrv;database=Sales;uid=sa;dsn=''"
в строке подключения?
...
Рейтинг: 0 / 0
11.03.2004, 02:04
    #32437136
ArchiMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
Неужели никто так и не заметил отсутствия апострофов в строке формирования запроса?
В Query Analyser она ведь с оными!
Итого получаем:
strSQL = "SELECT SalesMan_Kod FROM salesmen WHERE SalesMan_Name ='" & strName & "'"

И наслаждаемся результатом!
...
Рейтинг: 0 / 0
11.03.2004, 02:31
    #32437139
ArchiMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
Сорри, с утра глазищи еще не протер :), не увидел предыдущую строку.

Во-первых, выведи на страничку результат с помощью Response.Write(strName), увидишь, что за строка у тебя в Request.Form(""), большое подозрение, что она пуста.

Во-вторых, практика конкатенации строк для запросов весьма порочна и чревата проблемами безопасности, используй привязку переменных и построение объекта Command.

Кстати, для отладки это тоже лучше, рантайм скорее всего заругается на неверное значение, передаваемое в параметр, если оно пустое, а в твоем случае ничего не произойдет.

И в дальнейшем убережешься от проблем с датами, временем и всякими спесьфичьскими типами данных.
...
Рейтинг: 0 / 0
11.03.2004, 17:17
    #32438545
Полина
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
В том то и дело что апострофы есть (строка 3):

strName = "'" & trim(request.form("NameFld")) & "'"

А результатом насладиться не могу...
Кстати для того чтобы проверить строку strSQL я ее выводила на экран Document.Write(strSQL) и ее же подставляю в Query An., она выходит с апострофами!
...
Рейтинг: 0 / 0
16.03.2004, 02:14
    #32442672
ArchiMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
Кстати, насколько я вижу, код ASP, а не ASP.NET, поэтому по поводу кодировки не могу сказать ничего, все всегда работало на ASP, в том числе и русские буквы в параметрах запроса и элементах формы.
Приведи параметры своей системы - версия IIS, версия браузера, которым смотришь, версия SQL сервера.
Еще способ - выполни запрос без подстановки, т.е. уже готовый на странице, вот так:

strSQL = "SELECT SalesMan_Kod FROM salesmen WHERE SalesMan_Name ='ИВАНОВ И.И.'"
Set rs1=Con.Execute(strSQL)

убери слова ";dsn=''" из строки запроса
Насколько я вижу, у тебя вдобавок SQLServer точно не MSDE с 3-м сервис-паком, иначе был бы указан пароль для сисадмина, либо ты его обрезала?
...
Рейтинг: 0 / 0
09.05.2004, 02:40
    #32511641
grigorii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача поля (на русском) из формы в SQL запрос
попробуй WHERE SalesMan_Name Like '*" & strName & "*'"

или

WHERE SalesMan_Name Like '%" & strName & "%'"
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Передача поля (на русском) из формы в SQL запрос / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]