Мемо-поля в sql

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Мемо-поля в sql

Сообщение Vik »

Кто-нибудь знает, как достать мемо-поле в SQL - запросе? ) Поле LVar в MS SQL имеет тип bit. Я так понял, если есть данные, то 1, если нет - 0.. Но что с этим делать? )
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Сообщение RAJAH »

Не знаю, поможет или нет, но у нас вот так примечание из сводного приказа тянется:

Код: Выделить всё

select notes.nrec, notes.note
from contdoc, notes
where
((
Root         == notes.note and
contdoc.nrec == notes.owner and
3002         == notes.choice and
NRECPARTDOC  == contdoc.cpart and
NRECPERSON   == contdoc.person
));
Ged
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение Ged »

Все мемо поля храняться в MSSQL в отдельной табле - XX$Memo
Vik
Местный житель
Сообщения: 370
Зарегистрирован: 28 сен 2006, 15:43
Откуда: Санкт-Петербург
Контактная информация:

Сообщение Vik »

Ага, спасибо, с этим разобрались)
Helysq
Сообщения: 3
Зарегистрирован: 21 дек 2006, 08:13
Откуда: г. Рудный
Контактная информация:

Сообщение Helysq »

Наверное поздновато пишу, долго меня тут не было, но если кому-то пригодиться, то для договоров информацию из Memo можно получить вот так:

Код: Выделить всё

-->> Получаем код таблицы t$docinfo <<--
declare @di_filecode int
select top 1 @di_filecode = xf$code from galbase.dbo.x$files where xf$name = 'docinfo'

-->> Получаем все текстовые записи из МЕМО-полей <<--
select
	[docinfo_name] = docinfo.f$name,
	[mem_data] = cast(substring(mem.m#data, 4, 255) as varchar(255))

from
	galbase.dbo.t$dogovor dogovor with(nolock)
	left join galbase.dbo.t$docinfo docinfo with(nolock) on docinfo.f$cdoc = dogovor.f$cnrec
	left join ( select m#nrec, m#data 
				from galbase.dbo.xx$memo with(nolock)
				where m#code = @di_filecode ) mem on docinfo.f$nrec = mem.m#nrec 
where
	docinfo.f$textdata = 1 
and	docinfo.f$doctype <> 150
или почти тоже самое для извлечения Характеристики ОС

Код: Выделить всё

-->> Получаем код таблицы t$allmemo <<--
declare @am_filecode int
select top 1 @am_filecode = xf$code from galbase.dbo.x$files where xf$name = 'allmemo'

select
	[katos_name] = katos.f$nameos,
	[katos_innum] = katos.f$innum,
	[memo_data] = cast(substring(isnull(mem.m#data, ''), 4, 255) as varchar(255))
from
	galbase.dbo.t$katos katos with(nolock)
	left join galbase.dbo.t$allmemo AllMemo with(nolock) on Katos.f$NRec = AllMemo.f$cRec and AllMemo.f$wTable = 3000 -- характеристика
	left join ( select m#nrec, m#data 
				from galbase.dbo.xx$memo with(nolock)
				where m#code = @am_filecode ) mem on AllMemo.f$nrec = mem.m#nrec
where
	katos.f$isleaf = 1
--and	AllMemo.f$Tip  = 0 --  ?? txt
--and	AllMemo.f$Name = 'KatOs.Proper'
Для Договоров для связи с Мемо-полем используется таблица DocInfo, а для ОС таблица AllMemo
Mekhtiev
Постоянный гость
Сообщения: 92
Зарегистрирован: 24 янв 2013, 16:33

Re: Мемо-поля в sql

Сообщение Mekhtiev »

Проблема с кодировкой, русские буквы вываливаются иероглифами, англ норм.
ВБР РУЛИТ)))ИС3
Ответить