Avatar billede ares Nybegynder
03. april 2003 - 14:22 Der er 3 kommentarer og
1 løsning

Optimering af kode...

Jeg skal flytte data fra en tabel ind i en anden. Jeg har en tabel med varemærker, hvert varemærke har et 3 cifret nummer tilknyttet.

tabellen brand ser således ud:
Brand_name | Brand_nummer
Yamaha    | 030
osv.

Disse 3 cifre er starte på vores varenummer.
og skal derfor flyttes over i tabellen Vare, i vare_nummer

Jeg har lavet nedenstående kode. Men det må kunne gøres bedre og mere effektivt, og vigtigst af alt uden at scriptet laver en timeout.


SQL = " SELECT * from brand"
Set RS = conn.execute(SQL)
Do until rs.eof

Str_brand = Trim(Replace(RS("Brand_name"),"'",""))
Str_nummer = rs("Brand_nummer")

Faq_SQL="Select * from vare Where Brand like '"& Str_brand &"'"
Set Faq_RS = conn.execute(faq_SQL)
Do until FAQ_RS.EOF
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
  Recordset1.Open Faq_SQL, Conn, 2, 3

    Recordset1("Vare_nummer") = Str_nummer
  Recordset1.Update
Recordset1.Close
FAQ_RS.movenext
Loop

Rs.movenext
Loop
Avatar billede mm12010 Nybegynder
03. april 2003 - 15:26 #1
Er ikke så stiv i VBScript, men her er et bud:

<%
SQL = " SELECT Brand_name, Brand_nummer from brand"
Set RS = conn.execute(SQL)

Str_brand = Trim(Replace(RS("Brand_name"),"'",""))
Str_nummer = rs("Brand_nummer")

Faq_SQL="Select Vare_nummer from vare Where Brand like '"& Str_brand &"'"
Set Faq_RS = conn.execute(faq_SQL)
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.Open Faq_SQL, Conn, 2, 3

Do until RS.eof
Recordset1.Addnew
Recordset1.("Vare_nummer") = Str_nummer
RS.MoveNext
Loop

Recordset1.adAffectAll
Conn.Close
Set conn = Nothing
%>
Avatar billede -master-d- Nybegynder
03. april 2003 - 16:13 #2
Dette skulle være det optimale :

SQL = "SELECT Brand_name, Brand_nummer from brand"
Set rS = conn.execute(SQL)
Do until rs.eof

SQL2 = "UPDATE vare SET Vare_nummer = " & rs("Brand_nummer") & " Where Brand like '"& Trim(Replace(rs("Brand_name"),"'","")) &"'"
Conn.Execute(SQL2)

rs.movenext
Loop
Avatar billede ares Nybegynder
03. april 2003 - 16:30 #3
MM -> Addnew funger ikke da jeg jo allerede har teksten til varenummerne stående i tabellen...

Master D -> den er i vinkel... det må absolut være den pæneste kode i den sammenhægn.. og det tog under 10 sekunder at gennemløbe 5790 varenummer...

Ares
Avatar billede -master-d- Nybegynder
03. april 2003 - 16:37 #4
Ok det var godt nok hurtigt, takker for pointene.
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