Avatar billede tjaz Nybegynder
29. april 2002 - 20:54 Der er 15 kommentarer og
2 løsninger

Tilføj post til db via dsn

Hvordan gør man det? jeg har forsøgt flere ting men det vil ikke rigtig lykkedes

plz hjælp
Avatar billede riishoj Nybegynder
29. april 2002 - 20:56 #1
Hvad er problemet. Hvad har du forsøgt. Er det DSN-forbindelsen, som er problemet?
Avatar billede sungdk Nybegynder
29. april 2002 - 20:58 #2
Avatar billede tjaz Nybegynder
29. april 2002 - 20:58 #3
jeg kan ikke rigtig finde ud af at få den til at tilføje en ny post.. jeg har tidligere brugt dsnless og har brugt

rs.addnew
rs("noget") = Request.Form("noget")
rs.update

men jeg kan ikke få den til at benytte den metode med dsn?
Avatar billede tjaz Nybegynder
29. april 2002 - 20:59 #4
det er ikke at forbinde til databasen med dsn der er problemet, ellers tak :)
Avatar billede sungdk Nybegynder
29. april 2002 - 21:04 #5
Avatar billede fjed Nybegynder
29. april 2002 - 21:42 #6
Database forbindelse med ODBC datakilder.

Når man laver asp-dokumenter er det oplagt at bruge databaser til at gemme informationer i. I mit projekt har jeg brugt en Microsoft Access database med navnet db.mdb. I denne er der 2 tabeller. Den ene; information om brugere, den hedder users, den anden; de beskeder som bliver tilføjet til gæstebogen, den hedder gb.

For at kunne få adgang til en database fra et ASP script, må man have en databaseforbindelse. Der findes en del muligheder til at lave database forbindelser. Hvis man har mulighed for det skal man vælge ODBC da det er den sikreste og nemmeste metode når det først er sat op. Hvis man har sine asp-dokumenter liggende på et web-hotel skal man have sin hotel-udbyder til at oprette ODBC-datakilden (DSN – data source name). Men har man asp-dokumenterne liggende på sin egen computer, og hermede egen server, har man selv mulighed for at oprette ODBC-datakilder. Skal man bruge disse i et asp-script oprettes de på følgende måde:
1)    Gå ind i start
2)    Kontrolpanel og vælg Administration
3)    Så skal man vælge Datakilder (ODBC)
4)    Så går man ind under det faneblad der hedder System-DSN
5)    Her vælger man tilføj.
6)    Så vælger man driveren: Microsoft Access Driver (*.mdb)
7)    Så skal man angive en sti til databasen.
8)    Så har man mulighed for at bruge Brugernavn og Adgangskode for at øge sikkerheden til når man skal åbne en database forbindelse. Dette har jeg ikke valgt at gøre (dovenskab? Tjaa)
9)    Sidst men ikke men skal man angive datakildens navn – data source name (DSN).

Så har man oprettet et ODBC-dsn.

Man kan også lave databaseforbindelserne DSN-less. Det vil sige at man ikke skal angive et data source navn, men derimod den fysiske placering af databasen på serveren samt driver. Det nemme ved at bruge ODBC-Dsn er at man slippe for at skulle angive både placering af database samt driver hver gang man skal åbne en databaseforbindelse, men blot behøver at angive datakildens navn – altså DSN.
Avatar billede fjed Nybegynder
29. april 2002 - 21:46 #7
Så er der så forbindelsen som laves sådan her:

<%
'DB forbindelse
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DSN=<datakildenavnet>;"

strSQL = <SQL-sætning>
Set rs = oConn.Execute(strSQL)

'Database lukning
oConn.Close
Set oConn = Nothing
%>
Avatar billede fjed Nybegynder
29. april 2002 - 21:47 #8
Btw.. du skal ikke tage dig af hvis der står noget om en bestem database i det om ODBC.. Jeg tog bare teksten direkte fra min datalogi rapport.
Avatar billede sup Nybegynder
30. april 2002 - 01:52 #9
Løsningen er ret simpel.

<%
Firma_navn    = TRIM( Request( "Firma_navn" ) )
Firma_mail    = TRIM( Request( "Firma_mail" ) )
Firma_tlf    = TRIM( Request( "Firma_tlf" ) )

Set Con = Server.CreateObject( "ADODB.Connection" )
Con.open "DSN=test"

sqlString = "INSERT INTO DB ( Firma_navn, Firma_mail, Firma_tlf ) VALUES ( 'Sup Cybersoft' , 'sup@email.com' , '123456' )"
Con.Execute sqlString
Con.Close
Set Con = Nothing

%>

Håber du får det til at virke :)
Sup.
Avatar billede sup Nybegynder
30. april 2002 - 01:56 #10
sqlString ="INSERT INTO DB (bla bla....skal stå på en linie

Sup.
Avatar billede tjaz Nybegynder
30. april 2002 - 15:26 #11
inden jeg lukker vil jeg gerne sige at jeg har fået sup's til at virke, men jeg vil godt lige høre en ting mere... og jeg skal nok smide nogen flere point i spm hvis det er det


Hvordan for man den til at tjekke at det man indtaster ikke allerede er i db'en i forvejen?
Avatar billede sup Nybegynder
30. april 2002 - 17:05 #12
Hey tjaz. Jeg havde godt nok et par fejl i den tidligere kode :)
Men her har du det du spørger om. Det giver dig ihvertfald i ide
til hvordan man kan gøre det. Igen skal alle sqlStrings stå på
samme linie. Du finder ud af det :)
Sup.


<!-- Siden som samler dine variabler op fra din form -->
<%
Firma_navn    = TRIM( Request( "Firma_navn" ) )
Firma_mail    = TRIM( Request( "Firma_mail" ) )
Firma_tlf    = TRIM( Request( "Firma_tlf" ) )

Set Con = Server.CreateObject( "ADODB.Connection" )
Con.open "DSN=test"

<!-- Her checkes om der findes en post i firma tabellen -->
<!-- med det samme firma navn som fra din indput form. -->
<!-- Der checkes kun for firmanavnet med du kan bruge -->
<!-- OR eller AND hvis du vil checke flere -->
sqlString ="SELECT COUNT(Firma_navn) AS Antal FROM Firma WHERE Firma_navn LIKE '" & Firma_navn & "'"

SET RS = Con.Execute( sqlString )
WHILE NOT RS.EOF

<!-- Hvis antal er lig nul er der ikke nogen post med firmanavnet -->
Antal = RS("Antal")

rs.MoveNext
WEND

<!-- Her checkes om posten kan indsættes. men kun hvis antal er lig nul -->
IF Antal ="0" THEN
sqlString = "INSERT INTO Firma ( Firma_navn, Firma_mail, Firma_tlf ) VALUES ( '" & Firma_navn & "' , '" & Firma_mail & "' , '" & Firma_tlf & "')"
Con.Execute sqlString
END IF

Con.Close
Set Con = Nothing

<!-- Fejlmeddelelse hvis firma navnet findes. -->
IF ANTAL <> "0" THEN
response.write "Der findes en post med det samme firma navn. bla bla."
response.write "<INPUT TYPE=button VALUE=Tilbage onClick=history.back()>"

ELSE

response.write "Posten er oprettet..Jubii :)"
%>
Avatar billede fjed Nybegynder
30. april 2002 - 19:26 #13
ikke for at være pernyttengrin men den kode jeg skrev er den samme som sups.. bare med nogle andre navne på variabler.. men fuck det
Avatar billede fjed Nybegynder
30. april 2002 - 20:30 #14
ohh.. det var SQL sætninger du ikke kunne.. my bad.. sorry
Avatar billede sup Nybegynder
01. maj 2002 - 23:37 #15
Finder du ud af det tjaz :)

Sup.
Avatar billede tjaz Nybegynder
02. maj 2002 - 06:03 #16
sry ... har ikke lige haft tid til at kigge på det ... gør det lige senere i dag :)
Avatar billede sup Nybegynder
09. maj 2002 - 18:20 #17
Jeg mangler vist også en End IF til sidst :)

Sup.
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