Vad kan jag göra för att snabba upp den del av min applikation som använder sig av insert into table statement. Om det är en massa inserts kan du ju använda ett adodb.recordset istället, eller en stored procedure om du använder SQL Server. här är ett exempel på vad du kan göra Tack för tipsen! Har fått problem med: Tyvärr exemplet verkar inte fungera om man kör mot access.Snabba upp insert into??
Som det är nu så tar den obehagligt lång tid på sig för att fylla en tabell med värden.
Jag använder ado connection objektet för att exekvera insert into statementet. Denna procedur upprepas för varje post som skall in i tabellen.
Finns det något att göra för att snabba upp denna del???
Exempelvis på nåt sätt samla alla poster i en array eller nåt för att exekvera med ett enda execute?
\LeifSv: Snabba upp insert into??
Sv: Snabba upp insert into??
dim sasql() as string
dim ssql as string
dim lcmd as long
redim sasql(5)
.
.
do
sasql(lcmd) = "INsert INTO ..... ... .. .. ;"
lcmd = lcmd + 1
if lcmd = 50 then
ssql = join(sasql)
ADOcn.Execute ssql,,adExecuteNoRecords + adCmdText
redim sasql(50)
lcmd = 0
end if
loop while bMoreRecords
if lcmd > 0 then
ssql = join(sasql)
ADOcn.Execute ssql,,adExecuteNoRecords + adCmdText
end ifSv: Snabba upp insert into??
Jag skall testa det senaste exemplet för att se vad det kan ge. Det ser väldigt intressant ut.
Att använda recordset går ändå långsammare. Stored procedure går ej då jag kör mot en access databas.
Jag låter er veta hur testet går så fort som möjligt.
En undring. Skulle det gå att bygga en text fil för att sedan exekvera nåt liknande AdoCn.Execute "Select * Into myTable From textfil.txt"
Och i så fall om det skulle gå skulle det då bli snabbare??
Har dock ej listat ut hur det skulle kunna gå till.
\LeifSv: Snabba upp insert into??
sasql(lcmd) = "INsert INTO ..... ... .. .. ;"
Om jag inte lägger till semikolonet så får jag error att semikolonet förväntades efter end of sql statement.
Om jag lägger till semikolonet enligt nedan så får jag error att characters have been found after end of sql statement.
Ett exempel på icke fungerande statement utskrivet med debug.print:
Insert Into MyTable (ID,NAME,TEXT) Values('00002','NameValue','1'); Insert Into MyTable (ID,NAME,TEXT) Values('00003','NameValue','436');
\Leif Sv: Snabba upp insert into??
Någon som har andra tips?
\Leif