Avatar billede jens_k Nybegynder
17. juni 2002 - 13:02 Der er 11 kommentarer og
1 løsning

Billeder ud af Access

Hejsa..

Jeg har en Access Database med 900 billeder i..

Der er en kolonne med selve billedet, og en kolonne med filnavnet..

Jeg vil gerne have alle billerne ud af databasen, og de skal have det navn som står i filnavn kolonnen.

Jeg har nu prøvet i 14 dage ud fra de andre folk´s spørgsmål, men kan ikke få det til at virke..

Nogen som kan give mig et script der kan gøre det ?

Kolonnen med selve billedet hedder : BinData
Kolonnen med navnet på billedet hedder : Filename

Jens K
Avatar billede eagleeye Praktikant
17. juni 2002 - 13:14 #1
Prøv at kikke på dette eks, er det sådan noget du søger:

http://www.activeserverpages.dk/aspdigital/kapitel2/sqlimage.asp
Avatar billede terry Ekspert
17. juni 2002 - 13:18 #2
well I would also like to see if this is possoble without having to open the picture in Paint or something and then saving it!
Avatar billede jens_k Nybegynder
17. juni 2002 - 13:27 #3
EagleEye ikke lige det script..

Det er det script jeg bruger når jeg viser billederne på siden.. Har prøvet at lege med FSO som du forslog mig i et andet spørgsmål jeg oprettede, men jeg er ikke så hardcore til ASP.. Måske du kan få det til at virke med FSO ?

Jens K
Avatar billede eagleeye Praktikant
17. juni 2002 - 13:30 #4
Ja jeg kan godt se det .. men man skal vel lave noget i samme stil, isted for at udskrive det kan man måske skrive det til en Stream og så genne dem som fil??

Jeg vil prøve at kigge på senere idag, aften bliver det nok. Skal lige hjem, men måske der kommer andre som har en god læsning.
Avatar billede jens_k Nybegynder
17. juni 2002 - 13:34 #5
Det ville bare være kanon hvis du kan finde en løsning på det...

Jens K
Avatar billede eagleeye Praktikant
17. juni 2002 - 17:37 #6
Jeg er kommet hjem og er ved at kigge på det nu, man kan lave det med ADODB.Stream obejct ideen til det jeg laver kan du finde her: http://support.microsoft.com/default.aspx?scid=kb;DA;q258038

Hvordan har du gemt det i db bare BinData og filanv så prøv dette, men det kommer vist an på hvordan man gemmer data!?!?

Jeg er kommet frem til dette. Jeg får godt en en Write Error når den forsøger at gemme filen, men kan du evt prøve det? Du må lige rette til med database navn og kolonne navne.

'Connection string
connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("FileDB.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
Conn.Open connStr

ID = Request.QueryString("ID")  'Enten via querystring eller sæt ID til et kendt billede
'ID = 3
strSQL = "SELECT * FROM Files WHERE ID = " & ID

rs.Open strSQL, Conn, 1
 
if rs.EOF then
  Response.Write "Ingen billede" 
Else
  Set streamObj = Server.CreateObject("ADODB.Stream")
  streamObj.Type = 1 'adTypeBinary
  streamObj.Open
  streamObj.Write rs.Fields("BinData").Value
  streamObj.SaveToFile rs("Filename")
'  streamObj.Write rs.Fields("File Data").Value
'  streamObj.SaveToFile rs("File Name"),2
end if
rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
Avatar billede eagleeye Praktikant
17. juni 2002 - 17:54 #7
arh den skal havde hele siten til filen for den vil gemme..
Avatar billede eagleeye Praktikant
17. juni 2002 - 18:01 #8
Ok.. jeg har fået det til at virke efter jeg skrev hele stien i SaveToFile..

Hvad indeholdr Filename og hvor skal filen gemmen?


Sådan her er det så jeg har lagt billederne i c:\inetpub\wwwroot\images og det kræver natuligvis skriverettigher.

<%
connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("FileDB.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.RecordSet")
Conn.Open connStr

ID = Request.QueryString("ID")
'ID = 3
strSQL = "SELECT * FROM Files WHERE ID = " & ID
rs.Open strSQL, Conn, 1
if rs.EOF then
  Response.Write "Ingen billede" 
Else
  Set streamObj = Server.CreateObject("ADODB.Stream")
  streamObj.Type = 1 'adTypeBinary
  streamObj.Open
  streamObj.Write rs.Fields("BinData").Value
  streamObj.SaveToFile "c:\inetpub\wwwroot\images" & rs("Filename"),2
  streamObj.Close 
  Set streamObj = Nothing
end if
rs.Close
Conn.Close
Set rs = Nothing
Set Conn = Nothing
%>
Avatar billede nih Novice
17. juni 2002 - 18:44 #9
Hvad format er dine billeder. HVIS det .bmp skal man af en eller anden grund skippe de første 78 byte.

Dette er vbs fil jeg engang brugte da jeg overtog en gammel database, og ville trække alle billederne ud.
felt(0) er blobfelt med bidledet i
felt(1) er sti + filnavn hvor bmp'erne skal gemmes.

Dim rst
  Dim strCnn
  dim stream
  dim strSave
  set strSave = WScript.createobject("ADODB.Stream")
  set stream = WScript.createobject("ADODB.Stream")
 
  set fso = WScript.createobject("Scripting.FileSystemObject")
  strsave.type = 1
  stream.type = 1
  ' Open compound recordset.
      strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\dokumenter\db2.mdb"

  set rst = WScript.CreateObject( "ADODB.Recordset" )
  rst.Open "SELECT * FROM tabel2 " , strCnn


      Do While Not rst.EOF
        stream.open
        strsave.open
        stream.Write rst.Fields(0).Value
       

        ' Barber de første 78 byte af ????????????
        stream.position = 79
        stream.copyto strsave
        strsave.savetofile  rst.fields(1),2
        stream.close
        strsave.close
        rst.MoveNext
      Loop
      set rst = nothing
      set stream = nothing
      set strSave = nothing
Avatar billede nih Novice
17. juni 2002 - 18:47 #10
øhh den fso, den hører vist ikke med :o)

niels
Avatar billede nih Novice
22. juni 2002 - 21:55 #11
jens_k >> hvordan går det
Avatar billede jens_k Nybegynder
23. juni 2002 - 00:37 #12
Undskyld jeg ikke svare før nu.. Har været væk fra denne mailkonto et stykke tid..

Har brugt EagleEye´s Script og det virker ganske udemærket.. Så det var da meget rart at få dem ud..

Tak for hjælpen Eksperter..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester