При работе с базой SQL server 5 возникла следующая проблема.
Одна из таблиц базы uindb.weld содержит поля формата blob. Вот так это выглядит в SQL
#----------------------------
# Table structure for weld
#----------------------------
CREATE TABLE `weld` (
`ID` bigint(20) unsigned NOT NULL auto_increment,
`wgrID` bigint(20) unsigned NOT NULL,
`Name` varchar(48) NOT NULL,
`StartTime` datetime NOT NULL,
`HeatTime` int(10) unsigned NOT NULL,
`MaxTempr` int(10) unsigned NOT NULL,
`DevChgTime` int(10) unsigned NOT NULL,
`HardTime` int(10) unsigned NOT NULL,
`MaxAirPress` int(10) unsigned NOT NULL,
`Result` varchar(64) NOT NULL,
`TemprTable` blob,
`AirPressTable` blob,
PRIMARY KEY (`ID`),
UNIQUE KEY `xID` (`ID`),
KEY `xWgr` (`wgrID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
т.е. это поля
`TemprTable` blob,
`AirPressTable` blob,
Эти поля содержат числовые данные.
Пытаюсь вытащить эти данные в VB 6. Код имеет вид:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mystream As ADODB.Stream
Private Sub Command1_Click()
Set cn = New ADODB.Connection
Set mystream = New ADODB.Stream
mystream.Type = adTypeText
mystream.Open
cn.ConnectionString = "DSN=Magnit;UID=root;PWD=smn;"
cn.Open
Set rs = New ADODB.Recordset
rs.CursorType = adOpenDynamic
Set rs.ActiveConnection = cn
'************
'Таблица Weld
'************
rs.Open "uindb.weld", cn, adOpenDynamic, adLockOptimistic
MsgBox "1"
j = 0
rs.MoveFirst
Do While Not rs.EOF
j = j + 1
If j = 1 Then
mystream.Write rs.Fields(10).Value
mystream.SaveToFile "c:\p.txt", adSaveCreateOverWrite
End If
rs.MoveNext
Loop
rs.Close
cn.Close
End Sub
Выполнение затыкается на строке
mystream.Write rs.Fields(10).Value
Выдается сообщение Run-time-error
"Операция не допускается для данного контекста "
Помогите пожалуйста разобраться! Может быть кто то сталкивался с этой проблемой. Базу могу выслать, она не большая.
Ответить
|