Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 ADODB.recordset  [new]
ALEXIS_22
Member

Откуда:
Сообщений: 1188
Народ подскажите :

1. как правильно открыть Adodb.recordset на основе присоединенной таблицы SQL- Server.

2. Объект adodb.recordset - stream. У этого объекта есть метод Write, требующий параметра buffer. Каким указать этот параметр (с запасом "что бы все влезло.")

С уважением, спасибо !
22 дек 04, 14:16    [1200311]     Ответить | Цитировать Сообщить модератору
 Re: ADODB.recordset  [new]
_bob
Member

Откуда: Москва
Сообщений: 1654
это не чтобы все влезло :-)
рекордсет, это один обьект, стрим - другой, buffer - то, что писать в стрим, в данном случае там надо написать write(рекордсет!полеIMAGE)

на вот код и не парься

Dim str As ADODB.Stream, Rs As Recordset
Set str = New ADODB.Stream
str.Type = adTypeBinary
str.Open
Set Rs = CurrentDb.OpenRecordset(тут селект пишешь, dbOpenDynaset, dbSeeChanges)
str.Write (Rs!поле image)
Rs.Close
Set Rs = Nothing
str.SaveToFile curpath, adSaveCreateOverWrite
Dim wss As Object
Set wss = CreateObject("WScript.Shell")
wss.Run curpath
------------------
Best regards, _bob
22 дек 04, 14:59    [1200571]     Ответить | Цитировать Сообщить модератору
 Re: ADODB.recordset  [new]
ALEXIS_22
Member

Откуда:
Сообщений: 1188
_Bob, огромное человеческое спасибо! Очень выручили!
22 дек 04, 15:35    [1200806]     Ответить | Цитировать Сообщить модератору
 Re: ADODB.recordset  [new]
ALEXIS_22
Member

Откуда:
Сообщений: 1188
_bob, простите уж бестолкового. Кажется все разжевано дальше некуда.

Работает кстати супер, но для полноты картины обратная операция, через
stream.LoadFromFile не выходит.

Вот фрагмент кода:

Dim str As ADODB.Stream, Rs As DAO.Recordset, p
p = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name)))
p = p & "2\" & "NC.HLP"
Set str = New ADODB.Stream
str.Type = adTypeBinary
str.Open
Set Rs = CurrentDb.OpenRecordset("OPIT", dbOpenDynaset, dbSeeChanges)
str.LoadFromFile p
str.Write (Rs(2))
Rs.Close
Set Rs = Nothing

Что же не так?
24 дек 04, 14:23    [1207843]     Ответить | Цитировать Сообщить модератору
 Re: ADODB.recordset  [new]
Hummer
Member

Откуда:
Сообщений: 2583
' грузим из файла в табличку MenuPictures - сначала маску, затем картинку
rs_mstr.Open "Select * from MenuPicture", con, adOpenDynamic, adLockOptimistic
mstream.Type = adTypeBinary
' грузим маску и картинку
mstream.Open
mstream.LoadFromFile MaskFileName
rs_mstr.AddNew
rs_mstr("MenuPicture").Value = mstream.Read
rs_mstr.Update
' закрываем рекордсет по картинкам и поток
rs_mstr.Close: Set rs_mstr = Nothing
mstream.Close

В данном случае мы добавляем запись в рекордсет - просто нужно исправить применительно к вашей ситуации...
24 дек 04, 14:36    [1207921]     Ответить | Цитировать Сообщить модератору
 Re: ADODB.recordset  [new]
ALEXIS_22
Member

Откуда:
Сообщений: 1188
Ну вот теперь порядок. Спасибо.

Как приятно, что мир не без знающих людей !
24 дек 04, 15:22    [1208229]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить