#0
by andrey153
Возникла задача для которой необходимо сохранять файлы в SQL-базу. Нашел такой вариант загрузки: INSERT INTO FTable(FContent) SELECT * FROM OPENROWSET(BULK 'E:myfile.bin', SINGLE_BLOB) as FContent а выгрузка так: exec master..xp_cmdshell 'bcp "SELECT FContent FROM DOPINFO.dbo.FTable" queryout E:myfile.bin -N -T' С загрузкой все хорошо, а вот при выгрузке bcp добавляет несколько байт в начало файла, да и вообще включать xp_cmdshell на SQL-сервере не очень хочется. Есть ли другой вариант получения файлов из MS SQL(2005)?
#1
by andrey153
Пытаюсь через ADO - не получается: RS = СоздатьОбъект("ADODB.Recordset"); Попытка RS.Open("SELECT FContent FROM FTable", Connect); RS.MoveFirst; Исключение Сообщить(ОписаниеОшибки, "!"); Возврат; КонецПопытки; Rec = СоздатьОбъект("ADODB.Record"); Stm = СоздатьОбъект("ADODB.Stream"); Rec.Open(RS); Stm.Open(Rec); Stm.SaveToFile("D:FileFromSQL.txt"); ----------- Ошибка: Rec.Open(RS); ADODB.Record: Объект или поставщик не может выполнить требуемую операцию.
#2
by andrey153
//еще вариант: Connect = "Provider=SQLOLEDB.1;Password=Pw); |Persist Security Info=True; |User ID=Login; |Initial Catalog=DBname; |Data Source=SvrName; Rec = СоздатьОбъект("ADODB.Record"); Rec.Open("SELECT FContent FROM FTable", Connect, 1, 0); -------------- тогда ошибка: ADODB.Record: Операция не допускается в данном контексте
#3
by Snorkler
СтрПодключения = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=***;Password=***;Initial Catalog=ИмяБазы;Data Source=192.168.***.***;"; Connection = Новый COMОбъект("ADODB.Connection"); Connection.ConnectionString = стрПодключения; Попытка Connection.Open; Исключение Сообщить ("Проблемы с подключением к базе" ); КонецПопытки; //количество записей Count = Новый COMОбъект("ADODB.Recordset"); Попытка Count.Open("select count(*) from [ИмяБазы].[dbo].[ИмяТаблицы]", Connection ); Исключение Сообщить ("Проблемы с выполнением запроса к базе"); КонецПопытки; КоличествоСтрокSQL = Count.Fields.value; ______________________________________________ [ИмяБазы], [ИмяТаблицы] и [***] заменить на нужное.
#5
by andrey153
только исходную задачу это не решает, почему-то Recordset открывается, а Record - нет
#6
by Snorkler
RS = Новый COMОбъект("ADODB.Recordset"); Попытка RS.Open("Select * from [ИмяБазы].[dbo].[ИмяТаблицы]", Connection ); Исключение Сообщить ("Проблемы с выполнением запроса к базе (записи)"); КонецПопытки; Пока RS.EOF = 0 Цикл ф = RS.Fields(НомерПоляВЗапросе).value; ... ... ... RS.MoveNext; КонецЦикла; __________________________________ С вас, батенька, 4 руб. 12 коп.
#7
by andrey153
6, ф = RS.Fields(НомерПоляВЗапросе).value; так файл прочитать не удастся, к сожалению, так читаются только простые типы
#8
by andrey153
6, речь идет о сохранении бинарного файла в поле типа varbinary(MAX). И последующее чтение этого файла из SQL-базы
#11
by andrey153
9, да в базу записывать я научился :) вот читать из нее пока не получается 10, можно пример? Не получается самому с ADODB.Stream разобраться...
#15
by Snorkler
Так я и говорю, а точно, что надо записывать бинарный файл на SQL? Может есть другие варианты? :0) Найдется куча примеров…
#16
by andrey153
на VBScript заработал такой вариант: Connect = "Provider=SQLOLEDB.1;Password=***;Persist Security Info=True;User ID=***;Initial Catalog=***;Data Source=***" Set Rs = CreateObject("ADODB.Recordset") set Stm = CreateObject("ADODB.Stream") Rs.Open "Select top 1 field2 from Table_2", Connect, 0, 3, 8 Stm.Type = 1 Stm.Open Stm.Write rs.Value Stm.Position = 0 Stm.SaveToFile("D:FileFromSQL.txt")
Тэги: Админ
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- При приеме данных с удаленной машины загрузка идет очень долго
- Загрузка данных из ЗиК в 1С Предприятие
- выгрузка - загрузка данных
- Загрузка/выгрузка
- Выгрузка и загрузка...
- Долгая загрузка при "Загрузка структуры данных программы..."
- Загрузка структуры данных программы / загрузка прикладной системы
- Совместимость MS SQL 2000 и MS SQL 2005 ?
- Выгрузка/загрузка XML. Выгрузка РН
- Ни загрузка ни выгрузка данных не были произведены
- Выгрузка/загрузка
- Выгрузка и загрузка файлов конфигурации
В этой группе 1С
- Дополнительные свойства (ЗУП 2.5)
- Свертка конфигурации Бухгалтерия автономного учреждения
- Загрузка-выгрузка XML : Ошибка
- Отобрать данные из регистра сведений
- 1С: Предприятие. Как сделать бегущую строку в Области задач?
- v8: УПП корректировка записей регистров
- v8: 1С 8.2: Макет, Область печати (вывод области с 1 по 31 по числам месяца)
- УПП Восстановление по авансам, вопрос по методике
- Вывод СКД в табличный документ управляемой формы
- 8.2 Можно ли из формы объекта открыть еще одну форму этого объекта?
- Не обновляет конфигурацию БД!!!
- Расчетные листки (зуп 2.5.33.3 1C8.2)
- Вычисление НДС в строке табличной части
- 1С 8.1 как скрыть группы в справочнике?
- Не сохраняет настройки параметров сканера штри-кодов
- Программно открыть форму нового элемента справочника в режиме копирования
- Как правильно произвести выдачу аванса в "бухгалтерии бюджетного учреждении 8"?
- процедура называется которая при соз нов дока или копировании- не помню.
- Как заменить счета учета в проводках документа
- SQL и 1С. Получение данных из firebird