---
title: "Uppdatera och lägga till poster i tabell"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/125582-uppdatera-och-lägga-till-poster-i-tabell"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2005-04-01T15:27:44.000Z"
updated: "2005-04-03T05:21:17.000Z"
replies: 14
views: 376
page: 1
pages: 1
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/125582-uppdatera-och-lägga-till-poster-i-tabell"
---

# Uppdatera och lägga till poster i tabell

## #1 — devotion, 2005-04-01T15:27Z

:e 
Hej!

Har följande kod som läser av data från en textfil och lägger in den i en databastabell (access)

```
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>addSolar</title>

</head>
<body>

<%
Response.write("<div id=""myMess"">Vänta, skriver till databasen...</div>")
Response.write("<div id=""progress""></div>")
Response.Flush()

dim objConn, objRS, strLine, strArticleCategory, strArticleCategoryName, strDiscount, strSQL, intCounter, strPath

strPath = Trim(Replace(Request.Form("textFile"), "'", "''"))

Response.Write(strPath)

intCounter = 0
set objFSO = Server.CreateObject("Scripting.Filesystemobject")
set objFile = objFSO.OpenTextFile (strPath)

Set objConn = Server.CreateObject("ADODB.Connection")

ObjConn.Open = "DSN=IntranetSydostel"

while not objFile.atendofstream

   intCounter = intCounter +1
    if intCounter mod 100 = 0 then
        Response.write ("<script>document.getElementById(""progress"").innerHTML=""" & intCounter & """;</script>")
        Response.flush
    end if

    strLine = objFile.ReadLine

    strArticleCategory = Replace(Trim(Mid(strLine, 1, 4)), "'", "''")
	strArticleCategoryName = Replace(Trim(Mid(strLine, 24, 30)), "'", "''")
	strDiscount = Replace(Trim(Mid(strLine, 101, 5)), "'", "''")
     if strDiscount = "" then 
        strDiscount = 0 
     End if

   strSQL = "INSERT INTO tblDiscount (articleCategory, articleCategoryName, articleDiscount) VALUES ('" & strArticleCategory & "', '" & strArticleCategoryName & "', " & strDiscount & ")"
    
objConn.Execute strSQL,,128

 
wend

objFile.close
set objFile = nothing
set objFSO = nothing
objConn.Close
Set objConn = Nothing

Response.write("<script>document.getElementById(""myMess"").innerHTML=""Rabattavtalet har lagrats i databasen! "";</script>")
%>

</body>
</html>
```

Funkar perfekt! Men jag vill utvecla det lite och göra så man kan uppdatera tabellen istället. 
Det scriptet gör är att läsa av ett rabattavtal i txt-format och lägga in i en databastabell. 

Med jämna mellanrum kommer nya avtal som skall läsas in. Jag har löst det genom att radera hela tabellen och gjort en ny inläsning med ovanstående kod. Men det känns inte helt optimalt. Det hade varit bättre att bara läsa in en ny fil som lägger till nya poster och uppdaterar poster som förändrats samt låter oförändarde poster vara..

Puhhh.....

Hoppas ni förstår.

Hur ska jag göra; börja med någon SELECT och sedan UPDATE??

MVH :e

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

## #2 — LarsG, 2005-04-01T15:33Z

```
strSQL = "update tblDiscount set ... "
objConn.Execute strSQL,rows,128
if  rows = 0 then
    strSQL = "INSERT INTO tblDiscount (articleCategory, articleCategoryName, articleDiscount) " & _
             " VALUES ('" & strArticleCategory & "', '" & strArticleCategoryName & "', " & strDiscount & ")"
    objConn.Execute strSQL,,128
end if
```

Du får själv fylla i resten av update då jag inte vet vad som är primärnyckel i tabellen.

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

## #3 — devotion, 2005-04-01T15:36Z

:e 
Snabba svar!

Tack!

Jag har ingen primärnyckel, måste jag ha det?

Mvh

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

## #4 — LarsG, 2005-04-01T15:40Z

Ja.

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

## #5 — devotion, 2005-04-01T15:42Z

Jo, men hur menar du (svara inte att du måste ha en primär nyckel nu ;) )

Jag har ju följande kolumner i tblDiscount:

```
articleCategory, articleCategoryName, articleDiscount
```

Mvh

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

## #6 — devotion, 2005-04-01T15:44Z

Ahh............
 fast articleCategory är det som är unikt (artikelkategori) det finns ju bara en av den....

Kan jag använda mig av den??

MVH

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

## #7 — LarsG, 2005-04-01T15:47Z

Vad är det som är oklart?

vad en primärnyckel är?

vilka kolumner är lämpliga som primärnyckel?

något annat?

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

## #8 — Jesper T, 2005-04-01T15:47Z

Det är väl säkert articleCategory du har som primärnyckel då.
Access accepterar väl inte en tabell utan primärnyckel har jag för mig.

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

## #9 — devotion, 2005-04-01T15:57Z

:) 

> Vad är det som är oklart?

 
det som jag inte förstår

> vad en primärnyckel är?

 
Nix detta är inte oklart

> vilka kolumner är lämpliga som primärnyckel?

 
Nix detta är inte oklart...

> något annat?

 
Ja, eftersom jag inte har en primärnyckel i nuläget och jag har access och det fungerar undrar jag om jag kan använda "articleCategory" som primärnyckel.

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

## #10 — LarsG, 2005-04-01T16:18Z

> Ja, eftersom jag inte har en primärnyckel i nuläget och jag har access och det fungerar undrar jag om jag kan använda "articleCategory" som primärnyckel.

Jo, om den innehåller unika värden så passar den bra som primärnyckel.

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

## #11 — devotion, 2005-04-01T16:19Z

:)
Jag tror jag fattar...
Ska jag använda

```
strSQL = "update tblDiscount set ... WHERE '" & strArticleCategory & "' = strArticleCategory"
```

Är det så du menar?

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

## #12 — LarsG, 2005-04-01T16:41Z

Jo, nästan

```
strSQL = "update tblDiscount set ... WHERE '" & strArticleCategory & "' = ArticleCategory"
```

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

## #13 — devotion, 2005-04-01T17:43Z

:e 
Ja, ja, det var faktiskt bara en felskrivning... ;) 

Tack för hjälpen!

By the way....

Hur skulle man kunna gör en felhantering till scriptet. Dvs om något går galet för att textfilen inte stämmer (felaktiga tecken mm)så får man meddelande om det istället för serverfel???

Mvh

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

## #14 — devotion, 2005-04-02T21:28Z

:) 
Tack!
Efter lite om och men funkar det prima...

Mvh

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

## #15 — @nders, 2005-04-03T05:21Z

> **devotion skrev:**
>
> Hur skulle man kunna gör en felhantering till scriptet. Dvs om något går galet för att textfilen inte stämmer (felaktiga tecken mm)så får man meddelande om det istället för serverfel???

```
on error resume next

...

' kod som kan generera felmeddelande

...

If Err.Number <> 0 then
       Response.write "nått gick fel!"
       Err.Clear
End if

on error goto 0
```

mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/125582-uppdatera-och-lägga-till-poster-i-tabell
