Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MS SQL 2000 и BLOB 
:(
    Опции темы
FeT
Дата 9.6.2005, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.2.2005

Репутация: нет
Всего: нет



Цитата(Vit @ 9.6.2005, 15:54)
FeT - полный код нужен

Запись файла в БД
Код

  if OpenDialog1.Execute and (OpenDialog1.FileName <> '') then
    begin
      file_name := ExtractFileName (OpenDialog1.FileName);
      f_dm.q_ini.sql.text:='Insert into [dbo].[Attachments] (Name_table, ID_record, Name_File, prim)'
                        + ' Values ('
                        + '''' + Table_Name + ''', '
                        + IntToStr(ID_Rec)+', '
                        + ''''+ file_name+ ''', :b)';
      f_dm.q_ini.parameters.parseSQL(f_dm.q_ini.sql.text, true);
      f_dm.q_ini.parameters.ParamByName('b').LoadFromFile(OpenDialog1.FileName, ftGraphic );
      f_dm.q_ini.execsql;

      f_dm.q_ini.sql.text := 'Update [zargarov].['+ Table_Name+ '] SET Attachment_Exist=1 where ID='+ IntToStr(ID_Rec);
      f_dm.q_ini.execsql;



Вот так достаем, размер файла 0 byte. Если через поток и его размер 0. Поле имеет тип Image.

Код

  f_dm.q_ini.Close;
  f_dm.q_ini.SQL.Text := 'Select prim from [dbo].[Attachments] where id='+IntToStr(ID_Attach)+' AND Type_Attach='+IntToStr(Type_Attach);
  f_dm.q_ini.Open;
File_name := q_Work.FieldByName('Name_File').Value ;
  (f_dm.q_ini.FieldByName('Prim') as TBlobField).SaveToFile(Temp_Folder+'OKO\'+File_name);
 finally
    b.free;
  end;

 CmdLine := Temp_Folder+'OKO\'+File_name ;

 result:=True;
 if ShellExecute(Handle,nil, PChar( String( CmdLine ) ),nil,nil,SW_MAXIMIZE) < 32 then
    begin
      result:=False;
    end;

PM MAIL   Вверх
Vit
Дата 9.6.2005, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Код

f_dm.q_ini.Close;
  f_dm.q_ini.SQL.Text := 'Select prim from [dbo].[Attachments] where id='+IntToStr(ID_Attach)+' AND Type_Attach='+IntToStr(Type_Attach);
  f_dm.q_ini.Open;
File_name := q_Work.FieldByName('Name_File').Value ;
  (f_dm.q_ini.FieldByName('Prim') as TBlobField).SaveToFile(Temp_Folder+'OKO\'+File_name);


По моему скромному убеждению File_name будет иметь всегда пустое значение...
А поле Type_Attach всегда вставляется пустым...
Значение переменной Type_Attach должно быть в кавычках...

Удивительно что этот код не сгенерировал массу ошибок на этапе выполнения запросов...



Это сообщение отредактировал(а) Vit - 9.6.2005, 20:05


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
FeT
Дата 15.6.2005, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 21.2.2005

Репутация: нет
Всего: нет



Цитата(Vit @ 9.6.2005, 20:02)

По моему скромному убеждению File_name будет иметь всегда пустое значение...
А поле Type_Attach всегда вставляется пустым...
Значение переменной Type_Attach должно быть в кавычках...

Удивительно что этот код не сгенерировал массу ошибок на этапе выполнения запросов...

Данный код полностью работоспособен при использовании MS Access (тип поля Memo).
И проблема только в том, что файл создается размером 0. Пробовал через потоки, его (потока) размер тоже ноль. smile
PM MAIL   Вверх
Vit
Дата 20.6.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



FeT - значит вы привели не полный код... Присмотритесь внимательно к тем проблемам которые я указал


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0485 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.