Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: CL | DM;

Вниз

BLOB фильтры   Найти похожие ветки 

 
Simply Alex   (2003-12-11 01:09) [0]

Здравствуйте Мастера!

Я столкнулся со следующей проблемой.
БД Interbase. В одной из таблиц есть BLOB-поле, в котором хранятся аудиоданные (wave riff или mp3).
Вопрос: как оттуда эти данные прослушать и вообще достать с использованием BLOB-фильтров?


 
Digitman ©   (2003-12-11 08:28) [1]


> как оттуда эти данные прослушать


никак

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


> с использованием BLOB-фильтров


поясни, зачем вообще в дан.случае тебе потребовался блоб-фильтр ?


 
Simply Alex   (2003-12-11 17:23) [2]


> сначала ты должен сделать запрос и получить в адр.пр-во
> кл.процесса данные этого блоб-поля.


Имеется в виду взаимодействие с блоб-полем не через файл (блоб-файл-приложение)? Если ДА, то как это осуществить?


> поясни, зачем вообще в дан.случае тебе потребовался блоб-фильтр
> ?


Для преобразования типов данных. Из типа блоб-поля в аудиоданные, но если их можно выцепить и так, то вопрос про фильтры теряет свою актуальность...


 
jack128 ©   (2003-12-11 19:14) [3]

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;
// теперь проигрывай файл..


 
jack128 ©   (2003-12-11 19:15) [4]

только не забыть открыть запрос
try
Open;
if not EOF then


 
Silver Alex ©   (2003-12-12 10:19) [5]


> jack128 © (11.12.03 19:14) [3]

а зачем открывать в транзакции?


 
Stas ©   (2003-12-12 10:23) [6]

Незнаю как там в интербейсе, но в Ado работает:
AdoQuery1Sound.SaveToStream (strm);
PlaySound (strm.Memory ,0,SND_MEMORY+SND_ASYNC);


 
Zacho ©   (2003-12-12 15:00) [7]


> Silver Alex © (12.12.03 10:19) [5]

А любой запрос может быть выполнен только в контексте какой-либо транзакции. Другое дело, что некоторые компоненты доступа могут стартовать транзакции автоматически.


 
jack128 ©   (2003-12-12 15:04) [8]


> а зачем открывать в транзакции?
Привычка.. Я вообще считаю, что трансакции нужно самому открывать...(если ты работаешь не через BDE, конечно)


 
Silver Alex ©   (2003-12-12 16:18) [9]


> Zacho © (12.12.03 15:00) [7]

да ну?может это только в IB ? Или нет?


 
Stas ©   (2003-12-12 16:21) [10]

>>Zacho © (12.12.03 15:00) [7]

MS SqlServer сам проводит транзакции, я о них и недумаю. Или я чего-то непонял.


 
Zacho ©   (2003-12-12 16:39) [11]


> 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:44) [12]

>>Zacho © (12.12.03 16:39) [11]
Я с тобой согласен.
Мой ответ был для Silver Alex © (12.12.03 16:18) [9]
А я твое имя нечаянно вставил. :)


 
Zacho ©   (2003-12-12 16:49) [13]


> Stas © (12.12.03 10:23) [6]

Кстати, и с IB можно работать через ADO. ADO - не СУБД, а всего лишь одна из технологий работы с СУБД :)


 
Silver Alex ©   (2003-12-12 16:52) [14]


> Zacho © (12.12.03 16:39) [11]

знаю что в IB такая лабуда.И знаю в компонентах FIB нужно явно стартовать транзакцию.А про другие как-то не слыхал, но всегда есть чему поучиться.Нельзя ведь все знать :)


 
Zacho ©   (2003-12-12 16:57) [15]


> Silver Alex © (12.12.03 16:52) [14]
>
> Нельзя ведь все знать :)

Разумеется. :) Я, например, про MS SQL очень мало знаю :)


 
Digitman ©   (2003-12-13 11:48) [16]


> аудиоданные


что ты подразумеваешь под "аудиоданными" ?
если содержимое блоб-поля есть сохраненное ранее в него содержимое некоего аудиофайла, то содержимое этого блоб-поля и есть некие аудиоданные !

ты читаешь это блоб-поле в ориг.виде в АП кл.процесса, а дальше делаешь с ними что хочешь


 
Simply Alex   (2003-12-14 14:56) [17]


> что ты подразумеваешь под "аудиоданными" ?


Аудиоданные - вставленный ранее в БЛОБ-поле wave-файл (riff).


 
Simply Alex   (2003-12-14 14:58) [18]

Все спасибо за обсуждение! Сделал что хотел! Все получилось!


 
Digitman ©   (2003-12-14 15:11) [19]


> вставленный ранее в БЛОБ-поле wave-файл (riff).


riff стал riff"ом ТОЛЬКО после того, как клиент прочитал из блоб-поля данные и соизволил их попытаться интерпретировать именно как riff


 
Simply Alex   (2003-12-15 17:42) [20]


> riff стал riff"ом ТОЛЬКО после того, как клиент прочитал
> из блоб-поля данные и соизволил их попытаться интерпретировать
> именно как riff


Согласен. Данные читаются из БЛОБ, затем интерпретируются как wave riff.



Страницы: 1 вся ветка

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.016 c
4-37975
STPiter
2003-11-07 18:22
2004.01.13
Хук на клаву. Глюки в ворде


1-37716
MScorp
2003-12-30 17:58
2004.01.13
Вывод текста в консоль


14-37896
VID
2003-12-21 19:17
2004.01.13
Работаем с ApplicationEvents.OnMessage


3-37497
MicroWorld
2003-12-17 12:25
2004.01.13
настройка сетевой БД


14-37908
Думкин
2003-12-20 06:41
2004.01.13
С днем рождения! 20 декабря.