![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
BLOB фильтры [D6, IB6.x]
Simply Alex © (2003-12-11 01:09:00)
Здравствуйте Мастера!
Я столкнулся со следующей проблемой.
БД Interbase. В одной из таблиц есть BLOB-поле, в котором хранятся аудиоданные (wave riff или mp3).
Вопрос: как оттуда эти данные прослушать и вообще достать с использованием BLOB-фильтров?
Simply Alex (2003-12-15 17:42:00) [1]
> riff стал riff"ом ТОЛЬКО после того, как клиент прочитал
> из блоб-поля данные и соизволил их попытаться интерпретировать
> именно как riff
Согласен. Данные читаются из БЛОБ, затем интерпретируются как wave riff.
Digitman (2003-12-14 15:11:00) [2]
> вставленный ранее в БЛОБ-поле wave-файл (riff).
riff стал riff"ом ТОЛЬКО после того, как клиент прочитал из блоб-поля данные и соизволил их попытаться интерпретировать именно как riff
Simply Alex (2003-12-14 14:58:00) [3]
Все спасибо за обсуждение! Сделал что хотел! Все получилось!
Simply Alex (2003-12-14 14:56:00) [4]
> что ты подразумеваешь под "аудиоданными" ?
Аудиоданные - вставленный ранее в БЛОБ-поле wave-файл (riff).
Digitman (2003-12-13 11:48:00) [5]
> аудиоданные
что ты подразумеваешь под "аудиоданными" ?
если содержимое блоб-поля есть сохраненное ранее в него содержимое некоего аудиофайла, то содержимое этого блоб-поля и есть некие аудиоданные !
ты читаешь это блоб-поле в ориг.виде в АП кл.процесса, а дальше делаешь с ними что хочешь
Zacho (2003-12-12 16:57:00) [6]
> Silver Alex © (12.12.03 16:52) [14]
>
> Нельзя ведь все знать :)
Разумеется. :) Я, например, про MS SQL очень мало знаю :)
Silver Alex (2003-12-12 16:52:00) [7]
> Zacho © (12.12.03 16:39) [11]
знаю что в IB такая лабуда.И знаю в компонентах FIB нужно явно стартовать транзакцию.А про другие как-то не слыхал, но всегда есть чему поучиться.Нельзя ведь всезнать :)
Zacho (2003-12-12 16:49:00) [8]
> Stas © (12.12.03 10:23) [6]
Кстати, и с IB можно работать через ADO. ADO - не СУБД, а всего лишь одна из технологий работы с СУБД :)
Stas (2003-12-12 16:44:00) [9]
>>Zacho © (12.12.03 16:39) [11]
Я с тобой согласен.
Мой ответ был для Silver Alex © (12.12.03 16:18) [9]
А я твое имя нечаянно вставил. :)
Zacho (2003-12-12 16:39:00) [10]
> Silver Alex © (12.12.03 16:18) [9]
Не только. Но некоторые сервера могут запускать "транзакцию по умолчанию". IB не может (да и не надо), а вопрос был именно по IB.
И вообще, даже только читающий запрос все-равно должен работать в контексте какой-либо транзакции. Про уровни изоляции слышал ? :)
> Stas © (12.12.03 16:21) [10]
Причем здесь MS SQL ? Исходный вопрос был про IB, и не надо приплетать всякие MS SQL, Oracle, DB2 и т.д. :-)
Stas (2003-12-12 16:21:00) [11]
>>Zacho © (12.12.03 15:00) [7]
MS SqlServer сам проводит транзакции, я о них и недумаю. Или я чего-то непонял.
Silver Alex (2003-12-12 16:18:00) [12]
> Zacho © (12.12.03 15:00) [7]
да ну?может это только в IB ? Или нет?
jack128 (2003-12-12 15:04:00) [13]
> а зачем открывать в транзакции?
Привычка.. Я вообще считаю, что трансакции нужно самому открывать...(если ты работаешь не через BDE, конечно)
Zacho (2003-12-12 15:00:00) [14]
> Silver Alex © (12.12.03 10:19) [5]
А любой запрос может быть выполнен тольков контексте какой-либо транзакции. Другое дело, что некоторые компоненты доступа могут стартовать транзакции автоматически.
Stas (2003-12-12 10:23:00) [15]
Незнаю как там в интербейсе, но в Ado работает:
AdoQuery1Sound.SaveToStream (strm);
PlaySound (strm.Memory ,0,SND_MEMORY+SND_ASYNC);
Silver Alex (2003-12-12 10:19:00) [16]
> jack128 © (11.12.03 19:14) [3]
а зачем открывать в транзакции?
jack128 (2003-12-11 19:15:00) [17]
только не забыть открыть запрос
try
Open;
if not EOF then
jack128 (2003-12-11 19:14:00) [18]
query.sql.text := "select my_wav from my_table";
query.transaction.statrtransaction;
with query do
try
if not EOF then
TblobField(Fields[0]).SaveToFile("c:\mywav.wav");
query.tarnsaction.commit;
except
query.tarnsaction.rollback;
raise;
end;
// теперь проигрывай файл..
Simply Alex (2003-12-11 17:23:00) [19]
> сначала ты должен сделать запрос и получить в адр.пр-во
> кл.процесса данные этого блоб-поля.
Имеется в виду взаимодействие с блоб-полем не через файл (блоб-файл-приложение)? Если ДА, то как это осуществить?
> поясни, зачем вообще в дан.случае тебе потребовался блоб-фильтр
> ?
Для преобразования типов данных. Из типа блоб-поля в аудиоданные, но если их можно выцепить и так, то вопрос про фильтры теряет свою актуальность...
Digitman (2003-12-11 08:28:00) [20]
> как оттуда эти данные прослушать
никак
сначала ты должен сделать запрос и получить в адр.пр-во кл.процесса данные этого блоб-поля. а уж потом делать с этими данными в своем кл.приложении все что тебе заблагорассудится - слушать, нюхать и т.д. и т.п.
> с использованием BLOB-фильтров
поясни, зачем вообще в дан.случае тебе потребовался блоб-фильтр ?