ERRO AO GRAVAR FOTOS NO SERVIDOR PELA ESTACAO

MHDSERAFS 26/10/2011 22:13:39
#387840
se eu gravo pelo servidor:
logo
C:\DIET\DIET\BIN\DEBUG\LOGOS\empresa.JPEG

se eu gravo pela estacao
\\192.168.0.100\c\DIET\DIET\BIN\DEBUG\LOGOS\empresa.JPEG

se eu abrir por qualquer estação não da problema, mas se abro pelo servidor ele alterar o caminho da minha para C:\DIET\DIET\BIN\DEBUG\LOGOS\empresa.JPEG
e da erro na estacao depois pois não encontra o caminho
ALTAIR148 26/10/2011 22:16:20
#387841
Então, mesmo quando for gravado no servidor tem que ser gravado pelo caminho da rede.
MHDSERAFS 26/10/2011 22:24:52
#387842
sim...
mas como faço isso???
ALTAIR148 26/10/2011 22:29:55
#387844
Resposta escolhida
Como você manda salvar na estação? é só usar a mesma forma no servidor.
MHDSERAFS 26/10/2011 22:39:23
#387845
para gravar eu faço assim...

Private Sub SALVARFOTO()
Try
FileCopy(TXTORIGEM.Text, TXTDESTINO.Text)
LOGOPictureBox.Image.Dispose()
Catch ex As Exception


End Try
End Sub
ALTAIR148 26/10/2011 22:46:56
#387847
Assim, eu preciso saber as duas formas, preciso que de um exemplo de como é feito na estação e de como é feito no servidor.
MHDSERAFS 26/10/2011 22:53:15
#387848
eu compartilho o servidor...
uso este codigo para buscar a imagem e no banco eu salvo o caminho do arquivo...

[ô]foto
Private Sub escolherfoto()
Dim origem As String
Dim novonome As String
Dim caminho2 As String = [Ô]\logos\[Ô]
Dim caminho As String = Application.StartupPath
Try
If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
origem = OpenFileDialog1.FileName

novonome = NOMETextBox.Text + [Ô].jpeg[Ô]
TXTORIGEM.Text = origem

TXTDESTINO.Text = caminho & caminho2 & novonome
LOGOPictureBox.Image = Image.FromFile(origem & LOGOPictureBox.Text)

End If
Catch ex As Exception
MessageBox.Show(ex.Message, [Ô]ERRO AO ABRIR FOTO.[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)


End Try
End Sub

Private Sub SALVARFOTO()
Try
FileCopy(TXTORIGEM.Text, TXTDESTINO.Text)
LOGOPictureBox.Image.Dispose()
Catch ex As Exception


End Try
End Sub

Private Sub Excluirfoto()
Dim novonome As String
Dim caminho As String = Application.StartupPath
Dim caminho2 As String = [Ô]\logos\[Ô]
novonome = NOMETextBox.Text + [Ô].jpeg[Ô]

LOGOPictureBox.Image.Dispose()
[ô]exclui a foto
Kill(caminho & caminho2 & novonome)
TXTDESTINO.Text = [Ô][Ô]
LOGOPictureBox.Image = LOGOPictureBox.InitialImage


End Sub
PROFESSOR 26/10/2011 22:59:24
#387849
Citação:

ESTAVA PENSANDO...

eu uso estas conexao:

[Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\banco\diet.mdb[Ô]
Dim conecta As String = [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source =..\debug\Banco\diet.mdb[Ô]

gostaria de no caminho onde gravar a imagem
destino = [Ô]C:\dietnet\dietnet\Logos\[Ô]
no lugar do C...
ele buscar o caminho da pasta do banco...



Bom, ficou estranho... Explico:

  • Se você usa como conexão a primeira linha, a pasta
  • [Ô]|DataDirectory|[Ô] é a CommonAppDataPath ou a UserAppDataPath. Ambas são sempre localizadas fisicamente em uma sub-pasta do próprio executável, e não em um servidor de rede. Neste primeiro caso, a sintaxe aparentemente indica uma aplicação Web e não Winforms, e nesse caso, tudo muda de figura, ou seja, o próprio conceito de gravação da imagem é diferente.

  • Se você usa a segunda linha em sua conexão,
  • [Ô]..\debug\Banco[Ô], isso implica em que a base de dados fica sempre na pasta [Ô]debug[Ô], dentro da pasta local de instalação da aplicação, e novamente não é um caminho de pasta em servidor de rede. Nesta segunda linha, ainda, a pasta [Ô]debug[Ô] não é gerada na distribuição de uma aplicação, á menos que você tenha [Ô]colado[Ô] o arquivo Access lá e dito ao compilador para sempre gerar o arquivo.

    Em ambos os casos, a aplicação e o banco estão sempre na máquina local. Aí me [Ô]bateu[Ô] uma dúvida. Pode ser que você esteja fazendo algo que estou imaginando aqui (não estou afirmando isso):

    Caso o aplicativo seja mesmo WinForms, você não estaria porventura tentando executar de uma estação, a aplicação que está em um servidor, usando um atalho, estaria? Nem está abrindo na estação uma pasta de rede onde está a aplicação para executar, certo? Se estiver fazendo isso, vai ter muita dor de cabeça, esse é um modo errado de ver as coisas. Se é um aplicativo usando uma fonte de dados centralizada, cada estação tem de estar com o seu próprio aplicativo (integral) e a conexão deve ser [Ô]amarrada[Ô] no config (ou no ini, ou nos settings). Para ter um só aplicativo (exe), um só banco e várias estações usando, existem, sim, algumas opções, que são: 1. - Aplicação Web; 2. - Terminal Server; 3 - Virtualização. Fora esses três casos, cada estação tem de estar com a sua instalação, o seu executável.
    Página 2 de 2 [18 registro(s)]
    Tópico encerrado , respostas não são mais permitidas