Как из приложения Vb закачать картинки в Бд-MSSQl Server

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
alex-mai
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 12.01.2005 (Ср) 1:50

Как из приложения Vb закачать картинки в Бд-MSSQl Server

Сообщение alex-mai » 12.01.2005 (Ср) 2:43

Всем привет!
Есть БД (MS SQl Server), приложение на VB 6.0
В таблице одно из полей имеет тип image(binary)
Форма , записи таблицы отображает, а как работать с картинками к
сожалению я не в курсе. В книге кроме записи что "работать с типом данных image труднее "ничего нет . :(

Надо чтобы в форме отображалось,смена картинок при переходе к след. записи.

картинки есть а как их связать с Бд.
Плиз HELP Новичку :cry:

codemaster
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 604
Зарегистрирован: 13.02.2004 (Пт) 13:35

Сообщение codemaster » 12.01.2005 (Ср) 12:29

смотри AppendChunk , GetChunk Methods

http://msdn.microsoft.com/library/defau ... chunkx.asp[/b]
//<-
Mit freundlichen Grüßen
//->

alex-mai
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 12.01.2005 (Ср) 1:50

Сообщение alex-mai » 13.01.2005 (Чт) 1:59

Привет!
Спасибо, за ссылку.
Поиск выдал такой пример.
1)нельзя ли подробно прокомментировать, где тут и что делается.
2) Правильно ли я вообще понимаю ход событий:
На форме созд-ся Picture Box откуда-нибудь копируется картинка и вставл-ся
Создается кнопка и в обработчик засовываем куски кода из примера.
При нажатии выезжают окна, где вводится номер записи.
Потом О.К и картинка перекачивается в Бд (и потом отображается) или нет. :oops:
Пример:
'BeginAppendChunkVB

'To integrate this code
'replace the data source and initial catalog values
'in the connection string

Public Sub Main()
On Error GoTo ErrorHandler

'recordset and connection variables
Dim Cnxn As ADODB.Connection
Dim strCnxn As String
Dim rstPubInfo As ADODB.Recordset
Dim strSQLPubInfo As String
'record variables
Dim strPubID As String
Dim strPRInfo As String
Dim lngOffset As Long
Dim lngLogoSize As Long
Dim varLogo As Variant
Dim varChunk As Variant
Dim strMsg As String

Const conChunkSize = 100

' Open a connection
Set Cnxn = New ADODB.Connection
strCnxn = "Provider='sqloledb';Data Source='MySqlServer';" & _
"Initial Catalog='Pubs';Integrated Security='SSPI';"
Cnxn.Open strCnxn

' Open the pub_info table with a cursor that allows updates
Set rstPubInfo = New ADODB.Recordset
strSQLPubInfo = "pub_info"
rstPubInfo.Open strSQLPubInfo, Cnxn, adOpenKeyset, adLockOptimistic, adCmdTable

' Prompt for a logo to copy
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
Cnxn.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 demo
rstPubInfo.Requery
Cnxn.Execute "DELETE FROM pub_info " & _
"WHERE pub_id = '" & strPubID & "'"

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

' clean up
rstPubInfo.Close
Cnxn.Close
Set rstPubInfo = Nothing
Set Cnxn = Nothing
Exit Sub

ErrorHandler:
' clean up
If Not rstPubInfo Is Nothing Then
If rstPubInfo.State = adStateOpen Then rstPubInfo.Close
End If
Set rstPubInfo = Nothing

If Not Cnxn Is Nothing Then
If Cnxn.State = adStateOpen Then Cnxn.Close
End If
Set Cnxn = Nothing

If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
'EndAppendChunkVB


Sorry, за глупые вопросы , но очень надо....... :cry:


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList