31. maj 2004 - 18:30Der er
30 kommentarer og 1 løsning
flytte fil fra database til mappe
Jeg har en fil liggende i et database-felt (bindata). Når jeg via enterprise manager kigger på feltet står den en masse tegn begyndende med 0x
Jeg vil gerne vha VB flytte filen fra databasen til en mappe.
Jeg troede jeg kunne kalde SaveFile(path,objRec("bindata"))
Sub SaveFile(filepath, str) Dim objFSO As Object Dim objNewFile As Object Set objFSO = CreateObject("Scripting.FileSystemObject") Set objNewFile = objFSO.CreateTextFile(filepath) objNewFile.WriteLine (str) objNewFile.Close End Sub 'SaveFile
Men den giver nedenstående fejl ved linien (objNeWFile.WriteLine(str)
Invalid procedure call or argument
--min fil er et word-dokument så måske hænger der sammen med at der ikke er tale om en text-file, men hvad gør jeg så ?
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
Public Sub SaveFile(ByVal strPath As String, ByVal strData As String) Dim intFree As Integer intFree = FreeFile Open strPath For Binary Access Write As #intFree Put #intFree, 1, strData Close #intFree End Sub
Din version af SaveFile virker for så vidt at jeg nu får en fil i min mappe, men den har ikke extension .doc og hvis jeg åbner den i word viser den bare nogle firkanter og et enkelt ord. Ved du hvad der er galt ?
Jeg har lige fået filen til at få den rigtige extension (den gemmes nemlig også i databasen) Men når jeg åbner wordfilen siger den Microsoft word can't import the specified format this feature is not currently installed. Would you like to install i now? og hvis jeg vælger no vises et langt worddokument hovedsagelig bestående af firkanter
Det kan måske have noget at sige at jeg reelt ikke bruger objRec("bindata") direkte men først hælder resultatet af min select-sætning over i et array vha. getRows.
de filer der ligger i databasen fås normalt ud vha. en komponent. Jeg plejer at arbejde i ASP Grunden til at jeg gerne vil pille filerne ud enkelt-vis er at jeg gerne vil kunne lave en mappestruktur med filerne som jeg kan zippe under et.
det kunne jo være at den komponent du bruger laver en konversion af den data som bliver gemt i din database.. og at du ikke kan få du ud igen uden at bruge den.
Public Function ConvArrayToString(nArray As Variant) As String Dim strResult As String Dim i As Long For i = LBound(nArray) To UBound(nArray) strResult = (strResult & Chr(nArray(i))) Next i ConvArrayToString = strResult End Function
jeg mener ikke aspsmartupload konverterer filen. Jeg har faktisk et script (som ikke benytter komponenten) som kan vise word-dokumenter fra databasen på en asp-side vha
StrConv skal have en streng som input og det er objRec("bindata") jo netop ikke -- så jeg tror ikke dit forslag med denne funktion overhovedet har nogen effekt i mit eksempel. At prøve at lave andre konverteringer til string tror jeg derfor ikke på.
Nu ser det ud til at virke -- skønt jeg troede jeg tidligere havde prøvet denne kombination:
Dim intFree As Integer intFree = FreeFile Dim strPath As String Dim strData As String strPath = mypath strData = StrConv(objRec("bindata"), vbUnicode) Open strPath For Binary Access Write As #intFree Put #intFree, 1, strData Close #intFree
Jeg tror kernen i mit problem var at jeg tilsyneladende ikke måtte putte objRec("bindata") ind i en temporær variabel.
og til Bertie: selv med variant gav den "type mismatch"
Synes godt om
Slettet bruger
04. juni 2004 - 17:52#30
Jamen det var da godt at det lykkedes for dig, jeg har nemlig fulgt med for jeg har lidt samme situation så jeg vil da prøve om jeg kan bruge 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.