Avatar billede bobhund12 Nybegynder
22. marts 2004 - 06:38 Der er 1 kommentar og
1 løsning

Hvordan linker man eksterne filer til records i database?

Jeg er ved at udvikle en leverandoerdatabase med Access XP som front-end og SQL Server som Back-end. I denne database har jeg brug for at kunne linke forskellige Supplier Questionarries i Excel format til de respektive leverandoerer. I nogle tilfaelde skal jeg linke flere excelfiler til en record. Altsaa er det ikke nok at linke til tabellen, men derimod skal der linkes direkte til den enkelte record.

Jeg har ikke kunne finde svaret paa hvordan jeg goer ovenstaaende i SQL Server Online Books, ej heller i Access XP help funktionen, saa hvis der er nogen der ved hvordan ovenstaaende kan realiseres, saa vil jeg meget gerne hoere naermere.

Ogsaa gerne noget om hvordan filerne i praksis kan administreres paa serveren. Kan man fx oprette en folder i Enterprise Manager, som referer til en fysisk lokation paa serveren, hvor man kan loade de forskellige excelfiler over i?

Jeg er ikke interesseret i at importere data fra Excelfilerne til databasen.
Avatar billede somaliomar Praktikant
22. marts 2004 - 07:05 #1
En løsning kunne være at oprette en ny tabel i din database og lave en-til-mange relation sådan her:

LinkTable
lid    link                      suplierId
1      C:\links\fil1.xls        1
2      C:\links\fil2.xls        1
3      C:\links\fil3.xls        1
4      C:\links\fil4.xls        2

SupplierTable
suplierId      suplierName
1                suplier1
2                suplier2

LinkTable.suplierId er relateret til SupplierTable.suplierId.

Hvad tænker du på når du siger: "hvordan filerne i praksis kan administreres paa serveren"? Enterprise Manger bruges kun til at administrere databaser. Så nej man kan ikke lave oprette foldere i filsystemet fra EM.
Avatar billede trer Nybegynder
22. marts 2004 - 08:06 #2
Lagring af Excel filerne kan godt ske i en folder på serveren - men du ryger ud i et gammelkendt problem.

Du har nemlig ikke nogen måde at synkronisere transaktioner mellem databasens rækker og de "udestående" filer - ej heller kan du sikre en sammenhængende backup eller genskabe databasen og filerne til en sammenhængende kendt tilstand efter et nedbrud. Du kan heller ikke styre adgangen til database data og filer således at man ikke kan rette i filer uden databasen "opdager" det.

Microsoft lover så, at det kommer i næste version (kodenavn Yukon), men det er nok lidt lang tid at vente...

Du kan overveje at lagre Excel filerne direkte i databasen - i et blob (binary large object).  Hvis du anvender somaliomars løsning ovenfor kan du lave en "excel-tabel" med et blob felt aftypen IMAGE og en unik nøgle og den lader du indeholde selve excel filen.

Excel-tabel (
  id (p),
  exceldata (blob(image))
  )

link-tabel (
  excel_id (p)
  supplier_id (p)
)

supplier_tabel (
  id (p),
  navn
)

Din database bliver så ret stor, men plads er billigt disse data. Eneste problem kan være hvis du anvender MSDE hvor db maks kan være på 2GB.

Når du skal bruge data, så fyrer du image data (dvs. excel-filen) over fra blob feltet, laver en temporær fil og åbner excel mod den. Når filen er opdateret i Excel opdaterer du databasen med den ændrede temporære fil.
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
Computerworld tilbyder specialiserede kurser i database-management

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