|
|
Postada em 18/01/2006 20:06 hs
Eu tenho um form que faz o cadastro de funcionários, onde tem um picturebox que armazena a foto do funcionário! Preciso salvar esta imagem no BD através de uma instrução SQL (INSERT), porém não sei como fazer ! Vejam bem, não é salvar o caminho no BD e sim a imagem, certo ? Obrigado!
|
|
|
|
|
|
Geronimo
|
JOINVILLE SC - BRASIL
|
|
ENUNCIADA !
|
|
|
Postada em 19/01/2006 16:07 hs
Este código mostra imagens num banco de dados access ou SQL Server, a diferença está somente na connection string no evento form_load.
Crie um projeto vazio e desenhe um image control, na sua propriedade DataField coloque o nome do seu campo imagem do banco de dados. Crie também 2 commandbuttons e um ADO Data Control, este último pode ser deletado logo após ser criado. Fazemos isso para criar as referências a objetos necessários ao ADO.
Cole o seguinte código no form:
Dim adoRS As ADODB.Recordset
Private Sub Command1_Click()
On Error GoTo GoNextError
If Not adoRS.EOF Then adoRS.MoveNext If adoRS.EOF And adoRS.RecordCount > 0 Then adoRS.MoveMax mbDataChanged = False
Exit Sub
GoNextError: MsgBox Err.Description End Sub
Private Sub Command2_Click()
On Error GoTo GoPrevError
If Not adoRS.BOF Then adoRS.MovePrevious If adoRS.BOF And adoRS.RecordCount > 0 Then adoRS.MoveMin mbDataChanged = False
Exit Sub
GoPrevError: MsgBox Err.Description
End Sub
Private Sub Form_Load()
Dim db As Connection Set db = New Connection db.CursorLocation = adUseClient 'Connection String 'Altere para o seu banco de dados db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:Meu Banco de Dados.mdb;" Set adoRS = New Recordset adoRS.Open "Minha Tabela", db, adOpenStatic, adLockOptimistic
'Bind Image Control Set Image1.DataSource = adoRS
Command1.Caption = "==>" Command2.Caption = "<==" End Sub
"O pior inimigo que você poderá encontrar será sempre você mesmo."
|
|
|
|
|
|
Postada em 19/01/2006 16:09 hs
Crie um form com 2 commandbuttons, 1 commondialog e um picturebox e cole o código abaixo mudando onde necessário.
Dim cn As ADODB.Connection Dim RS As ADODB.Recordset
Private Sub SalvaEmArquivo(FLD As Field, FN As String, Optional PIC As PictureBox)
' Salva a imagem passada em FLD num arquivo cujo caminho está em FN e ' opcionalmente mostra a imagem no picturebox PIC Dim MStream As ADODB.Stream Set MStream = New ADODB.Stream MStream.Type = adTypeBinary MStream.Open MStream.Write FLD.Value MStream.SaveToFile FN, adSaveCreateOverWrite If IsMissing(PIC) = False Then PIC.Picture = LoadPicture(FN) End If
MStream.Close Set MStream = Nothing End Sub
Private Sub SalvaEmBanco(RS As Recordset, FN As String, IMGField As String)
' Salva o conteúdo de um arquivo de imagem no banco Dim MStream As ADODB.Stream Set MStream = New ADODB.Stream MStream.Type = adTypeBinary MStream.Open MStream.LoadFromFile FN RS(IMGField) = MStream.Read MStream.Close Set MStream = Nothing End Sub
Sub command1_click()
' Salva imagem do banco em arquivo Set cn = New ADODB.Connection cn.Open "Provider=SQLOLEDB.1;Data Source=local_server;Initial Catalog=codex;User ID=sa;Persist Security Info=True" Set RS = New ADODB.Recordset RS.Open "Select * FROM Imagens", cn, adOpenKeyset, adLockOptimistic ' Buscando sempre a última imagem, mude de acordo com a sua necessidade RS.MoveMax With commondialog1 .FileName = "" .Filter = "Image (*.gif)|*.gif" .ShowSave If Len(.FileName) <> 0 Then SalvaEmArquivo RS("Imagem"), .FileName, Picture1 End If End With RS.Close cn.Close MsgBox "Imagem salva do banco para: " & cdOpen.FileName End Sub
Private Sub Command2_Click()
' Salva imagem no banco Set cn = New ADODB.Connection cn.Open "Minha Connection String" Set RS = New ADODB.Recordset RS.Open "Select * from Minha_Tabela", cn, adOpenKeyset, adLockOptimistic With cdOpen .FileName = "" .Filter = "Image (*.gif)|*.gif" .ShowOpen RS.AddNew ' Na hora de salvar a imagem use a sub abaixo SalvaEmBanco RS, .FileName, "Imagem" RS.Fields("Arquivo") = Right(.FileName, Len(.FileName) - InStrRev(.FileName, "")) RS.Update End With RS.Close cn.Close MsgBox "Imagem " & cdOpen.FileName & " salva!"
End Sub
Private Sub Form_Load()
Picture1.AutoSize = True Command1.Caption = "Salva em Arquivo" Command2.Caption = "Salva no Banco" End Sub
"O pior inimigo que você poderá encontrar será sempre você mesmo."
|
|
|
|
|