Hej, nu behöver jag lite hjälp. Varför stänga db hela tiden. Detta ska väl gå utmärkt: Nej, självklart behöver man inte stänga databaskopplingen varje gång. Vet inte var jag fick det ifrån.. Du skulle nog oxå kunna skick alla insertsatser i en execute om det är SQL-server. Vet inte om det är bättre att skicka alla 100insertsattser i en execute. Eller om det är bättre att skicka dem en och en. Hej! Mid(string, start[, length]) Joinfunktionen är motsatsen till Split. Gör exakt det du vill. Slår ihop alla strängarna med en avgränsare:Läsa från fil, sätta in i databas
Håller på med ett litet projekt att läsa in en vanlig simpel .txt-fil som jag f.n. bara skriver ut på skärmen för att se så jag läser in rätt, och det gör jag.
Nu vill jag sätta in detta i en databas.
Jag har finurlat en del men inte kommit fram till något riktigt vettigt ännu.
F.n. har jag en ide som ser ut så här ungefär:
* Öppna filen
* Läs in en rad
* Anslut till databasen
* Skriv till databasen (INSERT INTO..)
* Koppla från databasen
* Läs in nästa rad
* Anslut till databasen
* Skriv till databasen (INSERT INTO..)
* Koppla från databasen
osv.
Det blir ju en jäkla massa anslutningar till databasen på detta viset, vilket bör ta lite tid.
Tiden är iofs inget stort problem för den här grejen kommer att köra...säg 3 gånger på en vecka så några sekunder extra är inget problem.
Är detta den enklaste lösningen eller finns det bättre som jag inte kommit på?
/PatrikSv: Läsa från fil, sätta in i databas
* Öppna filen
* Anslut till databasen
* Loopa Texten innehållet
* Läsa en rad i textfilen
* Skriv till databasen (INSERT INTO..)
* Loopen vänder
* Koppla från databasen
* Koppla från textfilen
Hur många poster handlar det om varje gång?
/JanneSv: Läsa från fil, sätta in i databas
Det rör sig om 50-100 rader från text-filen varje gång det körs så det är en rätt liten grej det här egentligen.
Det hela är start- resp. resultatlistor för golftävlingar som genereras från ett centralt program (GK96) som jag inte styr över alls.
/PatrikSv: Läsa från fil, sätta in i databas
Har för mig att varje execut omges av en transaktion. Så på så sätt kan det vara en fördel/nackdel. Beroende på vilket beteende man vill ha.
Ibland vill man ju att den ska avbryta ångra om en rad är fel. I andra fall vill man ju att den bara skippar den och fortsätter på nästa.Sv: Läsa från fil, sätta in i databas
Tack för alla tipsen.
Det är en ingen SQL-server jag använder.
Nu har jag lyckats få till det, nästan.
Jag läser in en rad från text-filen, splittar den på tab till 9 olika element i ett array.
Från detta skulle jag vilja att följande gick att realisera:
INSERT INTO tabellNamn (var1,var2,...) VALUES ( & strFromArray & )
Detta i sig är väl inget problem _om_ jag får till strFromArray som jag vill:
Jag tänkte mig så här:
for-loop el. dyl.
strFromArray = strFromArray & ", " & myArray(i)
början på loop
Problemet med detta är att jag får ett , i början av strängen vilket ej är önskvärt.
Finns det en smidig lösning på detta så jag slipper ett , först i strängen?
MvH
PatrikSv: Läsa från fil, sätta in i databas
for-loop el. dyl.
strFromArray = strFromArray & ", " & myArray(i)
början på loop
När du loopat klart så kör:
strFromArray = Mid(strFromArray,2)
Då tas alla tecken med från tecken 2 till slutet och ditt inledande komma är bortaSv: Läsa från fil, sätta in i databas
<code>
strFromArray = Join(myArray,", ")
</code>