![]() |
|
Модераторы: Akina |
![]()
|
|
| Pogreb |
|
|||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 69 Регистрация: 17.10.2005 Репутация: нет Всего: нет |
Привет.
Перерыл все учебники и не нашел как sp execute парсит строковую переменную, в которой встречается int переменная. Вся проблема в CustomerID - int. Выдает ошибку и все. Помогите кто может. Вот код:
|
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 15 Всего: 35 |
Так будет получше:
нельзя использовать переменую в построеном SQL Statment -------------------- Никогда не говори никогда |
|||
|
||||
| Pogreb |
|
|||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 69 Регистрация: 17.10.2005 Репутация: нет Всего: нет |
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting the varchar value ' SELECT * FROM tbl_customer WHERE FNAME like '%' AND CustomerID = ' to a column of data type int. /Manager Data/popCustomerSearch.asp, line 139 Вот что мне выдало на сайте после того как я поменял. Что делать? line 138: strSQL = "spMegaSeach 6,'" & CID &"','','" & strFName &"','','" & strLName & "','" & strNickName & "','" & strSocial & "','','','','','','','"& strPnumber&"','"& strMonth &"'" line 139: SET dbCustomer = Datab.Execute(strSQL) Это запрос с страницы. Ругается на него. Могут ли быть проблемы если используешь int? |
|||
|
||||
| Pogreb |
|
|||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 69 Регистрация: 17.10.2005 Репутация: нет Всего: нет |
Я понял в чем проблема. Мой SQL запрос ожидает int, но вместо приходит Varchar. А как исправить я не занаю. В VB Script вроде бы нет типов данных, только один. Что делать? |
|||
|
||||
| SergKO |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 14.3.2005 Репутация: 17 Всего: 20 |
Вы пытаетесь построить строку, а CID, скорее всего - целое. Как будет производиться конкатенация строки и целого? Если невозможно использовать параметризованный запрос, то используйте строковый CID, но тогда в процедуре @CustomerID опишите как VARCHAR, а потом конвертируйте в целое.
В процедуре для запуска лучше использовать sp_executesql. Тогда Вы избегаете ошибок когда в качестве значения параметров передается NULL и приобретаете преимущества, которые дает использование этой системной процедуры. А построение условия запроса лучше усложнить, тогда не будет лишних поисков по параметрам равным '' (пустая строка). Это видно в Вашем примере, когда параметр @FName = ''. Попробуйте примерно так
Если Вы не хотите использовать sp_executesql, то при построении условия все параметры конвертируйте в строку и используйте функцию ISNULL(...). Это сообщение отредактировал(а) SergKO - 18.7.2007, 08:59 |
||||
|
|||||
| Pogreb |
|
|||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 69 Регистрация: 17.10.2005 Репутация: нет Всего: нет |
Спасибо все теперь ясно!! |
|||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |