![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
добавление рисунка в БД из файла [D5, MSSQL]
KirillRepin © (2008-09-12 12:04:00)Подскажите пожалуйста в чем ошибка? рисунок в БД не добавляется.
процедура в БД:
CREATE PROCEDURE Proc_AddImage
@im image
AS
BEGIN
INSERT INTO Tab_Pictures (Pic_Name, Pic)
VALUES ('picture1', @im)
END
GO
код в дельфи:
StoredProc1.ParamByName('@im').LoadFromFile('C:\1r.bmp', ftBlob);
StoredProc1.ExecProc;
Что сделано не правильно и как надо?
Заранее благодарен!
Ega23 (2008-09-12 12:57:00) [21]
> 1 picture1 0xFFFF
Теперь возьми TQuery, вбей ему SQL =еxec Proc_AddImage @im=0xFFFF
и выполни (ExecSQL). Таблицу предварительно очисти.
Запись появилась или нет?
KirillRepin (2008-09-12 12:53:00) [22]
> выдай результат сюда.
1 picture1 0xFFFF
www (2008-09-12 12:53:00) [23]
> Для тех кто в танке
"ты суслика видишь? а он есть"
телепатор-с
Ega23 (2008-09-12 12:48:00) [24]
> а что mssql только dirty read поддерживает? или вообще понятие
> транзакции для нее - мыльный пузырь?
>
Для тех кто в танке: где ты видишь открытие транзакции, которую надо коммитить?
www (2008-09-12 12:44:00) [25]
> Ega23 © (12.09.08 12:42) [14]
а что mssql только dirty read поддерживает? или вообще понятие транзакции для нее - мыльный пузырь?
Ega23 (2008-09-12 12:44:00) [26]
> именно из него и QueryAnalizer
>
Набери в QA текст:
exec Proc_AddImage @im=0xFFFF
select * from Tab_Pictures
выдай результат сюда.
Ega23 (2008-09-12 12:42:00) [27]
> который до комита данных их не увидит
Ты, вообще, с какой СУБД работаешь?
> а чем это хуже TQuery или ADO
Всем. Объяснять - это на пол-дня. В кратце: ADO для MSSQL - родная технология для доступа к данным. Т.е. наиболее оптимальная.
KirillRepin (2008-09-12 12:38:00) [28]
> мож он из какаго-то sql-манагера смотрит который до комита
> данных их не увидит
именно из него и QueryAnalizer
KirillRepin (2008-09-12 12:34:00) [29]и как это можно решить через StoredProcedure?
www (2008-09-12 12:34:00) [30]
> Ega23 © (12.09.08 12:31) [9]
автор пишет что не видит результата
чем он его не видит - не сказал
мож он из какаго-то sql-манагера смотрит который до комита данных их не увидит
KirillRepin (2008-09-12 12:33:00) [31]
> 1. выбрасываем StoredProcedure. Вообще забудь про этот компонент.
а чем это хуже TQuery или ADO
Ega23 (2008-09-12 12:31:00) [32]
> как причем?!
> а если проверяет наличие данных из другой проги?
Да хоть откуда.
Ещё раз: при чём конкретно в этом примере коммит. И где ты его "не видишь"?
KirillRepin (2008-09-12 12:29:00) [33]никаких ошибок не всплывает, курсор меняется на sql часы и обратно. внешне кажется что процедура отрабатывает нормально.
Ega23 (2008-09-12 12:29:00) [34]1. выбрасываем StoredProcedure. Вообще забудь про этот компонент.
2. Берём TQuery в случае BDE (тоже лучше забудь про эту технологию) или TADOCommand в случае ADO (это наш выбор!)
3. Пишем текст exec Proc_AddImage @im=:im
4. Ставим parameters.ParamByName('im').Paramtype = ftBLOB;
5. Грузим parameters.ParamByName('im').LoadFrom....
6. Execute.
www (2008-09-12 12:28:00) [35]
> При чём тут коммит?????
как причем?!
а если проверяет наличие данных из другой проги?
Ega23 (2008-09-12 12:23:00) [36]
> а коммит был ?
При чём тут коммит?????
stas (2008-09-12 12:22:00) [37]И ошибка никакая не пишеться?
www (2008-09-12 12:22:00) [38]а коммит был ?
KirillRepin (2008-09-12 12:20:00) [39]в базе таблицу смотрел она пустая
stas (2008-09-12 12:17:00) [40]А почему решил что недобавляется?