1 (изменено: pavlikspb, 2011-04-19 10:55:08)

Тема: VBS: [решено] работа с полем tinyblob в mysql

Добрый день!
Есть таблица с полем tinyblob в базе mysql. При обращении к этому полю через рекордсет выдает не читабельную информацию, а при сохранении этого поля в файл и последующем открытии его в hex редакторе данные имеют вид FE 06 00 01 01 и так далее, известно, что в этом поле находится тип сообщения (2 байта), идентификатор оборудования (2 байта), направление работы (1 байт) и так далее.  Вопрос как можно работать с этими данными в VBS (разделять, сравнивать, сортировать) ?
Заранее благодарю за ответ!

Кто рано встает того и тапки

2

Re: VBS: [решено] работа с полем tinyblob в mysql

2 pavlikspb: К сожалению не имел опыта работы с mysql в VBS, но судя по названию tibyBLOB в поле лежат двоичные данные. Для работы с ними у объекта Recordset, а вернее у его подчинённого объекта Field есть методы GetChunk и AppendChunk. Можно ли эти данные сравнивать за счёт SQL запроса - не знаю. Надо документацию к mysql поизучать. А вот обычным перебором и сравнением, думаю вполне реально.

Наверное как нибудь так. Сравнение первых трёх байт в полях. (не проверял, но подозреваю, что так)


msgbox Recordset("field1").GetChunk(3) = Recordset("field2").GetChunk(3)

http://www.w3schools.com/ado/met_field_getchunk.asp
http://www.w3schools.com/ado/met_field_appendchunk.asp

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !

3

Re: VBS: [решено] работа с полем tinyblob в mysql

Большое спасибо за подсказку - обязательно почитаю, но пока реализовал прямо в запросе

    set rsT1 = connT.Execute("SELECT ID, LOGTIME, AREA, hex(LOGDATA), EMPHINT, DEVHINT FROM LOGS WHERE ((LOGS.EMPHINT)= " & intEmp & " and (hex(LOGS.LOGDATA) LIKE 'FE06______03%')) ORDER BY LOGTIME")
Кто рано встает того и тапки