Avatar billede henrik2000 Nybegynder
04. februar 2002 - 08:01 Der er 8 kommentarer og
1 løsning

program til insert af binære filer

Hej!
jeg skal bruge et vb-program (eller andet) til at uploade en masse filer binært i en MS-SQL-database.

Jeg bruger SA FileUp-komponenten fra Software-artisans.

feltet i databasen skal være af typen "image", og det virker også fint med at uploade en fil af gangen fra en ASP-side. Men nu skal jeg overføre en masse gammel data, ca. 1000 dokumenter, og skal så bruge et program der kan indsætte filerne (samt filstørrelsen m.m.) i tabellen automatisk. Filerne lægger lige nu fysisk på harddisken, og skal så kopieres ind i databasen herfra.


Avatar billede terry Ekspert
04. februar 2002 - 08:20 #1
Cant you use DTS from SQL Server? (Import/Export wizard)
Avatar billede henrik2000 Nybegynder
04. februar 2002 - 08:29 #2
jeg skal overføre en masse word-dokumenter - i DTS kan jeg kun overføre en tekstfil af gangen (mener jeg).
Avatar billede terry Ekspert
04. februar 2002 - 08:38 #3
Not sure about that. The wizard can actually import MANY data types, although I'm not sure about a Word document!
Avatar billede henrik2000 Nybegynder
04. februar 2002 - 08:53 #4
ok - jeg vil prøve at kigge nærmere på DTS.
Avatar billede terry Ekspert
04. februar 2002 - 09:05 #5
Tak :o)
You should take a look at Books Online, there is a VERY good documentation on DTS. You can use VB Script Java or COM objects to transform your data, so I am quite sure that you shoul be able to import your Word docs.
Avatar billede henrik2000 Nybegynder
04. februar 2002 - 11:38 #6
Jeg har nu prøvet med noget VB:

nedenstående virker fint. Men jeg mangler stadig at få filerne læst ind i det binære felt i databasen. Nogen forslag?

Private Sub Command1_Click()

svar = MsgBox("Kopier filer?", vbYesNo)
' 6 = yes, 7=no

If svar = "7" Then
MsgBox ("Du valgte IKKE at kopiere")
Else
Call CopyFiles

MsgBox "Filkopiering til database færdig"

End If

End Sub


Sub CopyFiles()

Dim fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject

Source = "C:\filer\"

ConnectionstringToDB = "Driver={SQL Server};Server=xx;Uid=xx;Pwd=xx;Database=xxx"
Dim objConn As New ADODB.Connection
objConn.Open (ConnectionstringToDB)

If fso.FolderExists(Source) Then
    Set myFolder = fso.GetFolder(Source)
    Set myFiles = myFolder.Files
    For Each Item In myFiles
   
    FileName = Item.Name
   
    objConn.Execute ("INSERT INTO table (File_Name) VALUES ('" & FileName & "')")
    Next
End If

Set fso = Nothing

End Sub
Avatar billede terry Ekspert
04. februar 2002 - 11:57 #7
Sorry I dont. But to be honest it isnt a good practice in having the file (Word document) in the database. More often than not only the path and filename are stored in the dB.
Another thing, if I remember correctly image files are NOT actually stored in the database anyway!

You could also take a look at help on "image" data types in Books online.
Avatar billede henrik2000 Nybegynder
04. februar 2002 - 12:00 #8
Jeg SKAL gemme filerne binært i databasen.
Avatar billede terry Ekspert
04. februar 2002 - 12:21 #9
You could also take a look at help on "image" data types in Books online.
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
Kurser inden for grundlæggende programmering

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