Avatar billede jens_k Nybegynder
31. maj 2006 - 02:37 Der er 9 kommentarer og
2 løsninger

Upload af 10.000 billeder til MS SQL 2005

Hej,

Jeg har 10.000 billeder til at ligge i en mappe.

Disse billeder kunne jeg godt tænke mig at uploade til min MS SQL 2005 database, hvori jeg har oprettet en tabel med et felt som hedder file_blob (er sat til typen: blob).

Hvordan laver jeg et ASP Script som kan uploade disse 10.000 billeder til min database på en gang?

Mvh

Jens K
Avatar billede jens_k Nybegynder
31. maj 2006 - 02:39 #1
Det skal lige siges at billederne ligger på samme server som websitet og databasen..

sti: e:\billeder
Avatar billede -mundi- Nybegynder
31. maj 2006 - 08:36 #2
Hvorfor vil du gemme alle billederne i databasen ?
Avatar billede fennec Nybegynder
31. maj 2006 - 08:46 #3
For det første vil jeg kraftig fraråde dig at gøre dette. Din performance ryger langt ud af vinduet...

Hvis du endelig vil gøre det er er et eks her (part 3)
http://www.motobit.com/tips/detpg_read-write-sql-image-file/

Men det kan ikke siges nok gange at din performance går i bund.
Avatar billede hnteknik Novice
31. maj 2006 - 08:52 #4
Kan du bruge denne:
Loading Images into SQL Server with C#
http://www.awprofessional.com/articles/article.asp?p=398883
Avatar billede hnteknik Novice
31. maj 2006 - 09:10 #5
Denne her kunne også være interessant for dig:

Saving and Retrieving Images From SQL Server Using DAAB and ADO.NET 2.0
http://davidhayden.com/blog/dave/archive/2006/05/19/2948.aspx
Avatar billede hnteknik Novice
31. maj 2006 - 09:12 #6
Her er et klip fra den sidste artikel:

'This example is using SQL Server 2000 and the Image Data Type. In SQL Server 2005 you would use the VARBINARY(MAX) Data Type as the Image Data Type is no longer preferred in SQL Server 2005.



Saving Image to SQL Server
Retrieving an image from the hard disk and inserting it into SQL Server using DAAB:



byte[] image;
string fileName = @"c:\davidhayden.jpg";
// Open File and Read Into Byte Array
using (FileStream fs =      new FileStream(fileName, FileMode.Open))
{
    BinaryReader reader = new BinaryReader(fs);
    image = reader.ReadBytes((int)fs.Length);
    fs.Close();
}
// Get Database
Database db = DatabaseFactory.CreateDatabase();
// Create DbCommand
string insertSql = "INSERT INTO Photos (Photo)                                VALUES (@Photo)";
DbCommand command = db.GetSqlStringCommand(insertSql);
db.AddInParameter(command,"@Photo",DbType.Binary,image);
// Store Image
int rowsAffected = db.ExecuteNonQuery(command);
'
Avatar billede pallenoc Nybegynder
31. maj 2006 - 09:13 #7
Ja, jeg vil også råde dig til at have dine billeder i en mappe på serveren, lave link til dem i din DB med et passende filnavn og gennem en SQL-streng kalde på disse i DB.
På den måde belaster du ikke DB hårdt ved at skulle gennemløbe og hente alle billederne.

eks: <img src="(stien til din mappe med billeder)<%=Rst.Obj_Hentbilleder("feltnavn i DB")%>">
Det er enkelt og "tvinger ikke din server i knæ" ;-)
Avatar billede hnteknik Novice
31. maj 2006 - 09:20 #8
Når vi taler om billeder i den størrelsesorden vil serveren gå i knæ, hvis der er flere, som forsøger at hente billeder ned samtidig fra en filmappe. For en bedre loadbalance er det sikkert bedre at lægge det i sql 2005 dben. Du kommer nok ikke uden om at lave det i .net, hvis det skal køre med en vis hastighed.
Avatar billede jens_k Nybegynder
31. maj 2006 - 16:42 #9
Jeg har fået det til at virke ved hjælp af Fennec´s svar.

Så hvis du lige vil være sød at lave et svar Fennec, så får du dine points :-D

Tak skal du have!

/JK
Avatar billede fennec Nybegynder
31. maj 2006 - 16:54 #10
Så vil jeg da lige benytte lejligheden til endnu engang at sig at det er uklogt at gemme filer i database. Der kan selvfølgelig være undtagelser, men jeg har endnu ikke oplev en. Så overvej om det virklig er nødvendigt. Du finder desuden INGEN brugere herinde som vil anbefale denne løsning, og der er rigtig mange års erfaring bag alle de brugere.

.o) One Eyed Jack
Avatar billede hnteknik Novice
28. juni 2006 - 12:16 #11
jens_k> Lukker og slukker du ??
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