---
title: "Script för att uppdatera databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/154223-script-för-att-uppdatera-databas/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2006-11-26T13:49:35.000Z"
updated: "2006-11-27T13:57:57.000Z"
replies: 38
views: 887
page: 2
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/154223-script-för-att-uppdatera-databas"
---

# Script för att uppdatera databas

_Sida 2 av 2._

## #21 — devotion, 2006-11-26T22:20Z

det finns faktiskt sådana här också:

> 8554926

Sedan förstår jag inte riktigt vad du menar:

> I din kod skall detta fält uppdateras med dagens datum - eller hur?

Det jag vill göra är att söka av fält \<artName\> om där finns ett sjusiffrigt nummer, finns det det vill jag kopiera det till fältet \<artNr\>. Jag vill göra det på alla rader i tabellen!

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/1902186

## #22 — devotion, 2006-11-26T22:22Z

Då hittas 126 rader som alla innehåller ett sjusiffrigt nummer

Edit/

Fast den hittar även:

> Mat. ordnr. 26111340
> Mat ordnr  26144985
> MOD VINKL 2x8 KAT5E UTP TREND 510329300
> MODULARJACK 1X8 KAT5E UTP     306510005

 
 :( 

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/1902187

## #23 — Peter S, 2006-11-26T22:33Z

> **devotion skrev:**
>
> Sedan förstår jag inte riktigt vad du menar

Du sätter modified = "dagens datum", bl.a. (jag var litet otydlig).

> **devotion skrev:**
>
> Det jag vill göra är att söka av fält \<artName\> om där finns ett sjusiffrigt nummer, finns det det vill jag kopiera det till fältet \<artNr\>. Jag vill göra det på alla rader i tabellen!

Just det!

```
sSQL = "update tblMaterial"                &_
       "   set modified = "& today &""     &_
       "     , artNr = case when artName like '%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "                                 then substring(artName,patindex('%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%',artName),7)" &_
       "                    when artName like '%[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'" &_
       "                                 then substring(artName,patindex('%[0-9][0-9][0-9][0-9][0-9][0-9][0-9]%',artName),7)" &_
       "               end" &_
       " where artName like '%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "    or artName like '%[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'"
```

Permalänk: https://www.webforum.nu/p/1902192

## #24 — Peter S, 2006-11-26T22:34Z

> **devotion skrev:**
>
> Då hittas 126 rader som alla innehåller ett sjusiffrigt nummer
> 
> 
> 
> Edit/
> 
> Fast den hittar även:
>
> > Mat. ordnr. 26111340
> > Mat ordnr 26144985
> > MOD VINKL 2x8 KAT5E UTP TREND 510329300
> > MODULARJACK 1X8 KAT5E UTP 306510005
>
> 
>  
>  :( 
> 
> Mvh
> Henrik

Ja, det är ju meningen  ;)

Permalänk: https://www.webforum.nu/p/1902193

## #25 — devotion, 2006-11-26T22:38Z

nää... Det får endast finnas 7 siffror... inte 8 inte 9 inte 10 bara 7!

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/1902196

## #26 — Peter S, 2006-11-26T22:49Z

Sorry, jag läste litet för snabbt  :r 

Vi måste givetvis ta samtliga fall i beaktning:

```
sSQL = "update tblMaterial"                &_
       "   set modified = "& today &""     &_
       "     , artNr = case when artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "                                 then substring(artName,patindex('%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%',artName),7)" &_
       "                    when artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'" &_
       "                                 then substring(artName,patindex('%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%',artName),7)" &_
       "               end" &_
       " where artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "    or artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'" &_
       [red]"    or artName like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "    or artName like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'"[/red]
```

Lägg sedan till motsvarande fall i case-satsen.

Permalänk: https://www.webforum.nu/p/1902200

## #27 — devotion, 2006-11-26T22:51Z

> **Peter S skrev:**
>
> Lägg sedan till motsvarande fall i case-satsen.

  :r 
Vad menar du?

Permalänk: https://www.webforum.nu/p/1902202

## #28 — Peter S, 2006-11-26T22:54Z

Se hur jag gjort i case-satsen med två av fallen i where-satsen. Lägg till de sista två (rödmarkerat).

Permalänk: https://www.webforum.nu/p/1902204

## #29 — devotion, 2006-11-26T23:00Z

Så här:

```
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = Application("sConn")
objConn.Open

today = date()
sSQL = "update tblMaterial"                &_
       "   set modified = "& today &""     &_
       "     , artNr = case when artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "                                 then substring(artName,patindex('%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%',artName),7)" &_
       "                    when artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'" &_
       "                                 then substring(artName,patindex('%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]%',artName),7)" &_
	   "					when artName like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "                                 then substring(artName,patindex('[0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%',artName),7)" &_
	   "					when artName like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'" &_
       "                                 then substring(artName,patindex('[0-9][0-9][0-9][0-9][0-9][0-9][0-9]',artName),7)" &_
       "               end" &_
       " where artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "    or artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'" &_
       "    or artName like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "    or artName like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'"
objConn.execute sSQL,,128

'get and log rows not having modified = @today
sSQL = "select <fields of interest>"     &_
       "  from tblMaterial"              &_
       " where modified <> " & today

Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open sSQL, objConn, 3, 1

Do until ObjRS.EOF
	' do logging
	objRS.Movenext 
Loop
		
objRS.Close
Set objRS = Nothing	

objConn.Close
Set objConn = Nothing
%>
```

Permalänk: https://www.webforum.nu/p/1902207

## #30 — Peter S, 2006-11-26T23:01Z

Japp!  (y)

Permalänk: https://www.webforum.nu/p/1902208

## #31 — devotion, 2006-11-26T23:04Z

ok.. vågar jag köra den innann jag går och lägger mig.... ;)

Permalänk: https://www.webforum.nu/p/1902210

## #32 — Peter S, 2006-11-26T23:07Z

Sannolikt inte. Mardrömsrisken finns ju. Jag röstar för Mr. Blund.

Permalänk: https://www.webforum.nu/p/1902211

## #33 — devotion, 2006-11-26T23:20Z

Hmmm

> E3233084 Kontaktor 65A
> LC1D65P7

blev:

> E323308

Skulle bli:

> 3233084

Sen blev datumen

> 1905-05-23 00:00:00

Kan man inte använda 

```
getDate()
```

//Henrik

Permalänk: https://www.webforum.nu/p/1902212

## #34 — Peter S, 2006-11-26T23:20Z

Förresten, du kan nog skippa case-satsen:

```
sSQL = "update tblMaterial"                &_
       "   set modified = "& today &""     &_
       "     , artNr = substring(artName,patindex('%[0-9][0-9][0-9][0-9][0-9][0-9][0-9]%',artName),7)" &_
       " where artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "    or artName like '%[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'" &_
       "    or artName like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][^0-9]%'" &_
       "    or artName like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'"
```

Permalänk: https://www.webforum.nu/p/1902213

## #35 — Peter S, 2006-11-26T23:23Z

Kör på mitt senaste förslag, jag ser nu att det tidigare innehåller några fel i patindex() (dags för mig att lägga ned nu...).

Permalänk: https://www.webforum.nu/p/1902215

## #36 — devotion, 2006-11-26T23:24Z

okidoki

Permalänk: https://www.webforum.nu/p/1902216

## #37 — devotion, 2006-11-26T23:32Z

Det blir ändå inte rätt...

Det blir fel datum och ibland bara 6 siffror ibland står det ett E med..

Permalänk: https://www.webforum.nu/p/1902217

## #38 — Peter S, 2006-11-27T09:49Z

Ang. datum: 1) sätt apostrofer kring dem, 2) använder du getdate() direkt i SQL-satsen (som i ditt tidiga inlägg) finns möjligheten att olika datum används i de två frågorna. Detta kan undvikas genom att först spara undan det aktuella datumet i en variabel.

Använder du mitt senaste förslag? Kan du visa ett exempel där det blir fel?

Permalänk: https://www.webforum.nu/p/1902244

## #39 — devotion, 2006-11-27T13:57Z

Hej! :)  

Löste det faktiskt med detta:

```
<%
function searchArticle(art)
  dim re
  set re = new regexp
  re.pattern = "(\d{7})(\d*)?" 

  set m = re.execute(art)

  if m.count then
	if len(m(0).submatches(1)) < 1 then
	  searchArticle = m(0).submatches(0)
	  exit function
	end if
  end if
  searchArticle = ""
end function
	
' Öppna databasen
' ***************
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = Application("sConn")
objConn.Open

sSQL = 	"SELECT [Id], [ArtName] FROM tblMaterial"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open sSQL, objConn, 3, 1

Do until ObjRS.EOF
	sArticleName = objRS("ArtName")
	iId = cInt(objRS("Id"))
	
	dim s
	s = searchArticle(sArticleName)
	
	if len(s) > 0 then
		sEnumber = s
		sSQL = "UPDATE tblmaterial SET Modified = getdate(), ArtNr = '" & sEnumber & "' Where [Id] = " & iId
		objConn.Execute sSQL,, 128
	else
		sSQL = "INSERT INTO tblUpdateMaterial ([Id], ArtName) VALUES (" & iId & ", '" & sArticleName & "')"		
		objConn.Execute sSQL,,128
	end if
	objRS.Movenext 
Loop
		
objRS.Close
Set objRS = Nothing	

objConn.Close
Set objConn = Nothing

Response.write "Klart!"
%>
```

Fungerade finfint!

Tack för hjälpen Peter S :)  

Mvh
Henrik

Permalänk: https://www.webforum.nu/p/1902316

---

Tråden på webben: https://www.webforum.nu/amne/asp/154223-script-för-att-uppdatera-databas/page2  
Föregående sida: https://www.webforum.nu/amne/asp/154223-script-för-att-uppdatera-databas.md
