webForumDet fria alternativet

Hämta access data.

36 svar · 399 visningar · startad av gucken

guckenMedlem sedan sep. 2001287 inlägg
#1

tjenare jag har ett litet problem. jag kan inte få det att fungera att hämta ett fälts data från access och spara det i en variabel. Säg att databas-tabellen har 3 olika kolumner. 1.match 2. sattsat och 3 saldo.
jag skulle då vilja hämta saldo ifrån den sista raden och spara det i en variabel. har försökt hitta något exempel men har inte gjort det än.
tacksam för en liten hint på vägen.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Vad menar du med sista raden?

Har du någon räknare eller något datum som du kan sortera efter?

------------------
essentitia preter non sans multiplicandum

guckenMedlem sedan sep. 2001287 inlägg
#3

Ja jag har en räknare som primär nyckel.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

I så fall

set connect = server.createobject("adodb.connection")
connect.open "dsn"
sql = "select top 1 * from databastabellen order by id desc "
set rs = connect.execute(sql)
if rs.eof then
   response.write "tabellen är tom "
else
   match = rs("match")
   satsat = rs("sattsat")
   saldo = rs("saldo")
'hantera data
end if
rs.close
connect.close

Jag förutsätter att din räknarkolumn heter id. Du får anpassa lite så att det stämmer med hur du öppnar din databas och vad dina tabeller heter.

Lycka till.

------------------
essentitia preter non sans multiplicandum

guckenMedlem sedan sep. 2001287 inlägg
#5

tack, nu borde jag kunna klara av det..

guckenMedlem sedan sep. 2001287 inlägg
#6

Nu har jag massa nya problem. Det står bla att det är fel typer jag försöker föra in i data basen men jag har sett till att det itne ska vara det.. alal är endera text eller integer. här kommer koden, jag kan inet komma på vad som är fel med den..
jo om man tar bort så man inte för in nägot i databasen så säger den att något ska vara i <head> rad 48.

<% a=request.form("match") %>
<% a=cstr(a) %>
<% b=request.form("lirat") %>
<% b=cstr(b) %>
<% c=request.form("resultat") %>
<% c=cstr(c) %>
<% d=request.form("insatts") %>
<% d=cint(d) %>
<% f=request.form("odds") %>
<% f=cdbl(f) %>
<% g=request.form("bookie") %>
<% g=cstr(g) %>
<% h=date %>
<% h=cstr(h) %>

<%Set oConn = Server.CreateObject("ADODB.Connection")%>
<%sConnString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
"DBQ=" & Server.MapPath("db/SecretDb.mdb") & ";"%>
<%oConn.Open(sConnString)%>

<%set rs=oConn.Execute("select top 1 * from ResultatTabellen order by BetId desc ")%>
<%if rs.eof then
response.write "tabellen är tom "
else
saldo = rs("saldo")
'hantera data
end if
rs.close
oConn.close
%>

<%vinst_forlust=int(d * f) %>

<% if b = c then sald = sald + vinst_forlust else saldo = d - sald end if %>

<%set rs=oConn.Execute("INSERT INTO ResultatTabellen (Match,Lirat,Resultat,Insatts,Odds,Bookie,Datum) VALUES ('"+a+"','"+b+"','"+c+"','"+d+"','"+f+"','"+g+"','"+h+"')")%>

<%Response.Redirect("bettings.asp")%>

Dit spel är nu registrerat
<br><br>
<a href="bettings.asp" target="_self">Klicka dig vidare här!!</a>

</font>
</div>
</body>
</html>

LarsGMedlem sedan dec. 200012 464 inlägg
#7

Nu stänger du din connection (oConn) innan du gör insert.

Du sa att alla kolumner är text eller tal men du behndlar alla som text i din insert.

Om du gör insert på ett tal så skall det inte vara några ' kring värdet. Om du gör insert på en datumkolum så skall värdet omges av #

Om du gör execute på något som inte returnerar något resultat så kan du skriva

oConn.Execute "INSERT INTO ResultatTabellen (Match,Lirat,Resultat,Insatts,Odds,Bookie,Datum) VALUES ('"+a+"','"+b+"','"+c+"','"+d+"','"+f+"','"+g+"','"+h+"')"

Skall det vara saldo på alla ställen i denna sats

<% if b = c then sald = sald + vinst_forlust else saldo = d - sald %>

(Om du skriver en if på samma rad så skall det inte vara end if efter)

------------------
essentitia preter non sans multiplicandum

guckenMedlem sedan sep. 2001287 inlägg
#8

ja det ska vara det.. liten tabbe där. nu ska jag väll iaf se till att kunna lösa detta. tack igen. har just börjat med att försöka lära mig detta. tror jag iaf gör några framsteg. svårt att hitta bra referens på ämnet.

jorgenMedlem sedan feb. 20012 412 inlägg
#9

Hej!

Det är ganska svårt att hjälpa, för du har ej angett varken riktigt felmeddelande eller radnummer. Men jag tänkte tipsa dig om 2 förbättringar:

  1. Du kan ta bort 99% av dina <% och %> och lägga ASP-koden i block. så länge du inte avslutar ASP-koden och växlar över till HTML behöver du inga nya <% och %>.

  2. Är jag inte helt fel på det kan du byta subtyp direkt när du döper en variabel, ex:

a = Cstr(request.form("match"))

mvh Jörgen :)

------------------
"Ett väl utfört arbete ger en inre tillfredsställelse och är den grund varpå samhället vilar."

guckenMedlem sedan sep. 2001287 inlägg
#10

hehe tack, jag ska försöka rätta till det.. jag slänger upp det mer eller mindre rätta resultatet sedan så får man se vad som vart ändrat

guckenMedlem sedan sep. 2001287 inlägg
#11

nu har jag benat upp det till ett huvudproblem.
det siffrorna som ger detta felmeddelande

Inkompatibla typer: '[string: "INSERT INTO Resultat"]'

/Gamble/savebettings.asp, rad 47

så text kan jag utan problem föra in. Insatts och odds vill inte fastna i databasen. jag har provat att ta bort ' ' ...
i databasen är fälten satta som integer och general numbers.

@ndersMedlem sedan juni 200032 969 inlägg
#12

Felmeddelandet du får är ett VB-scriptfel, och har inget med själva SQL-frågan att göra.

Får man se hur koden där du runt den rad felmeddelandet pekar på ser ut?

Mvh,

------------------
All your base are belong to me.

guckenMedlem sedan sep. 2001287 inlägg
#13

javist. den kommer här.

set rs=oConn.Execute("select top 1 * from ResultatTabellen order by BetId desc ")
if rs.eof then
response.write "tabellen är tom "
else
saldo = rs("saldo")
'hantera data
end if

vinst_forlust=int(d * f)

if b = c then saldo = saldo + vinst_forlust else saldo = d - saldo

oConn.Execute "INSERT INTO ResultatTabellen (Match,Lirat,Resultat,Bookie) VALUES ('"+a+"','"+b+"','"+c+"','"+g+"')"

if 1=1 then
Response.Redirect("bettings.asp")
end if%>

LarsGMedlem sedan dec. 200012 464 inlägg
#14

Är denna sats på två rader?

oConn.Execute "INSERT INTO ResultatTabellen (Match,Lirat,Resultat,Bookie) VALUES ('"+a+"','"+b+"','"+c+"','"+g+"')"

VB-script tillåter inte att man har crlf mitt i en sträng

Om det är så får du se till att det hamnar på samma rad eller så kan man dela upp det

oConn.Execute "INSERT INTO ResultatTabellen " & _ 
"(Match,Lirat,Resultat,Bookie) VALUES ('"+a+"','"+b+"','"+c+"','"+g+"')"

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 23 sep 2001]

guckenMedlem sedan sep. 2001287 inlägg
#15

nej det ligger på samma rad alltihopa. det bröts bara att jag klistrade in det här.

guckenMedlem sedan sep. 2001287 inlägg
#16

skälva grejjen är att jag vill föra in 2 poster till i databasen. odds och insatts. som jag skriver lika som dom andra. men dom vill inte komma in där.
blir bara inkompatibla typer fel

@ndersMedlem sedan juni 200032 969 inlägg
#17

hmm, tänkte nog lite knasigt där. Återkommer.

------------------
All your base are belong to me.

[Redigerat av @nders den 24 sep 2001]

guckenMedlem sedan sep. 2001287 inlägg
#18

men alltså nån här runt om i forumet vet väll hur man för in siffror i en databas. jag läste nånstans att värdet från ett textfält alltid är en sträng med text. har jag inte med tidigare kod omvandlat dom till integer?
jo en sak till som kanske kan hjälpa. hur deklarerar jag en variabel som variant. må det vara med
dim variabel1 as variant

tack iaf för allt. får ta ett steg i taget.

LarsGMedlem sedan dec. 200012 464 inlägg
#19

Kan det vara något problem med att du använder + för att konkatenera

oConn.Execute "INSERT INTO ResultatTabellen " & _ 
"(Match,Lirat,Resultat,Bookie) VALUES ('"&a&"','"&b&"','"&c&"','"&g&"')"

------------------
essentitia preter non sans multiplicandum

guckenMedlem sedan sep. 2001287 inlägg
#20

hehe =) ja det var det som var problemet.. tack. nu kan jag återgå till mina vanliga problem =)

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