INSERT FOTO

USUARIO.EXCLUIDOS 02/01/2005 00:06:16
#58104
fala galera ! ! ! feliz ano novo p gerallll . . .

como ficaria a sintaxe para salvar o caminho de uma imagem no banco de dados usando:
dim cod as long
dim foto as ???

insert into tb(cod,foto)values(" & cod & "," bom e a foto??")


LCSD 02/01/2005 00:10:56
#58106
Clark

Se levarmos em conta que o caminho nada mais é que uma String é só definir String mesmo.

Pode-se utilizar o "s" como prefixo indicando que é String:

Dim lCod as Long, sFoto as String


Assim, você saberá que lCod é Long, pelo "l" e que sFoto é String, pelo "s".
[s92]


USUARIO.EXCLUIDOS 02/01/2005 00:14:54
#58107
vlw, estava tentando isso mas como fica a variavel sfoto?

dim sfoto as string
[txt-color=#ff0000]sfoto = será?(app.path & "/img/ ...) ? ?? assim naum esta funcionando[/txt-color]
insert into tb(foto)values(' "& sfoto & " ')

obs estou usando o picture
MOISES.ARAUJO 02/01/2005 00:15:13
#58108
Resposta escolhida
se é para salvar somente o caminho ?

então;

Dim Cod as Long
Dim foto as string

CommonDialog1.filter = "Foto| *.bmp"
CommonDialog1.Showopen
if CommonDialog1.filename <> "" then
foto = CommonDialog1.filename
insert into tb(cod,foto)values(" & cod & "," foto")
end if





USUARIO.EXCLUIDOS 02/01/2005 00:29:15
#58109
da o seguinte sintax error
...

foto1 = cd.filename
...

bd.Execute ("insert into membro(cod,nome,end,tel,cel,cidade,foto) values (" & cod1 & ",'" & nome1 & "','" & ende1 & "'," & tel11 & "," & cel1 & ",'" & city1 & "','" & foto1 & "')")
MARCELO.VB.PIRA 02/01/2005 00:30:46
#58110
para salvar no disco

Citação:


SavePicture TxCliFoto,"c:\Arquivos de programas\sistema\fotos\" + CliCod + ".jpg"



onde txclifoto é uma image box e clicod é o codigo do cliente (por exemplo)



para ler do disco

Citação:


afff = ContarArquivos(c:\Arquivos de programas\sistema\fotos\" + CliCod + ".jpg")
If afff = 1 Then
TxCliFoto.Picture = LoadPicture(c:\Arquivos de programas\sistema\fotos\" + CliCod + ".jpg")
Else
TxCliFoto.Picture = LoadPicture(c:\Arquivos de programas\sistema\fotos\sem_foto.jpg)
End If




espero ter ajudado...
onde
sem_foto.jpg é um arquivo jpg pequeno de uma frase tipo(SEM FOTO"
afff -e uma função para checar se o arquivo existe
esta é a função:

Citação:


Private Const INVALID_HANDLE_VALUE = -1
Private Const MAX_PATH = 260
Private Const FILE_ATTRIBUTE_READONLY = &H1
Private Const FILE_ATTRIBUTE_HIDDEN = &H2
Private Const FILE_ATTRIBUTE_SYSTEM = &H4
Private Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Const FILE_ATTRIBUTE_ARCHIVE = &H20
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Const FILE_ATTRIBUTE_TEMPORARY = &H100
Private Const FILE_ATTRIBUTE_COMPRESSED = &H800

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type

Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) As Long

'Para usar a API acima use a seguinte função
Public Function ContarArquivos(Caminho As String, Tipo As String) As Long
10 On Error GoTo ContarArquivos_Error

20 Dim WFD As WIN32_FIND_DATA
30 Dim SA As SECURITY_ATTRIBUTES
40 Dim r As Long
50 Dim hFile As Long
60 Dim bNext As Long
70 Dim fCount As Long
80 Dim currFile As String

90 hFile = FindFirstFile(Caminho & Tipo, WFD)

100 If (hFile = INVALID_HANDLE_VALUE) Then
110 ContarArquivos = 0
120 Exit Function
130 End If

140 If hFile Then
150 Do
160 fCount = fCount + 1
170 bNext = FindNextFile(hFile, WFD)
180 Loop Until bNext = 0
190 End If

200 r = FindClose(hFile)

210 ContarArquivos = fCount

220 On Error GoTo 0
230 Exit Function

ContarArquivos_Error:
240 MsgBox "Ocorreu um Erro de número " & Err.Number & " (" & Err.Description & ") na linha " & Erl & " do(a) Function ContarArquivos inserido no(a) Módulo ContarArquivos_ em Controle_Comercial," & Time & "," & Date & "," & NomeUsuario & ",Máquina " & MaquinaEstacao & ",Empresa " & Vnomefantasia & ",Drive " & DriveTrabalho
End Function



uma dica, ao abrir o form para inserir o registro, já iguale o conteudo da image box com o arquivo jpg SEM_FOTO...

outra dica: coloque um controle (command) abaixo da image box, para que ao clicar nele, a image box pegue o conteudo da area de tranferencia, assim facilita a carga da imagem... pq vc pode pegar de dentro da camera, do scaner, do hd, do eter, de onde quiser!!! dá um control-C e depois vai para sua aplicação, clica no botão e a image box captura o conteudo da area de trannferencia...

os comandos para o botão de inserir imagem é:

Citação:


TxCliFoto.Picture = Clipboard.GetData()



para apagar o image box
Citação:


TxCliFoto.Picture = LoadPicture(c:\Arquivos de programas\sistema\fotos\sem_foto.jpg)
afff = ContarArquivos(c:\Arquivos de programas\sistema\fotos\"+ txclicod + ".jpg")
If afff = 1 Then Kill (c:\Arquivos de programas\sistema\fotos\"+ txclicod + ".jpg")

USUARIO.EXCLUIDOS 02/01/2005 00:52:11
#58112
vlw brow
MOISES.ARAUJO 02/01/2005 00:52:20
#58113
Por que voce nao tenta assim

bd.Execute "insert into membro values ('" & cod1 & "','" & nome1 & "','" & ende1 & "','" & tel11 & "','" & cel1 & "','" & city1 & "','" & foto1 & "')
OBS.
totos os campos da tabela tem que ser preenchido ou informado "NULL" no campo que vai ficar em branco.
E que voce deve colocar uma aspas semples e uma dupla em cada vaiavel.

[S25]
MOISES.ARAUJO 02/01/2005 01:17:09
#58115
Por que voce nao tenta assim

bd.Execute "insert into membro values ('" & cod1 & "','" & nome1 & "','" & ende1 & "','" & tel11 & "','" & cel1 & "','" & city1 & "','" & foto1 & "')
OBS.
totos os campos da tabela tem que ser preenchido ou informado "NULL" no campo que vai ficar em branco.
E que voce deve colocar uma aspas semples e uma dupla em cada vaiavel.

[S25]
Tópico encerrado , respostas não são mais permitidas