Avatar billede minielsen Nybegynder
10. september 2002 - 15:15 Der er 37 kommentarer og
1 løsning

Hvad kræves der helt nøgagtigt for at hente fra en DB ?

Hvad kræves der helt nøgagtigt for at hente fra en DB ?

Jeg har en DB og er lidt i tvivl om hvordan man mest enkelt kan hente data fra den.

Jeg bruger dette, men det må da kunne gøres mere enkelt, feks. kun at skrive de felter man har brug for.

Hvis jeg feks. ønsker at behandle følgende :
type, dato og forhandlernavn, hvad kan jeg så nøjes med at skrive ?


<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\websider\global\comgrosinfo.dk\comgrosinfo.dk\db\usgdatabase.mdb"
Conn.Open DSN

Hvad er så det næste der skal skrives og hvorfor.



Jeg uddeler 100 points men regner til gengæld  også med at lære lidt :)
Avatar billede keysersoze Guru
10. september 2002 - 15:17 #1
Avatar billede keysersoze Guru
10. september 2002 - 15:18 #2
generelt kan du lære en masse om asp på html.dk - netcoders.dk og activeserverpages.dk
Avatar billede eagleeye Praktikant
10. september 2002 - 15:20 #3
Så skal du lave et recordset

Set rs=Server.CreateObject("ADODB.Recordset")
'SQL sætninge som hendter data Type skal i [] forid det er reservert
'ord i SQL.
sql = "SELECT [type], dato, forhandlernavn FROM din_tabel"
Set rs = Conn.Execute(sql)
'Udskriv data
do while not rs.eof
  Response.write "Type : " & rs("type")
  Response.write "  Dato : " & rs("dato")
  Response.write "  forhandlernavn: " & rs("forhandlernavn")

  rs.movenext
loop
Avatar billede eagleeye Praktikant
10. september 2002 - 15:21 #4
Et godt sted omkring SQL:  http://www.w3schools.com/sql/
Avatar billede minielsen Nybegynder
10. september 2002 - 15:21 #5
Hvorfor kan jeg ikke bare skrive :



<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\websider\global\comgrosinfo.dk\comgrosinfo.dk\db\usgdatabase.mdb"
Conn.Open DSN

sql="select * from usgdatabase order by nummer"
Avatar billede eagleeye Praktikant
10. september 2002 - 15:26 #6
med:
sql="select * from usgdatabase order by nummer"

Vælger du alle kolonner i databasen så det kan du også godt.
Avatar billede eagleeye Praktikant
10. september 2002 - 15:26 #7
Dette styk kode:
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\websider\global\comgrosinfo.dk\comgrosinfo.dk\db\usgdatabase.mdb"
Conn.Open DSN


Åbner kun en connection til databasen/tabellen.
Avatar billede keysersoze Guru
10. september 2002 - 15:27 #8
det kan du da også sagtens - men så kommer der ikke nogle data ud...

du SKAL udskrive de data du vil bruge - og det ville da være godt kikset hvis man ikke selv kunne bestemme hvor og hvordan ens data skulle udskrives
Avatar billede minielsen Nybegynder
10. september 2002 - 15:32 #9
´Jaja så lærte jeg da lidt mere, men se lige her:

Jeg prøvede dette, men det er kun "nummer" der udskrives, hvorfor ?


<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\websider\global\comgrosinfo.dk\comgrosinfo.dk\db\usgdatabase.mdb"
Conn.Open DSN

sql="update usgdatabase set kunderep='"&request.form("kunderep")&"', status='"&request.form("status")&"'where nummer='"&request.form("nummer")&"'"
set record=conn.execute(sql)

%>
<html>
<title>USGADMINUPDATE</title>
<head>
</head>
<body>
<BODY BGCOLOR="#ffffff"
<form method="post" action="usgkundeupdate.asp">
</FORM></P>
<h1><font face="Arial, Helvetica, sans-serif" size="1">Databasen er nu opdateret</h1>

<%

if (Request.form("status")) = "usgok" then
response.write ("<strong>Der er nu afsendt en godkendelses mail til Comgros EDB Service")
set jmail = server.createobject("JMAIL.SMTPMail")
jMail.sendername = "Skade godkendt"
jMail.sender = "postmaster@serviceinfo.dk"
jMail.Subject = "Skade godkendt"
jMail.ServerAddress = "mail.comgrosinfo.dk"
jMail.AddRecipient "postmaster@comgrosinfo.dk"
jMail.Body = "Dette er et autosvar" & vbCrLf
jMail.Body = jMail.Body & "Her følger online informationer:" & vbCrLf & vbCrLf
jMail.Body = jMail.Body & "Faktura Nr:                " & (Request.form("nummer")) & " er godkendt" & vbCrLf
jMail.Body = jMail.Body & "Vare type:                " & (Request.form("type"))
jMail.Body = jMail.Body & "Forhandler:                " & (Request.form("forhandlernavn"))
jMail.Priority = 3
jMail.execute
else
end if
%>

</body>
</html>
Avatar billede minielsen Nybegynder
10. september 2002 - 15:33 #10
Hvad i himmelens navn skal jeg skrive her for både at opdatere og udskrive ??
Avatar billede eagleeye Praktikant
10. september 2002 - 15:34 #11
Den side laver en UPDATE af tabellen kunderep se SQL sætning:

sql="update usgdatabase set kunderep='"&request.form("kunderep")&"', status='"&request.form("status")&"'where nummer='"&request.form("nummer")&"'"

Og så sender den en mail ud...
Avatar billede minielsen Nybegynder
10. september 2002 - 15:37 #12
Jeps, jeg har selv knoklet det sammen (uden egentlig at vide hvad jeg gjorde)

Men i mailen udskrives kun "nummer" ikke "type" og "forhandlernavn"
Avatar billede minielsen Nybegynder
10. september 2002 - 15:39 #13
Men hvordan kan det være at "nummer" kan udskrives når de andre ikke kan (det kan godt være jeg spørger dumt, men bær lige over med mig)

!  :)
Avatar billede eagleeye Praktikant
10. september 2002 - 15:39 #14
du kan ført opdatere:

sql="update usgdatabase set kunderep='"&request.form("kunderep")&"', status='"&request.form("status")&"'where nummer='"&request.form("nummer")&"'"
conn.execute(sql)

'Så kan du hendet den record og udskrive...:
sql="SELECT * FROM usgdatabase WHERE nummer='"&request.form("nummer")&"'"
Set record=conn.execute(sql)


'Udskriv data
do while not record.eof
  Response.write "Type : " & record("type")
  Response.write "  Dato : " & record("dato")
  Response.write "  forhandlernavn: " & record("forhandlernavn")

  record.movenext
loop
Avatar billede eagleeye Praktikant
10. september 2002 - 15:41 #15
Det er fordi nummer kommer fra din Form: request.form("nummer")


De to andre du indlægger i mail hedder Type og forhandlernavn så hvis de ikke er i formen så kan de ikke udskrives:

jMail.Body = jMail.Body & "Vare type:                " & (Request.form("type"))
jMail.Body = jMail.Body & "Forhandler:                " & (Request.form("forhandlernavn"))
Avatar billede minielsen Nybegynder
10. september 2002 - 15:41 #16
Jamen jeg er ikke interesseret i at udskrive disse data, de skal med i mailen
Avatar billede minielsen Nybegynder
10. september 2002 - 15:43 #17
Ahhhh, jeg tror jeg er med nu, jeg laver lige et forsøg ;)
Avatar billede eagleeye Praktikant
10. september 2002 - 15:44 #18
Du kan så bare undlade at udskrive dem :)
Avatar billede minielsen Nybegynder
10. september 2002 - 15:46 #19
Kan man skrive :
jMail.Body = jMail.Body & "Forhandler:                " & (response.write record("forhandlernavn"))
Avatar billede minielsen Nybegynder
10. september 2002 - 15:49 #20
Næhhh , det kan man ikke, hvad skal jeg skrive ?
Avatar billede eagleeye Praktikant
10. september 2002 - 15:54 #21
Nej du skal skrive dette uden response.write.:

jMail.Body = jMail.Body & "Forhandler:                " & record("forhandlernavn"))
Avatar billede eagleeye Praktikant
10. september 2002 - 15:55 #22
Response.write bruges hvis du vil skrive noget til browseren.
Avatar billede mccannon Nybegynder
10. september 2002 - 15:56 #23
tekst = "type: " & record("type")
tekst = tekst & "dato: " & record("dato")
tekst = tekst & "forhandler: " & record("forhandler")

jMail.Body = tekst
Avatar billede minielsen Nybegynder
10. september 2002 - 15:56 #24
Holda' kæft noget rod !! :)

Prøv lige at se her:

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=d:\websider\global\comgrosinfo.dk\comgrosinfo.dk\db\usgdatabase.mdb"
Conn.Open DSN

sql="update usgdatabase set kunderep='"&request.form("kunderep")&"', status='"&request.form("status")&"'where nummer='"&request.form("nummer")&"'"
set record=conn.execute(sql)

sql="SELECT * FROM usgdatabase WHERE nummer='"&request.form("nummer")&"'"
Set record=conn.execute(sql)
if (Request.form("status")) = "usgok" then
response.write ("<strong>Der er nu afsendt en godkendelses mail til Comgros EDB Service")
set jmail = server.createobject("JMAIL.SMTPMail")
jMail.sendername = "Skade godkendt"
jMail.sender = "postmaster@serviceinfo.dk"
jMail.Subject = "Skade godkendt"
jMail.ServerAddress = "mail.comgrosinfo.dk"
jMail.AddRecipient "postmaster@comgrosinfo.dk"
jMail.Body = "Dette er et autosvar" & vbCrLf
jMail.Body = jMail.Body & "Her følger online informationer:" & vbCrLf & vbCrLf
jMail.Body = jMail.Body & "Faktura Nr:                " & (Request.form("nummer")) & " er godkendt" & vbCrLf
jMail.Body = jMail.Body & "Vare type:                " & (Response.write & record("type"))
jMail.Body = jMail.Body & "Forhandler:                " & (Response.write & record("forhandlernavn"))
jMail.Priority = 3
jMail.execute
else
end if
%>

Dette kan man sgu ikke, hvorfor ikke ??
Avatar billede minielsen Nybegynder
10. september 2002 - 15:59 #25
Så skulle dette jo virke, men det gør det ikke :)

<%

if (Request.form("status")) = "usgok" then
response.write ("<strong>Der er nu afsendt en godkendelses mail til Comgros EDB Service")
set jmail = server.createobject("JMAIL.SMTPMail")
jMail.sendername = "Skade godkendt"
jMail.sender = "postmaster@serviceinfo.dk"
jMail.Subject = "Skade godkendt"
jMail.ServerAddress = "mail.comgrosinfo.dk"
jMail.AddRecipient "postmaster@comgrosinfo.dk"
jMail.Body = "Dette er et autosvar" & vbCrLf
jMail.Body = jMail.Body & "Her følger online informationer:" & vbCrLf & vbCrLf
jMail.Body = jMail.Body & "Faktura Nr:                " & (Request.form("nummer")) & " er godkendt" & vbCrLf
jMail.Body = jMail.Body & "Vare type:                " & record("type")
jMail.Body = jMail.Body & "Forhandler:                " & record("forhandlernavn")
jMail.Priority = 3
jMail.execute
else
end if
%>
Avatar billede mccannon Nybegynder
10. september 2002 - 15:59 #26
prøv at kigge på det jeg lavede ovenfor

så vidt jeg ved kan du kun skrive jmail.body EN gang :)
Avatar billede eagleeye Praktikant
10. september 2002 - 15:59 #27
Du skal ikke havde response.write på når du liggeer det data ind i en streng....


jMail.Body = jMail.Body & "Vare type:                " & record("type")
jMail.Body = jMail.Body & "Forhandler:                " & record("forhandlernavn")
Avatar billede minielsen Nybegynder
10. september 2002 - 16:02 #28
mccannon, man kan godt bruge jMail.Body flere gange, det virker med andre af mine script :)

wagleeye, det skulle vist også være det jeg har skrevet, men som sagt stadig kun "nummer" er med i mailen .
Avatar billede mccannon Nybegynder
10. september 2002 - 16:03 #29
oki..
Avatar billede eagleeye Praktikant
10. september 2002 - 16:07 #30
Ja.. du skal også havde en SELECT.. UPDATE hendter ikke data ud af databasen så du efter  update SQL'en:

sql="update usgdatabase set kunderep='"&request.form("kunderep")&"', status='"&request.form("status")&"'where nummer='"&request.form("nummer")&"'"
set record=conn.execute(sql)

'Skal der indsættes en SELECT:
sql="SELECT * FROM usgdatabase WHERE nummer='"&request.form("nummer")&"'"
Set record=conn.execute(sql)
Avatar billede eagleeye Praktikant
10. september 2002 - 16:08 #31
hov det er jo med i koden (10/09-2002 15:56:44)
Avatar billede eagleeye Praktikant
10. september 2002 - 16:14 #32
Kommer de ikke med?? Kan du tjekke at de er rigtig med i databasen..
Avatar billede minielsen Nybegynder
10. september 2002 - 16:16 #33
Det er de
Avatar billede minielsen Nybegynder
10. september 2002 - 16:20 #34
Hvad gør:
WHERE nummer='"&request.form("nummer")&"'"
helt præcis ?

Jeg tror det er her fejlen ligger.
Avatar billede mccannon Nybegynder
10. september 2002 - 16:25 #35
den gør at du kun henter det ud fra db'en hvor den værdi i nummerfeltet i db'en svare til den værdi som er i request.form("nummer")
Avatar billede minielsen Nybegynder
10. september 2002 - 16:25 #36
eagleeye, så virker det.

Det var mig der havde et tastefejl , sorry
Avatar billede eagleeye Praktikant
10. september 2002 - 16:27 #37
Ok :) ja det sker jo også nogle gange..
Avatar billede minielsen Nybegynder
10. september 2002 - 16:27 #38
Jeg har meget mere styr på det nu (tror jeg nok)

Point til dig for din hjælp

I andre tak for jeres svar, men point går til eagleeye da det var hans svar jeg kunne bruge.

Håber dette er ok.
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