Конференция "Базы" » добавление рисунка в БД из файла [D5, MSSQL]
 
  • KirillRepin © (12.09.08 12:04) [0]
    Подскажите пожалуйста в чем ошибка? рисунок в БД не добавляется.
    процедура в БД:
    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;

    Что сделано не правильно и как надо?
    Заранее благодарен!
  • stas © (12.09.08 12:17) [1]
    А почему решил что недобавляется?
  • KirillRepin © (12.09.08 12:20) [2]
    в базе таблицу смотрел она пустая
  • www (12.09.08 12:22) [3]
    а коммит был ?
  • stas © (12.09.08 12:22) [4]
    И ошибка никакая не пишеться?
  • Ega23 © (12.09.08 12:23) [5]

    > а коммит был ?


    При чём тут коммит?????
  • www (12.09.08 12:28) [6]

    > При чём тут коммит?????

    как причем?!
    а если проверяет наличие данных из другой проги?
  • Ega23 © (12.09.08 12:29) [7]
    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.
  • KirillRepin © (12.09.08 12:29) [8]
    никаких ошибок не всплывает, курсор меняется на sql часы и обратно. внешне кажется что процедура отрабатывает нормально.
  • Ega23 © (12.09.08 12:31) [9]

    > как причем?!
    > а если проверяет наличие данных из другой проги?


    Да хоть откуда.
    Ещё раз: при чём конкретно в этом примере коммит. И где ты его "не видишь"?
  • KirillRepin © (12.09.08 12:33) [10]

    > 1. выбрасываем StoredProcedure. Вообще забудь про этот компонент.

    а чем это хуже TQuery или ADO
  • KirillRepin © (12.09.08 12:34) [11]
    и как это можно решить через StoredProcedure?
  • www (12.09.08 12:34) [12]

    > Ega23 ©   (12.09.08 12:31) [9]

    автор пишет что не видит результата
    чем он его не видит - не сказал
    мож он из какаго-то sql-манагера смотрит который до комита данных их не увидит
  • KirillRepin © (12.09.08 12:38) [13]

    > мож он из какаго-то sql-манагера смотрит который до комита
    > данных их не увидит

    именно из него и QueryAnalizer
  • Ega23 © (12.09.08 12:42) [14]

    > который до комита данных их не увидит


    Ты, вообще, с какой СУБД работаешь?


    > а чем это хуже TQuery или ADO


    Всем. Объяснять - это на пол-дня. В кратце: ADO для MSSQL - родная технология для доступа к данным. Т.е. наиболее оптимальная.
  • Ega23 © (12.09.08 12:44) [15]

    > именно из него и QueryAnalizer
    >


    Набери в QA текст:

    exec Proc_AddImage @im=0xFFFF
    select * from Tab_Pictures



    выдай результат сюда.
  • www (12.09.08 12:44) [16]

    > Ega23 ©   (12.09.08 12:42) [14]

    а что mssql только dirty read поддерживает? или вообще понятие транзакции для нее - мыльный пузырь?
  • Ega23 © (12.09.08 12:48) [17]

    > а что mssql только dirty read поддерживает? или вообще понятие
    > транзакции для нее - мыльный пузырь?
    >


    Для тех кто в танке: где ты видишь открытие транзакции, которую надо коммитить?
  • www (12.09.08 12:53) [18]

    > Для тех кто в танке

    "ты суслика видишь? а он есть"
    телепатор-с
  • KirillRepin © (12.09.08 12:53) [19]

    > выдай результат сюда.


    1 picture1 0xFFFF
 
Конференция "Базы" » добавление рисунка в БД из файла [D5, MSSQL]
Есть новые Нет новых   [134435   +35][b:0][p:0.001]