|
| Delning af lang insert into sætning Fra : Peter Vestergaard |
Dato : 11-05-02 20:56 |
|
Hej
Jeg sidder med en insert into sætning som er blevet alt for lang
- hvordan kan jeg opdele den så den er på flere linjer ?
koden ser sådan her ud:
conn.Open strDSN
conn.Execute("INSERT INTO testUsers(firstName, lastName, adress,
zip, city, phone, email, birthDate, clubID, state,
commercialReceiver, newsReceiver, creationDate, homepage,
password, boyGirl, Paid) VALUES('" & request.form("firstName") &
"', '" & request.form("lastName") & "', '" &
request.form("address") & "', '" & request.form("zip") & "', '" &
request.form("city") & "', '" & request.form("phone") & "', '" &
request.form("email") & "', '" & request.form("birthDate") & "',
'" & request.form("clubID") & "', '" & request.form("state") &
"', '" & request.form("commercialReceiver") & "', '" &
request.form("newsReceiver") & "','" #& Now &# "','" &
request.form("homepage") & "', '" & request.form("password") &
"', '" & request.form("boyGirl") & "', '" & request.form("paid")
& "')")
Lidt lang som I kan se
På forhånd tak for hjælpen
/Peter
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Ole Dalsgaard Jensen (11-05-2002)
| Kommentar Fra : Ole Dalsgaard Jensen |
Dato : 11-05-02 21:32 |
|
Hej Peter
Jeg ville nok benytte en variabel, f.eks. Sql
Sql = "INSERT INTO testUsers (firstName, LastName etc......) "
Sql = Sql & "VALUES ('" & request.form("firstName") & "','" &
request.form("lastName") etc.....
Sql = Sql & etc.....
conn.Execute(Sql)
mvh.
Ole Dalsgaard Jensen
mailto:ole.dalsgaard@stofanet.dk
Peter Vestergaard <vsign@vsign.dk> skrev i en
nyhedsmeddelelse:abjsvp$kv0$1@sunsite.dk...
> Hej
>
> Jeg sidder med en insert into sætning som er blevet alt for lang
> - hvordan kan jeg opdele den så den er på flere linjer ?
>
> koden ser sådan her ud:
> conn.Open strDSN
> conn.Execute("INSERT INTO testUsers(firstName, lastName, adress,
> zip, city, phone, email, birthDate, clubID, state,
> commercialReceiver, newsReceiver, creationDate, homepage,
> password, boyGirl, Paid) VALUES('" & request.form("firstName") &
> "', '" & request.form("lastName") & "', '" &
> request.form("address") & "', '" & request.form("zip") & "', '" &
> request.form("city") & "', '" & request.form("phone") & "', '" &
> request.form("email") & "', '" & request.form("birthDate") & "',
> '" & request.form("clubID") & "', '" & request.form("state") &
> "', '" & request.form("commercialReceiver") & "', '" &
> request.form("newsReceiver") & "','" #& Now &# "','" &
> request.form("homepage") & "', '" & request.form("password") &
> "', '" & request.form("boyGirl") & "', '" & request.form("paid")
> & "')")
>
> Lidt lang som I kan se
>
> På forhånd tak for hjælpen
>
> /Peter
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials
| |
Jørn Andersen (11-05-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 11-05-02 22:43 |
|
On Sat, 11 May 2002 19:55:37 +0000 (UTC), Peter Vestergaard
<vsign@vsign.dk> wrote:
>Jeg sidder med en insert into sætning som er blevet alt for lang
>- hvordan kan jeg opdele den så den er på flere linjer ?
>
>koden ser sådan her ud:
>conn.Open strDSN
>conn.Execute("INSERT INTO testUsers(firstName, lastName, adress,
>zip, city, phone, email, birthDate, clubID, state,
>commercialReceiver, newsReceiver, creationDate, homepage,
>password, boyGirl, Paid) VALUES('" & request.form("firstName") &
>"', '" & request.form("lastName") & "', '" &
>request.form("address") & "', '" & request.form("zip") & "', '" &
>request.form("city") & "', '" & request.form("phone") & "', '" &
>request.form("email") & "', '" & request.form("birthDate") & "',
<SNIP resten>
Hej Peter,
Der er flere ting, du kan gøre - og dermed løse flere af de problemer,
der er med dit nuværende "setup".
1) Start med at definere din SQL-streng - og kør den så bagefter:
strSql = "INSERT ..."
conn.Execute(strSQL)
(Det har den sidegevinst, at du let kan udskrive strSql, hvis der
bliver problemer med den.)
2) Linier kan "forlænges" med '_' (underscore)
strSql = "INSERT INTO testUsers(firstName, lastName," & _
" adress, zip, city, phone, email, birthDate," & _
" clubID, state, commercialReceiver, newsReceiver," & _
" creationDate, homepage," -- osv.
3) Endelig er det generelt en dårlig idé at have
Request.Form-erklæringer direkte i SQL-strengen. Som regel vil man
være interesseret i at foretage en form for validering.
Fx sikre sig, at datofelter udfyldes med gyldige datoer, at tal ligger
inden for fornuftige intervaller, at tekstfelter ikke er tomme etc.
I værste fald kan man smadre alle sine data, hvis man ikke validerer
sine data først.
Så som regel er det smartest at lave en slags "input-sektion" i sin
kode, hvor man henter formular-indholdet ind i nogle variable, som man
så validerer - og kun fører over i databasen, hvis data er valide.
Det kunne fx være noget i retning af:
datBirthDate = Request.Form("birthDate")
If IsDate(datBirthDate) Then
' -- OK
Else
' -- Fejl
End If
Dette har så også den sidegevinst, at din SQL-streng oftest bliver
noget kortere og lettere at læse, når du slipper af med alle
Request.Form'erne.
Good luck,
Jørn
--
Jørn Andersen,
Brønshøj
| |
Allan Schuster Bach (12-05-2002)
| Kommentar Fra : Allan Schuster Bach |
Dato : 12-05-02 16:11 |
|
<snip en masse>
> Dette har så også den sidegevinst, at din SQL-streng oftest bliver
> noget kortere og lettere at læse, når du slipper af med alle
> Request.Form'erne.
>
>
> Good luck,
> Jørn
Generelt kan man vel opdele valideringen på 3 måder
Klient-side (Foretages inden formen bliver afsendt)
Server-side (Præsic som du forslå)
Databasen (Kan bruges sammen stored procedure)
Rigtig meget validering kan foretages på klientsiden, men som du selv
nævner, vil det være
en god ide, at kontroller data, inden de bliver sendt til databasen.
Men hensyn til lange SQL-sætning'er, vil jeg anbefale, at du gøre som Ole
har beskrevet.
Det giver, igen efter min opfattelse, den bedste læsevenlighed.
Allan Bach
| |
Jørn Andersen (12-05-2002)
| Kommentar Fra : Jørn Andersen |
Dato : 12-05-02 18:28 |
|
On Sun, 12 May 2002 17:11:19 +0200, "Allan Schuster Bach"
<newskonto@schuster.dk> wrote:
>Rigtig meget validering kan foretages på klientsiden, men som du selv
>nævner, vil det være
>en god ide, at kontroller data, inden de bliver sendt til databasen.
Jeg synes, at fordelen ved klientside-validering er, at man slipper
for nogle server-kald. Omvendt er klientside-validering ikke specielt
pålidelig, og jeg vil normalt lave serverside-validering som om der
ikke er foretaget nogen klientside-validering.
Mvh. Jørn
--
Jørn Andersen,
Brønshøj
| |
|
|