Тема измусолена, но все-же никто не смог пока записать бинарник из 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 хочу), либо вообще не понимают проблемы.