Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Работа с полем типа image  [new]
Baby1
Member

Откуда:
Сообщений: 48
Добрый день!
Помогите, пожалуйста, разобраться с image-полями.
Собственно задача такая: нужно считать определенный кусок данных в поле типа image одной строки и прописать полученный результат в другую строку этой таблицы. Должно получиться примерно как во вложении.
BOL был честно прочитан, считать часть данных получилось
DECLARE @ptrval varbinary(16)
SELECT @ptrval = TEXTPTR(varvalue) 
FROM VariablesTable
where SchemeID = 99098
and activityid=0
and  name = 'zam_in'
READTEXT VariablesTable.varvalue @ptrval 7 7

а вот как теперь полученное записать обратно в таблицу не понятно(((

К сообщению приложен файл. Размер - 29Kb
10 апр 12, 14:27    [12393647]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
WRITETEXT
10 апр 12, 14:28    [12393654]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Baby1
Member

Откуда:
Сообщений: 48
Гавриленко Сергей Алексеевич,

спасибо, это мне и так понятно, не понятно как его использовать..похоже я туплю по-страшному
10 апр 12, 14:31    [12393689]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Baby1
Гавриленко Сергей Алексеевич,

спасибо, это мне и так понятно, не понятно как его использовать..похоже я туплю по-страшному
Так в хелпе же должно быть написано как.
10 апр 12, 14:32    [12393701]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Glory
Member

Откуда:
Сообщений: 104751
UPDATETEXT
Updates an existing text, ntext, or image field. Use UPDATETEXT to change only a portion of a text, ntext, or image column in place. Use WRITETEXT to update and replace an entire text, ntext, or image field.
10 апр 12, 14:36    [12393738]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Baby1
Member

Откуда:
Сообщений: 48
Гавриленко Сергей Алексеевич,
написано как вставить обычную строку
DECLARE @ptrval binary(16);
SELECT @ptrval = TEXTPTR(pr_info) 
FROM pub_info pr, publishers p
WHERE p.pub_id = pr.pub_id 
   AND p.pub_name = 'New Moon Books'
WRITETEXT pub_info.pr_info @ptrval 'New Moon Books (NMB) has just released another top ten publication. With the latest publication this makes NMB the hottest new publisher of the year!';
GO

а вот как вставить данные, прочитанные с помощью READTEXT, не написано и я никак не соображу
10 апр 12, 14:38    [12393757]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Glory
Member

Откуда:
Сообщений: 104751
Baby1
а вот как вставить данные, прочитанные с помощью READTEXT, не написано и я никак не соображу

вы никуда не прочитали с помощью READTEXT, вы вернули результат клиенту.В этом и проблема
10 апр 12, 14:45    [12393839]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Baby1
Member

Откуда:
Сообщений: 48
Glory,
хорошо, тогда решить этот вопрос?
10 апр 12, 14:50    [12393897]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Glory
Member

Откуда:
Сообщений: 104751
Baby1
хорошо, тогда решить этот вопрос?

Прочитать с помощью READTEXT нужное значение _в переменную_
10 апр 12, 14:51    [12393909]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Baby1
Member

Откуда:
Сообщений: 48
Glory
Baby1
хорошо, тогда решить этот вопрос?

Прочитать с помощью READTEXT нужное значение _в переменную_

а чем мне грозит такой вариант?
update VariablesTable
set Varvalue = (select substring(varvalue,8,7) 
	         FROM VariablesTable  
	         where SchemeID in (99098)
	         and activityid=0
	         and  name in ('zam_in')
	        )
where SchemeID in (99563)
and activityid=-1
and  name in ('zam_out')

результат вроде правильный получается
сервер
+
Microsoft SQL Server 2005 - 9.00.5057.00 (Intel X86) Mar 25 2011 13:50:04 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
10 апр 12, 15:11    [12394075]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Baby1
Member

Откуда:
Сообщений: 48
ну кроме того что in тут явно лишнии)))))
10 апр 12, 15:12    [12394088]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Glory
Member

Откуда:
Сообщений: 104751
Baby1
а чем мне грозит такой вариант?

Ошибкой, если подзапрос вернет больше одной записи
10 апр 12, 15:19    [12394153]     Ответить | Цитировать Сообщить модератору
 Re: Работа с полем типа image  [new]
Baby1
Member

Откуда:
Сообщений: 48
значит сделаем так, хотя там по-моему и без этого всегда одна запись возвращается
update VariablesTable
set Varvalue = (select top 1 substring(varvalue,8,7) 
	         FROM VariablesTable  
	         where SchemeID = 99098
	         and activityid=0
	         and  name = 'zam_in'
	        )
where SchemeID = 99563
and activityid=-1
and  name = 'zam_out'


а еще?
10 апр 12, 15:32    [12394276]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить