webForumDet fria alternativet

Connection strings, så här?

ASP

4 svar · 261 visningar · startad av Calevan

Medlem sedan maj 20031 173 inlägg
Frågan#1

Är det så här man skriver? kolla gärna fnuttar och om jag använt rätt ' och # tecken där det ska vara det, och tagit bort där de inte ska vara. gärna vilka siffror man ska ha efter connect oxå... jag vet att det står om detta lite överallt, men så som jag fattat det så skriver folk lite olika. tänkte sammanfatta lite, om ingen misstycker :)

tack!

 
//Ta ut saker ur databas för tex paging

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=aaa;Data Source = " & Server.MapPath("db/databas.mdb")
SQL = "SELECT falt1, falt2, falt3 FROM tabell ORDER BY id DESC"
Set RecSet = Connect.Execute(SQL)

IF NOT RecSet.EOF THEN arrRecSet = RecSet.GetRows()

RecSet.Close : Set RecSet = Nothing
Connect.Close : Set Connect = Nothing

//Lägg till,ta bort eller uppdatera saker i databas

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=aaa;Data Source = " & Server.MapPath("db/databas.mdb")
SQL = "INSERT INTO tabell (text, tal, datum) VALUES ('" & texten & "'," & talet & ",#" & datumet & "#)"
SQL = "UPDATE tabell SET text = '" & texten & "', tal = " & talet & ", datum = #" & datumet & "# WHERE id = " & id & " "
SQL = "DELETE FROM tabell WHERE id = " & id & ""
Connect.Execute(SQL),,128
Connect.Close : Set Connect = Nothing
Medlem sedan juni 20022 599 inlägg
#2

Ja, det ser väl rätt ut. En detalj bara om man nu vill vara riktigt petig:

Connect.Execute SQL,,[b]129[/b]

(adCmdText = 1, adExecuteNoRecords = 128 -> adCmdText or adExecuteNoRecords = 129)

http://www.devguru.com/Technologies/ado/quickref/connection_execute.html

Sen ska du kanske också undvika tabellnamn som "text" men jag förstår att du använder det som illustration.

Medlem sedan maj 20031 173 inlägg
#3

jag måste säga att jag inte fattar vad skillnaden är mellan 128 och 129. ser att det står olika, men vad betyder det på svenska?

och spelar det någon som helst roll om jag skriver

Connect.Execute SQL,,129

eller

Connect.Execute(SQL),,128

(och angående text, så var det bara för att demonstrera skillnaden mellan text, tal och datum)

tack!

Medlem sedan juni 200032 967 inlägg
#4

En annan detalj om man ska vara petig:

SQL = "UPDATE tabell SET text = '" & texten & "', tal = " & talet & ", datum = #" & datumet & "# WHERE id = " & id [b][blue]& " "[/blue][/b]
SQL = "DELETE FROM tabell WHERE id = " & id [b][blue]& ""[/blue][/b]

Det finns ingen anledning att lägga till ingenting i slutet på SQL-frågor.

Medlem sedan juni 20022 599 inlägg
#5

Calevan skrev:

men vad betyder det på svenska

Det betyder att du i tredje paramametern har möjlighet att hjälpa providern på traven och ange hur den ska tolka den första parametern: en SQL (adCmdText), en Stored Procedure (adCmdStoredProc), ett tabellnamn (adCmdTable), osv ..

Calevan skrev:

och spelar det någon som helst roll om jag skriver..

Det kan man ju alltid diskutera. Providern kan säkert själv lista ut vad den första parametern är för nåt. Men å andra sidan skadar det inte - Om du ändå ska ange den tredje parametern öht så kan du ju lika bra göra det helt by-the-book?

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)