Хочу загнать файлы изображений товара (jpg) в отдельную SQL базу. По молодости делаю так как ниже, и ессно прёт ошибка работы с типом данных image.
Подскажите, плз, как сделать правильно?
Var _rs;
//*******************************************
Процедура Сформировать()
Перем ИмяФайла,а,б,в,г,д,е;
ТекстЗапроса="
|declare @souz char(8)
|declare @ima image
|set @souz = ?
|set @ima = ?
|INSERT INTO dbpictures.dbo.tImages (souzcode, imagetov)
|VALUES (@souz, @ima)";
_rs.Prepare(ТекстЗапроса);
_rs.AddParam(1,14,8,0);
_rs.AddParam(1,19,0,0);
ФС.УстТекКаталог(глКаталогКартинок);
ТекФайл=ФС.НайтиПервыйФайл("*.jpg");
Пока ТекФайл<>"" Цикл
ФС.АтрибутыФайла(ТекФайл,а,б,в,г,д,е);
ИмяФайла=Лев(е,8);
Сообщить(ИмяФайла);
_rs.SetParam(1,ИмяФайла);
_rs.SetParam(2,ТекФайл);
if _rs.execute()=0 Тогда
message(_rs.GetLastError());
Прервать;
endif;
ТекФайл=ФС.НайтиСледующийФайл();
КонецЦикла;
КонецПроцедуры
//-----
_rs=createobject("ODBCRecordset");
_rs.Отладка(1);
где скуль-база dbpictures состоит из единственной таблицы tImages и всё создается так:
Var _rs;
//*******************************************
Процедура Сформировать()
NameOfDB="dbpictures";
BeginTransaction();
//****************************************
if _rs.execute("
|create database "+NameOfDB+" on primary
|(name = "+NameOfDB+"_Data,
|filename = '"+ibdir()+NameOfDB+".mdf',
|size = 1MB,
|maxsize = 200MB,
|filegrowth = 10%)
|
|log on
|(name = "+NameOfDB+"_Log,
|filename = '"+ibdir()+NameOfDB+".ldf',
|size = 512KB,
|maxsize = 200MB,
|filegrowth = 10%)
|")=0 then
message("Ошибка создания базы данных рисунков "+NameOfDB+"!","!!!");
message(_rs.GetLastError());
RollBackTransaction();
Return;
endif;
//***************************************
NameOfTable="tImages";
if _rs.execute("
|if exists (select * from "+NameOfDB+".dbo.sysobjects
| where name = '"+NameOfTable+"' and type = 'U')
|begin drop table "+NameOfDB+".dbo."+NameOfTable+" end
|")=0 then
message("Ошибка удаления таблицы "+NameOfTable+"!","!!!");
message(_rs.GetLastError());
RollBackTransaction();
Return;
endif;
if _rs.execute("
|create table "+NameOfDB+".dbo."+NameOfTable+" (
|id int not null identity(1,1),
|souzcode char(8) not null,
|imagetov image not null)
|")=0 then
message("Ошибка создания таблицы данных рисунков "+NameOfDB+"!","!!!");
message(_rs.GetLastError());
RollBackTransaction();
Return;
endif;
if _rs.execute("
|CREATE UNIQUE CLUSTERED INDEX souzcode_index
|ON "+NameOfDB+".dbo."+NameOfTable+"
|(souzcode)
|")=0 then
message("Ошибка создания индекса таблицы данных рисунков "+NameOfDB+"!","!!!");
message(_rs.GetLastError());
RollBackTransaction();
Return;
endif;
CommitTransaction();
Message("Создание базы данных рисунков "+NameOfDB+"завершено !",".");
КонецПроцедуры
//-----
_rs=createobject("ODBCRecordset");