
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.06.2008, 12:59
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
Нужно в СКРИПТЕ сделать такой UPDATE: Код: plaintext 1. 2. 3. Т.е. нужно написать что-нибудь такое: Код: plaintext 1. 2. Обращаю Ваше внимание, что поле kakojto_number - NUMBER! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 13:19
|
|||
|---|---|---|---|
|
|||
Динамическое изменение IN в скрипте |
|||
|
#18+
создать табличку типа Код: plaintext value_invalue_out101112132025 Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 13:20
|
|||
|---|---|---|---|
|
|||
Динамическое изменение IN в скрипте |
|||
|
#18+
oнo ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 13:25
|
|||
|---|---|---|---|
|
|||
Динамическое изменение IN в скрипте |
|||
|
#18+
RiskaНужно в СКРИПТЕ сделать такой UPDATE: Код: plaintext 1. 2. 3. Т.е. нужно написать что-нибудь такое: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 13:57
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
RiskaНужно в СКРИПТЕ сделать такой UPDATE:Плохая практика... RiskaТ.е. нужно написать что-нибудь такое: Код: plaintext 1. 2. А в таком работает? Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:04
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
Да сам вопрос отвечает на себя... Марк прав... Если нужно динамическое изменение запроса, значит и нужно использовать динамический SQL. Чего там еще думать то?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:08
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
ono?oнo ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Онo! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:11
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
RiskaОнo! ну вот видите, как все просто. и никакого динамического SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:15
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
Riska ono?oнo ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Онo! А если нужно через переменную передать (1, 2, 3..) то какого типа переменную создать? string не покатит т.к. - будет не соотв. типов.. а int[] тож ругаеться... Нужно например как в ДВ тип - number array. что предложите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:23
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
PL99А в таком работает? Код: plaintext 1. 2. 3. 4. 5. Не работает Код: plaintext 1. 2. За что ему/ей отдельное спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:23
|
|||
|---|---|---|---|
|
|||
Динамическое изменение IN в скрипте |
|||
|
#18+
SashukА если нужно через переменную передать (1, 2, 3..) то какого типа переменную создать? string не покатит т.к. - будет не соотв. типов.. а int[] тож ругаеться... Нужно например как в ДВ тип - number array. что предложите? http://www.sql.ru/forum/actualpost.aspx?bid=39&tid=564528&mid=5764706&p=1&act=quot#5764228 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:27
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
Sashuk А если нужно через переменную передать (1, 2, 3..) ... Тогда можно и через EXECUTE IMMEDIATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:31
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
Riska Sashuk А если нужно через переменную передать (1, 2, 3..) ... Тогда можно и через EXECUTE IMMEDIATE а не будет ошибки при преведении типов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:33
|
|||
|---|---|---|---|
|
|||
Динамическое изменение IN в скрипте |
|||
|
#18+
Sashuk Riska Sashuk А если нужно через переменную передать (1, 2, 3..) ... Тогда можно и через EXECUTE IMMEDIATE а не будет ошибки при преведении типов? Какое приведение типов? EXECUTE IMMEDIATE выполняет переданную текстовую строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.06.2008, 14:35
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
Локшин МаркКакое приведение типов? EXECUTE IMMEDIATE выполняет переданную текстовую строку. сорри... провтыкал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.06.2008, 09:05
|
|||
|---|---|---|---|
|
|||
Динамическое изменение IN в скрипте |
|||
|
#18+
решение от: 1. с новым годом - не вегда есть возможность менять структуру БД 2. Локшин Марк - чаще запросы хранятся в БД для последующего их изменения без перекомпиляции программы ... ЗЫ: все зависит от поставленной задачи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.06.2008, 10:26
|
|||
|---|---|---|---|
|
|||
Динамическое изменение IN в скрипте |
|||
|
#18+
ono?решение от: 2. Локшин Марк - чаще запросы хранятся в БД для последующего их изменения без перекомпиляции программы ... Если что-то пишут в СКРИПТЕ (как сказано в исходном письме!), то оно никак не может храниться в БД и исправляться без перекомпиляции программы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
06.06.2008, 19:23
|
|||
|---|---|---|---|
Динамическое изменение IN в скрипте |
|||
|
#18+
RiskaНужно в СКРИПТЕ сделать такой UPDATE: Риска, а за чем вообше так делать? В смысле писать update в скрипте. Напиши процедуру и пусть твой update просходит в базе данных string s_name, s_number long l_id s_name = 'Вася' s_number = '1,2,3,9,19' l_id = 0 DECLARE sp_test PROCEDURE FOR sp_test @id = :l_id, @name = :s_name, @kakojto_number = :s_number; SetPointer(HourGlass!) EXECUTE sp_test; SetPointer(Arrow!) IF sqlca.SQLCode = -1 THEN MessageBox("SQL Error", sqlca.SQLErrText) ELSE FETCH sp_test INTO :l_return; IF sqlca.SQLCode = -1 THEN MessageBox("SQL Error", sqlca.SQLErrText) END IF END IF CLOSE sp_test; ну и в процедуре: create procedure sp_test @id int, @name varchar(30), @kakojto_number varchar(7900) as set nocount on DECLARE @separator_position int, @array_value varchar(1000), @sql_string varchar(4000) set @separator_position = ',' CREATE TABLE #tmp (array_value Int) SELECT @kakojto_number = @kakojto_number + @separator WHILE Patindex('%' + @separator + '%' , @kakojto_number ) <> 0 BEGIN SELECT @sql_string = '', @separator_position = Patindex('%' + @separator + '%' , @kakojto_number ), @array_value = Left@kakojto_number , @separator_position - 1) INSERT INTO #tmp VALUES (convert(int, @array_value)) SELECT @kakojto_number = Stuff(@kakojto_number , 1, @separator_position, '') END //ну и потом .. begin transaction UPDATE table1 SET id = @id WHERE name = @name AND kakojto_number in (select array_value from #tmp ) if @@error <> 0 rollback transaction select @@error return end else commit transaction select 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=15&tablet=1&tid=1336650]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 146ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...