GRAVAR ARQUIVO MP3 NA TABELA DO SQL SERVER COMPACT

SOBREIRA 18/10/2015 13:18:55
#452674
Após varios dias de pesquisa em livros e na Internet não consegui desvendar como proceder para garvar arquivos de músicas no formato MP3 na minha tabela do Sql Server Compact 3.5 (Músicas.sdf).
Peço ajuda da comunidade para solucionar, caso possível, esta pendência de um amigo que solicitou que o seu PLAY fosse tocar as músicas de um determinado gênero diretamente de uma tabela. Ele não quer que o seu play va buscar o arquivo em pastas.
Tenho em meu computador instalado o VISULA STUDIO 2012.
Um muito obrigado!

Minha Tabela é.....: MUSICAS.sdf (Tabela do SQL Server Compac 4)
Os campos são....: IdMúsica - (Int - Chave primária)
Ano - (nvarchar - tamanho 4)
MúsicaMP3 - (varbinary - tamanho 100)
JABA 18/10/2015 13:38:48
#452675
Procure algo como FileStream ou VARBINARY(MAX) para os tipos dos campos no Banco de dados.
KERPLUNK 18/10/2015 17:13:48
#452676
Existe mais de uma forma de se fazer isso, a melhor é como o JABA falou, armazenando literalmente o arquivo. Também é possível armazenar em formato Base64, que é texto, mas isso envolve conversão para gravar e para transformar de volta em MP3
JCM0867 18/10/2015 19:53:56
#452680
Não vejo o motivo para se fazer isso.
Eu faria o seguinte, deixaria os arquivos MP3 fora do SQL server, em um diretório qualquer.
E no SQL server gravaria o nome do MP3 e caminho que MP3 se encontra, muito mais simples.
JABA 18/10/2015 20:38:28
#452685
Citação:

Não vejo o motivo para se fazer isso.
Eu faria o seguinte, deixaria os arquivos MP3 fora do SQL server, em um diretório qualquer.
E no SQL server gravaria o nome do MP3 e caminho que MP3 se encontra, muito mais simples.



JCM0867, o sistema já está implementado desta forma.
JCM0867 19/10/2015 13:43:13
#452716
Olha nunca guardei MP3 mas ja guardei imagem , quem sabe é parecido tenta algo assim:

LogoMedio = carregaImagem(RaizSistema + [Ô]\Imagens\Logotipos\[Ô] + Par_LogotipoMedio)
LogoGrande = carregaImagem(RaizSistema + [Ô]\Imagens\Logotipos\[Ô] + Par_LogotipoGrande)

sqlLogoTipo = [Ô]Update Logotipo [Ô] +
[Ô]Set LogotipoMedio = @ImgMedio, [Ô] +
[Ô]LogotipoGrande = @ImgGrande[Ô]

cdLogoTipo.Parameters.Add([Ô]@ImgMedio[Ô], [txt-color=#e80000]SqlDbType.Image).Value = LogoMedio[/txt-color]
cdLogoTipo.Parameters.Add([Ô]@ImgGrande[Ô], [txt-color=#e80000]SqlDbType.Image).Value = LogoGrande[/txt-color]

Os campos no Banco de dados estão no formato image, mas tenta binary
SOBREIRA 22/10/2015 13:24:57
#452896
Citação:

:
Olha nunca guardei MP3 mas ja guardei imagem , quem sabe é parecido tenta algo assim:

LogoMedio = carregaImagem(RaizSistema + [Ô]ImagensLogotipos[Ô] + Par_LogotipoMedio)
LogoGrande = carregaImagem(RaizSistema + [Ô]ImagensLogotipos[Ô] + Par_LogotipoGrande)

sqlLogoTipo = [Ô]Update Logotipo [Ô] +
[Ô]Set LogotipoMedio = @ImgMedio, [Ô] +
[Ô]LogotipoGrande = @ImgGrande[Ô]

cdLogoTipo.Parameters.Add([Ô]@ImgMedio[Ô], [txt-color=#e80000]SqlDbType.Image).Value = LogoMedio[/txt-color]
cdLogoTipo.Parameters.Add([Ô]@ImgGrande[Ô], [txt-color=#e80000]SqlDbType.Image).Value = LogoGrande[/txt-color]

Os campos no Banco de dados estão no formato image, mas tenta binary



Um muito obrigado. Não consegui gravar o arquivo.
SOBREIRA 28/10/2015 22:09:56
#453215
Citação:

:
Não vejo o motivo para se fazer isso.
Eu faria o seguinte, deixaria os arquivos MP3 fora do SQL server, em um diretório qualquer.
E no SQL server gravaria o nome do MP3 e caminho que MP3 se encontra, muito mais simples.



Obrigado: Já fiz como mencionado acima, porém o colega quer que as músicas estejam inclusas na tabela. Continuo estudando e aguardanto. (28/10/2015)
JABA 28/10/2015 22:27:34
#453217
Citação:

Procure algo como FileStream ou VARBINARY(MAX) para os tipos dos campos no Banco de dados.



E o domínio (tipo do campo) no banco de dados, você achou alguma parecido com o que eu postei?
KERPLUNK 28/10/2015 22:33:51
#453218
Bem, sua tabela deve conter um campo VARCHAR(MAX), como já mencionado. Você terá então que ter uma função para converter o arquivo desejado para Base64, mais ou menos assim:

Public Function ConvertFileToBase64(ByVal NomeArquivo As String) As String
Return Convert.ToBase64String(System.IO.File.ReadAllBytes(NomeArquivo))
End Function


Para gravar, uma query normal:

Dim cmd As New SqlCommand
cmd.CommandText = [Ô]INSERT INTO Tabela (campo1, campo2) VALUES (@value1, @value2)[Ô]
cmd.Parameters.AddWithValue([Ô]@value1[Ô], [Ô]algum valor[Ô])
cmd.Parameters.AddWithValue([Ô]@value2[Ô], ConvertFileToBase64([Ô]C:\pasta\arquivo.mp3[Ô]))

cmd.Execute


Basicamente é isso.
DS2T 28/10/2015 22:41:16
#453219
Passo a passo, sem mistério.

http://www.aspsnippets.com/Articles/Read-and-Write-BLOB-Data-to-SQL-Server-database-using-C-and-VBNet.aspx


Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas