webForumDet fria alternativet

Textfiler till databas

Webbutveckling

8 svar · 246 visningar · startad av celia

Medlem sedan dec. 20012 532 inlägg
Frågan#1

Jag har ca 5000 .cgi-filer vars innehåll jag med lämpligt script vill lägga in i en MySQL-databas. Finns det nåt vettigt sätt att göra det på, med tex ASP eller C#/Visual Studio? Varje rad i cgi-filen motsvarar en kolumn i databasen, totalt ca 20 kolumner. Jag vet inte riktigt hur jag ska börja, någon som har en idé?

Medlem sedan dec. 20025 871 inlägg
#2

Jag fattar inte riktigt. Du har 5 000 olika .cgi-filer och varje rad i varje fil ska vara i en kolumn? Blir det inte rätt knasigt? :p

Till ditt problem:
Du kan lösa det med serverobjektet FSO (ASP) som går igenom varje fil, rad för rad och lägger in det i databasen.

Medlem sedan dec. 20012 532 inlägg
#3

Fält då :r

Jo man kan köra med FSO och loopa igenom allt men det är väl inte så effektivt?

Medlem sedan dec. 20025 871 inlägg
#4

Nej, jag menar inte att du har stavat kolumn fel eller något. Kolumn och fält är nog samma sak när det gäller databaser ;)
Men en post för varje rad? 20 rader per fil, alltså 20*5000=100000. Vad ska du ha dem till? :p

Det är den enda lösningen jag kan komma på eftersom jag inte är så haj på andra scriptspråk än ASP. Det kanske finns ett smidigare och effektivare sett med C# :) Hör med det forumet...

Medlem sedan dec. 20012 532 inlägg
#5

Neeej, 1 textfil --> 1 post :)

Textfil
Rad 1 förnamn
Rad 2 efternamn
.
.
.

Databas
Fält 1 förnamn
Fält 2 efternamn
.
.
.

;)

Anledningen till att jag postade i det här forumet var att jag vill veta vad (tex ASP, C#) som är effektivast att använda.

Medlem sedan juni 20034 013 inlägg
#6

> Anledningen till att jag postade i det här forumet var att
> jag vill veta vad (tex ASP, C#) som är effektivast att
> använda.

Effektivitet är ett relativt begrepp. Vill du att det ska gå snabbt för dig att programmera eller snabbt för datorn att utföra?

C är att föredra om du vill att datorn ska utföra arbetet effektivt. Vill du däremot att det ska vara lätt att programmera ska du förstås använda det språk du är mest van vid.

Hade jag stått inför din uppgift hade jag valt php och då hade det hela varit klart inom tio minuter.

Nu kanske du vill göra det själv och lära dig någonting på det, men annars, om det bara är nåt du vill ha fixat, så kan du packa ihop filerna och skicka över till mig så ordnar jag det på nolltid.

Medlem sedan juni 20034 013 inlägg
#7

PS. Om du vill använda Visual Studio så ska du först installera MyODBC (som finns på https://www.mysql.com) och sedan kika i dokumentationen för Visual Studio (MSDN Library) hur du använder dig av ODBC samt filsystem/filhantering.

Medlem sedan dec. 20012 532 inlägg
#8

tydal --> snabbt för datorn. Jag kan köra asp.net med odbc och mysql. Programmeringen är inga problem med; man läser in en fil i taget rad för rad, sparar i variabler och skickar till databasen. Vad jag vill veta är hur man optimerar koden; anropa databasen 5000 gånger låter inte så effektivt... Är det bättre att lägga datat i tex ett dataset först?

Medlem sedan juni 20034 013 inlägg
#9

För att göra det snabbt för datorn är det nog i ditt fall enklast att du använder asp.net för skapa en textfil som består av innehållet från de 5000 filerna. Denna textfil skickar du sedan in i Mysql med hjälp av SQL-kommandot LOAD DATA INFILE.

Här kan du läsa mer om hur LOAD DATA INFILE fungerar:
http://www.mysql.com/doc/en/LOAD_DATA.html

I princip utformar du den nya textfilen så att du har en post per rad.

252 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)