powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема добавления двоичных данных через АДО
4 сообщений из 4, страница 1 из 1
Проблема добавления двоичных данных через АДО
    #32308877
Kach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раньше добавлял через ДАО все работало
преписал клиента на АДОР и вот ошибка
---------------------старый код
' добавляем файл в таблицу tblIntelFiles

Dim rstFiles As DAO.Recordset
Dim lngFile As Long

lngFile = FreeFile
Open strFileName For Binary Access Read Shared As lngFile
Set rstFiles = CurrentDb.OpenRecordset("tblIntelFiles", dbOpenTable)

With rstFiles

.AddNew
'передаем ее intRecID
!fldIntelBaseID = intRecID

!fldFile = Input(LOF(lngFile), lngFile)
.Update
.Close
End With
Set rstFiles = Nothing

Close lngFile
Reset
---------------- новый код
Open strFileName For Binary Access Read Shared As lngFile


Set rstIcon = New ADODB.Recordset
With rstIcon
Set .ActiveConnection = CurrentProject.Connection
.CursorType = adOpenKeyset
.CursorLocation = adUseServer
.LockType = adLockOptimistic
.Source = "SELECT tblIcon.fldIconNameID, tblIcon.fldIconName, tblIcon.fldIconData FROM tblIcon;"
.Open
.AddNew
.Fields("fldIconName") = strFileName
'.Fields("fldIconData") = strFileData
.Fields("fldIconData") = Input(LOF(lngFile), lngFile)
.Update
.Close
End With
Set rstIcon = Nothing
Close lngFile
Reset
Me.Refresh
---------------пишет ошибку ОЛЕ ДБ провайдера
как это побороть
...
Рейтинг: 0 / 0
Проблема добавления двоичных данных через АДО
    #32308883
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я в этом слабо разбираюсь, но неплохо бы задать вопрос в понятном виде. На какой команде выдается ошибка?
...
Рейтинг: 0 / 0
Проблема добавления двоичных данных через АДО
    #32308897
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AppendChunk Method
Appends data to a large text or binary data Field, or to a Parameter object.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
AppendChunk and GetChunk Methods Example (VB)
This example uses the AppendChunk and GetChunk methods to fill an image field with data from another record.

'BeginAppendChunkVB
Public Sub AppendChunkX()

   Dim cnn1 As ADODB.Connection
   Dim rstPubInfo As ADODB.Recordset
   Dim strCnn As String
   Dim strPubID As String
   Dim strPRInfo As String
   Dim lngOffset As Long
   Dim lngLogoSize As Long
   Dim varLogo As Variant
   Dim varChunk As Variant
   
   Const conChunkSize = 100

   ' Open a connection.
   Set cnn1 = New ADODB.Connection
      strCnn =  "Provider=sqloledb;"  & _
       "Data Source=MyServer;Initial Catalog=Pubs;User Id=sa;Password=; " 
   cnn1.Open strCnn
   
   ' Open the pub_info table.
   Set rstPubInfo = New ADODB.Recordset
   rstPubInfo.CursorType = adOpenKeyset
   rstPubInfo.LockType = adLockOptimistic
   rstPubInfo.Open "pub_info", cnn1, , , adCmdTable
   
   ' Prompt for a logo to copy.
   Dim strMsg As String
   strMsg =  "Available logos are : "  & vbCr & vbCr
   Do While Not rstPubInfo.EOF
      strMsg = strMsg & rstPubInfo!pub_id & vbCr & _
         Left(rstPubInfo!pr_info, InStr(rstPubInfo!pr_info,  "," ) -  1 ) & _
         vbCr & vbCr
      rstPubInfo.MoveNext
   Loop
   strMsg = strMsg &  "Enter the ID of a logo to copy:" 
   strPubID = InputBox(strMsg)
   
   ' Copy the logo to a variable in chunks.
   rstPubInfo.Filter = "pub_id = ' " & strPubID & " '"
   lngLogoSize = rstPubInfo!logo.ActualSize
   Do While lngOffset < lngLogoSize
      varChunk = rstPubInfo!logo.GetChunk(conChunkSize)
      varLogo = varLogo & varChunk
      lngOffset = lngOffset + conChunkSize
   Loop
   
   ' Get data from the user.
   strPubID = Trim(InputBox( "Enter a new pub ID"  & _
                             " [must be > 9899  & <  9999 ]:"))
   strPRInfo = Trim(InputBox( "Enter descriptive text:" ))

   ' Add the new publisher to the publishers table to avoid
   ' getting an error due to foreign key constraint.
   cnn1.Execute  "INSERT publishers(pub_id, pub_name) VALUES('" & _
                  strPubID & "','Your Test Publisher')" 
   
   ' Add a new record, copying the logo in chunks.
   rstPubInfo.AddNew
   rstPubInfo!pub_id = strPubID
   rstPubInfo!pr_info = strPRInfo

   lngOffset = 0 ' Reset offset.
   Do While lngOffset < lngLogoSize
      varChunk = LeftB(RightB(varLogo, lngLogoSize - lngOffset), _
         conChunkSize)
      rstPubInfo!logo.AppendChunk varChunk
      lngOffset = lngOffset + conChunkSize
   Loop
   rstPubInfo.Update
   
    ' Show the newly added data.
   MsgBox "New record: " & rstPubInfo!pub_id & vbCr & _
      "Description: " & rstPubInfo!pr_info & vbCr & _
      "Logo size: " & rstPubInfo!logo.ActualSize

   ' Delete new records because this is a demonstration.
   rstPubInfo.Requery
   cnn1.Execute  "DELETE FROM pub_info "  & _
       "WHERE pub_id = '" & strPubID & "'" 

   cnn1.Execute  "DELETE FROM publishers "  & _
       "WHERE pub_id = '" & strPubID & "'" 

   rstPubInfo.Close
   cnn1.Close

End Sub
'EndAppendChunkVB

...
Рейтинг: 0 / 0
Проблема добавления двоичных данных через АДО
    #32309000
uchastik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim mstream As New ADODB.Stream
Dim rec As New ADODB.Recordset
Dim filePatch As String
Dim fso As Object
Dim strConect As String

strConect = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog= test ;Data Source=SAPP1"
Set fso = CreateObject("Scripting.FileSystemObject")
FilePath = OpenFile("", "")
If FilePath = "" Then Exit Sub
If Not fso.FileExists(FilePath) Then
MsgBox "Файл не найден "
Exit Sub
End If
rec.Open "SELECT * FROM GTD_Appendix ", strConect, adOpenKeyset, adLockOptimistic
rec.AddNew
rec.Fields("GTD_ID").Value = ID
If mstream.State = adStateOpen Then mstream.Close
mstream.Type = adTypeBinary
mstream.Open
mstream.LoadFromFile FilePath
rec.Fields("AppendixA").Value = mstream.Read
rec.Fields("AppendixAFileName").Value = fso.GetFileName(FilePath)
rec.Update
rec.Close
mstream.Close
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема добавления двоичных данных через АДО
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]