![]() |
|
Модераторы: Akina |
![]()
|
|
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Необходимо формировать WHERE строку в зависимости от введенных параметров в ХП
Как объявляеться внутренняя переменная в ХП? Допустим я сформировала эту строку в переменную @whr Как присоединить ее к запросу SELECT * FROM table1 |
|||
|
||||
| vickr |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.5.2003 Где: Санкт-Петербург Репутация: нет Всего: нет |
По-моему, так. --------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:) |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Круто!
Попробую, получться будет еще круче! |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Все хорошо, только
данная ХП не возвращает никаких записей, когда я вызываю процедуру так Set recordset = Cmm.execute, ведь должен же recordset заполняться выбранными записями! Может что не так, взгляни на процедуру Например процедурка у меня такая: ALTER PROCEDURE dbo.pr_search_music ( @music nvarchar(200) ) AS DECLARE @sql varchar(500), @whr varchar(50) begin if ( @music <> 'NULL' ) SET @whr = @whr + ' AND music like ''' + @music + ''' ' SET @sql = 'SELECT id_music,music FROM dbo.music ' + @whr EXECUTE (@sql) end |
|||
|
||||
| vickr |
|
||||||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.5.2003 Где: Санкт-Петербург Репутация: нет Всего: нет |
Для чистоты эксперимента создал таблицу:
id_music int music varchar(50) 1 mus 1 2 mus 2 3 mus 3 4 The Cranberries 5 Roxette 6 Король и Шут 7 Крематорий 8 Mylene Farmer 9 Rammstein Привожу еще раз твой код:
Внимание - правильный ответ
Воззвание вида
выдает результат: 4 The Cranberries Обрати внимание на строку
А также на то, какое значение было присвоено @whr до нее. Правильно - никакое. Т.е. в конечном итоге мы выполняем EXECUTE(NULL) (т.к. в T-SQL все операции, содержащие в качестве одного из операндов NULL, возвращают его же) и ничего не получаем в ответ . Для диагностики неисправностей Первое, что я сделал - вставил в конце хп строчку
PS Кстати, а зачем здесь вообще формировать запрос динамически? Можно же просто написать
Разве нет? Это сообщение отредактировал(а) vickr - 12.7.2003, 14:33 --------------------
Каждую секунду, тыкая в клавиши, мы давим насмерть не менее 1000 микробов =:) |
||||||||||||
|
|||||||||||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Дело в том, что этот пример лишь часть кода образуемого динамически, именно поэтому я написала SET @whr = @whr + ' AND music like ''' + @music + ''' ', с @whr Просто будет форма с большим количеством параметров таблицы, то есть поиска и в зависимости от того что он введет, будет формироваться строка поиска, в SQL запросе - ясно? Что ж попробую присвоить @whr начальное значение "", может тогда сработает Вообще то я вызываю хп из модуля формы с помощью комманды ADO Set recordset cmm.execute В итоге в recordset -те должны вернуться найденные записи, которые потом и присваиваються recordset -ту формы |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Почему данное выполнение запроса не выводит данных в Unicode шрифтах? |
|||
|
||||
| nicka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 11.6.2003 Репутация: нет Всего: 1 |
Проблема была в букве N
простонадо было SET @whr = ' music like N''' + @music + ''' ' подставить букву N Она оказываеться ищет в Unicode шрифтах, всего делов то А я мучился! |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |