webForumDet fria alternativet

databas

14 svar · 285 visningar · startad av Danmagnus

DanmagnusMedlem sedan maj 2000269 inlägg
#1

Hej.
behöver man lock:a och unlock:a när man skriver till en accessdatabas?, som man gör när man använder application? ...
application.unlock, application.lock..

VideMedlem sedan dec. 19998 577 inlägg
#2

Nej, det behövs inte.

------------------
        )|(
       (o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se

M@rtinMedlem sedan dec. 19992 085 inlägg
#3

Det behövs väl igentligen inte med application heller även om det är bäst, eller?

//M@rtin

VideMedlem sedan dec. 19998 577 inlägg
#4

Behövs gör det ju kanske inte... men det är säkrast om flera användare skulle anropa samtidigt... man vill ju inte få ett onödigt felmeddelande mitt i alltihopa...

------------------
        )|(
       (o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se

DanmagnusMedlem sedan maj 2000269 inlägg
#5

jo, men hur skriver man då?
tex om man har en SQL insert into.
och inte använder Addnew..

förresten, varför använder folk Addnew och det andra sättet att jobba med med databaser när det är så mycket krångligare?.

VideMedlem sedan dec. 19998 577 inlägg
#6

SQL = "Insert Into Tabell "
SQL = SQL & "(fält1, fält2) "
SQL = SQL & "VALUES('värde1', 'värde2')"

------------------
        )|(
       (o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se

DanmagnusMedlem sedan maj 2000269 inlägg
#7

SQL:en kan jag, det är hur man lockar databasen när man skriver till den som jag vill veta. det är adlockoptimistic eller adlockpessimistic, men var lägger man in det?.

emissionMedlem sedan dec. 19996 721 inlägg
#8

varför använder folk Addnew

Det är oftast inte snabbare när det handlar om ASP, även om det är en bättre teknik när man skapar t.ex. VB-program (ingen SQL-tolkning behövs). Däremot är det bra om man t.ex. direkt vill ha ut ett räknarvärde (ID) efter att man lagt till en post.

VideMedlem sedan dec. 19998 577 inlägg
#9

Kör du med "Insert Into" så behöver du inte "locka" databasen...

------------------
        )|(
       (o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se

DanmagnusMedlem sedan maj 2000269 inlägg
#10

Tack Tack.
En grej till bara, om man har
tabellerna "ID" och "text" i en databas ("ID" är räknare)
och så lägger man in nåt med insert into, hur gör man då för att få fram "ID" numret där texten la sig?

VideMedlem sedan dec. 19998 577 inlägg
#11

SQL = "Select ID from tabell where text = '" & variabel_innehållande_texten & "'"
Set RS = Databas.execute(SQL)

Response.write RS("ID")

Var det nått sånt du menade?

------------------
        )|(
       (o o)
-oo0-(_)-0oo-----
webeye.nu *hem*
vide@4sale.se

emissionMedlem sedan dec. 19996 721 inlägg
#12

hur gör man då för att få fram "ID" numret där texten la sig?

Se mitt ovanstående inlägg. I vissa databaser finns färdiga funktioner för detta (SQL Server etc.), men i Access är det enda sättet att skapa poster med AddNew etc, om man inte skapar en kolumn i databasen där man lägger in ett slumpvärde, som man sedan direkt söker upp.

Annars är det transaktioner som gäller.
http://www.aspfree.com/authors/briang/identitywithsql.asp

[Redigerat av emission den 02 jun 2000]

DanmagnusMedlem sedan maj 2000269 inlägg
#13

jag gjorde såhär istället

först en INSERT INTO

sen en SELECT TOP1 ID FROM lista ORDER BY ID DESC .

och då får man fram där INSERT INTO lades in.

emissionMedlem sedan dec. 19996 721 inlägg
#14

Ja, visst får man det, men om man har flera samtidiga användare så är risken stor att del blir fel.

ZaphodMedlem sedan maj 2000107 inlägg
#15

Jag har också haft det där problemet.
Den enda lösningen jag har kommit fram till är att göra ett recordset.

<%
dim cn,rs,sql
set cn = server.createobject("ADODB.Connection")
cn.open "databas"
SQL = "Select id,something FROM tabell WHERE something = '"&request("something")&"'"
set rs = server.createobject
("ADODB.Recordset")
rs.open SQL,cn,1,2
if rs.eof then
rs.addnew
rs("something") = request("something")
rs.update
response.write rs("id")
else
response.write "Det värdet finns redan"
end if
%>

Då addar du en post plus att du får dess id direkt. La in så att den kollade upp så att inte värdet fanns innan. Men det kan man ju ta bort.

------------------
/Magnus aka Zaphod
www.designmodule.com.bi

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)