ADODB.Stream запись бинарника, JScript only!
От: EugeNet.Spb  
Дата: 08.06.04 17:00
Оценка:
Тема измусолена, но все-же никто не смог пока записать бинарник из JScript. Правда есть 1 гуру- он смог (http://rsdn.ru/Forum/Message.aspx?mid=670145&only=1
Автор: Andir
Дата: 08.06.04
), но только в UNICODE. Есть предложения как тип изменить?
Проблема именно в ADODB.Recordset, а не стриме, стрим уже получает юникодовую строку...

Собака зарылась в Fields.Append или rs.Fields(0).Type, но я вроде все перебрал- не получается.
Пробовал перебирать DataTypeEnum и FieldAttributeEnum — ничего пока.
в FieldAttributeEnum вообще интересно- есть только Long Binary (adFldLong), а просто бинари- нет.
как меняю- stream.Write ошибается, потому что переменная уже другого типа.

var rs = new ActiveXObject("ADODB.Recordset");
var stream = new ActiveXObject("ADODB.Stream");
var string = "test";

rs.Fields.Append( "test", /* adVarBinary */ 128, /* Size of field */ 512, /* Allow AppendChunk and GetChunk */ 0x80 );
//rs.Fields(0).Type = 128;
rs.Open();
rs.AddNew();
rs.Fields( 'test' ).AppendChunk( string );
rs.Update();
rs.MoveFirst();
binArray = rs( 'test' ).GetChunk( 512 );
rs.Close();

//stream.Charset = 'ASCII';
stream.Type = 1;
stream.Open();
stream.Write( binArray );
stream.SaveToFile( 'd:\\sdfsdf.txt' );
stream.Close();

Реально 3 дня искал везде- в мире все либо VBScript советуют (у меня есть рабочий пример, но я JS хочу), либо вообще не понимают проблемы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.