/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
ASP til MSSQL !
Fra : Lars Rasmussen


Dato : 02-04-01 10:05

Hej !

Hvordan sender man mere end en statment til SQL serveren fra ASP?

F.eks.

Sql = "Insert Into ForSjov (Test) Values ('Test1')" & vbCrLf
Sql = Sql & "Insert Into ForSjov (Test) Values ('Test2')"
Conn.Execute Sql

Hvis man skuder dem af enkeltvis er det OK, men kan man ikke sende dem på
engang?

Jeg har prøvet at sætte "GO" i mellem, men det virker ikke!

Jeg har prøvet at sætte linieskift efter hver linie. Her kommer ingen fejl,
men det er kun ca. 1/3 af linierne der kommer ned i tabellen.

Mvh.
Lars
baby@doyouloveme.dk



 
 
Peter Lykkegaard (02-04-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 02-04-01 15:26


"Lars Rasmussen" <baby@doyouloveme.dk> wrote in message
news:9a9f91$paj$1@sunsite.dk...
> Hej !
>
> Hvordan sender man mere end en statment til SQL serveren fra ASP?
>
> F.eks.
>
> Sql = "Insert Into ForSjov (Test) Values ('Test1')" & vbCrLf
> Sql = Sql & "Insert Into ForSjov (Test) Values ('Test2')"
> Conn.Execute Sql
>
Sql = Sql & "Begin Tran" & vbCrLf
Sql = Sql & "Insert Into ForSjov (Test) Values ('Test1')" & vbCrLf
Sql = Sql & "Insert Into ForSjov (Test) Values ('Test2')" & vbCrLf
Sql = Sql & "Commit tran"

> Jeg har prøvet at sætte "GO" i mellem, men det virker ikke!
>
"Go" har ikke så meget med T-SQl at gøre, men mere en kommando til isql og
lign
- prøv at læse om "Go" i BOL

mvh/Peter Lykkegaard



Lars Rasmussen (03-04-2001)
Kommentar
Fra : Lars Rasmussen


Dato : 03-04-01 10:39

"Peter Lykkegaard" <polonline@hotmail.com> wrote in message
news:lW%x6.172$HY1.10682@news.get2net.dk...
>
> "Lars Rasmussen" <baby@doyouloveme.dk> wrote in message
> news:9a9f91$paj$1@sunsite.dk...
> > Hej !
> >
> > Hvordan sender man mere end en statment til SQL serveren fra ASP?
> >
> > F.eks.
> >
> > Sql = "Insert Into ForSjov (Test) Values ('Test1')" & vbCrLf
> > Sql = Sql & "Insert Into ForSjov (Test) Values ('Test2')"
> > Conn.Execute Sql
> >
> Sql = Sql & "Begin Tran" & vbCrLf
> Sql = Sql & "Insert Into ForSjov (Test) Values ('Test1')" & vbCrLf
> Sql = Sql & "Insert Into ForSjov (Test) Values ('Test2')" & vbCrLf
> Sql = Sql & "Commit tran"
>
> > Jeg har prøvet at sætte "GO" i mellem, men det virker ikke!
> >
> "Go" har ikke så meget med T-SQl at gøre, men mere en kommando til isql og
> lign
> - prøv at læse om "Go" i BOL
>
> mvh/Peter Lykkegaard
>
>

Hej Peter!

Tak for dit svar, men mit problem forsvandt desværre ikke.

Hvis jeg har en "gruppe" med f.eks. 20 Insert sætninger misser den 1-2 af
dem hvergang.

Jeg prøvede med 193 og kun de 110 kom ind selvom SQL'en så OK ud.

Ps. Jeg havde sat Begin og Commit omkring!

Mvh.
Lars



Peter Lykkegaard (03-04-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 03-04-01 15:35


"Lars Rasmussen" <baby@doyouloveme.dk> wrote in message
news:9ac5kp$g37$1@sunsite.dk...

> Hvis jeg har en "gruppe" med f.eks. 20 Insert sætninger misser den 1-2 af
> dem hvergang.
>
Hmm, kan være låsnings konflikter?
Prøv at tjekke loggen, du kan også tilføje noget errorhandling vha check på
@@error

mvh/Peter Lykkegaard



Stig Johansen (03-04-2001)
Kommentar
Fra : Stig Johansen


Dato : 03-04-01 20:18

Hej.


"Peter Lykkegaard" <polonline@hotmail.com> wrote in message
news:K8ly6.178$PR2.20264@news.get2net.dk...
>
> "Lars Rasmussen" <baby@doyouloveme.dk> wrote in message
> news:9ac5kp$g37$1@sunsite.dk...
>
> > Hvis jeg har en "gruppe" med f.eks. 20 Insert sætninger misser den 1-2
af
> > dem hvergang.
> >
> Hmm, kan være låsnings konflikter?
> Prøv at tjekke loggen, du kan også tilføje noget errorhandling vha check

> @@error
>

Kan man ikke forstille sig, SQLserveren prøver at aflevere eks. 20 result
sets, hvorimod klienten (ADO) kun aflæser det ene(første).

De rækker, der når at komme ind i basen er så dem den når at indsætte inden
klienten disconnecter.

Jeg er ikke nogen haj til ADO, men se evt. under SQLMoreResults (ODBC) I
BOL.

--
Med venlig hilsen/Best Regards
Stig Johansen - stig@w3data.dk
W3 Data - mailto@w3data.dk





Peter Lykkegaard (04-04-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 04-04-01 18:51


"Stig Johansen" <stig@w3data.dk> wrote in message
news:9ad7h0$inn$1@sunsite.dk...
> Hej.
>
>
> "Peter Lykkegaard" <polonline@hotmail.com> wrote in message
> news:K8ly6.178$PR2.20264@news.get2net.dk...
> >
> > "Lars Rasmussen" <baby@doyouloveme.dk> wrote in message
> > news:9ac5kp$g37$1@sunsite.dk...
> >
> > > Hvis jeg har en "gruppe" med f.eks. 20 Insert sætninger misser den 1-2

> Kan man ikke forstille sig, SQLserveren prøver at aflevere eks. 20 result
> sets, hvorimod klienten (ADO) kun aflæser det ene(første).
>
Ved Inserts returneres frt notmalt ikke result sets

mvh/Peter Lykkegaard



Stig Johansen (05-04-2001)
Kommentar
Fra : Stig Johansen


Dato : 05-04-01 03:59

Hej.


"Peter Lykkegaard" <polonline@hotmail.com> wrote in message
news:u6Jy6.216$II3.9716@news.get2net.dk...
>
> "Stig Johansen" <stig@w3data.dk> wrote in message
> news:9ad7h0$inn$1@sunsite.dk...
> > Hej.
> >
> >
> > "Peter Lykkegaard" <polonline@hotmail.com> wrote in message
> > news:K8ly6.178$PR2.20264@news.get2net.dk...
> > >
> > > "Lars Rasmussen" <baby@doyouloveme.dk> wrote in message
> > > news:9ac5kp$g37$1@sunsite.dk...
> > >
> > > > Hvis jeg har en "gruppe" med f.eks. 20 Insert sætninger misser den
1-2
>
> > Kan man ikke forstille sig, SQLserveren prøver at aflevere eks. 20
result
> > sets, hvorimod klienten (ADO) kun aflæser det ene(første).
> >
> Ved Inserts returneres frt notmalt ikke result sets
>

Nej nej, ikke resultsets i den forstand, men hvis du fyrer en batch af, får
du følgende(eksempel):
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
(1 row(s) affected)
Altså skal du formentlig have fat i fire resultatet-aflæsninger.

Det er generelt et problem at håndtere 'batches' via program.
Her vil jeg lige nævne, at jeg bruger ikke selv query batches.

--
Med venlig hilsen/Best Regards
Stig Johansen - stig@w3data.dk
W3 Data - mailto@w3data.dk





Peter Lykkegaard (05-04-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 05-04-01 08:01


"Stig Johansen" <stig@w3data.dk> wrote in message
news:9agnbd$l85$1@sunsite.dk...
> Hej.
>
>
> "Peter Lykkegaard" <polonline@hotmail.com> wrote in message
> news:u6Jy6.216$II3.9716@news.get2net.dk...
> >
> > > Kan man ikke forstille sig, SQLserveren prøver at aflevere eks. 20
>>>> result
> > > sets, hvorimod klienten (ADO) kun aflæser det ene(første).
> > >
> > Ved Inserts returneres frt notmalt ikke result sets
> >
>
> Nej nej, ikke resultsets i den forstand, men hvis du fyrer en batch af,
får
> du følgende(eksempel):
> (1 row(s) affected)
> (1 row(s) affected)
> (1 row(s) affected)
> (1 row(s) affected)
> Altså skal du formentlig have fat i fire resultatet-aflæsninger.
>
Brug "SET NOCOUNT ON" og "SET NOCOUNT OFF"
Før og efter dine inserts
Eller brug <object>.execute strSQL, adExecuteNoRecords

Det er den anbefalede fremgangsmåde - også mht performance

mvh/Peter Lykkegaard



Stig Johansen (05-04-2001)
Kommentar
Fra : Stig Johansen


Dato : 05-04-01 14:39

Hej.

"Peter Lykkegaard" <polonline@hotmail.com> wrote in message
news:cHUy6.8$IB4.1031@news.get2net.dk...
>
> "Stig Johansen" <stig@w3data.dk> wrote in message
> news:9agnbd$l85$1@sunsite.dk...
> > Hej.
> >
> >
> > "Peter Lykkegaard" <polonline@hotmail.com> wrote in message
> > news:u6Jy6.216$II3.9716@news.get2net.dk...
> > >
> > > > Kan man ikke forstille sig, SQLserveren prøver at aflevere eks. 20
> >>>> result
> > > > sets, hvorimod klienten (ADO) kun aflæser det ene(første).
> > > >
> > > Ved Inserts returneres frt notmalt ikke result sets
> > >
> >
> > Nej nej, ikke resultsets i den forstand, men hvis du fyrer en batch af,
> får
> > du følgende(eksempel):
> > (1 row(s) affected)
> > (1 row(s) affected)
> > (1 row(s) affected)
> > (1 row(s) affected)
> > Altså skal du formentlig have fat i fire resultatet-aflæsninger.
> >
> Brug "SET NOCOUNT ON" og "SET NOCOUNT OFF"
> Før og efter dine inserts
> Eller brug <object>.execute strSQL, adExecuteNoRecords
>
> Det er den anbefalede fremgangsmåde - også mht performance
>
> mvh/Peter Lykkegaard
>
>

Der er et udmærket eksempel på hvordan man håndterer multiple 'resultsets'
på:
http://support.microsoft.com/support/kb/articles/Q245/1/79.ASP

mvh
Stig Johansen.




Claus (03-04-2001)
Kommentar
Fra : Claus


Dato : 03-04-01 12:03

> Sql = "Insert Into ForSjov (Test) Values ('Test1')" & vbCrLf
> Sql = Sql & "Insert Into ForSjov (Test) Values ('Test2')"
> Conn.Execute Sql

Prøv at adskille med ; i stedet.

mvh.
Claus



Frederik Jensen (25-04-2001)
Kommentar
Fra : Frederik Jensen


Dato : 25-04-01 09:13

Overvejer hvorfor det kan have nogen mening at lave flere clientside insert
statements i en ombæring. Har du overvejet anvendelse af serverside Stored
procedures?
--
Frederik Jensen, Judex

"Lars Rasmussen" <baby@doyouloveme.dk> wrote in message
news:9a9f91$paj$1@sunsite.dk...
> Hej !
>
> Hvordan sender man mere end en statment til SQL serveren fra ASP?
>
> F.eks.
>
> Sql = "Insert Into ForSjov (Test) Values ('Test1')" & vbCrLf
> Sql = Sql & "Insert Into ForSjov (Test) Values ('Test2')"
> Conn.Execute Sql
>
> Hvis man skuder dem af enkeltvis er det OK, men kan man ikke sende dem på
> engang?
>
> Jeg har prøvet at sætte "GO" i mellem, men det virker ikke!
>
> Jeg har prøvet at sætte linieskift efter hver linie. Her kommer ingen
fejl,
> men det er kun ca. 1/3 af linierne der kommer ned i tabellen.
>
> Mvh.
> Lars
> baby@doyouloveme.dk
>
>



Søg
Reklame
Statistik
Spørgsmål : 177517
Tips : 31968
Nyheder : 719565
Indlæg : 6408645
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste