/ 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
T-SQL fejl med Count (ADO)
Fra : Snedker


Dato : 29-10-02 00:18

Følgende virker fint i min Query Analyzer:

Select Count(OrdreID) as cID, OrdreiD
From vSpotLen
Where DatePart(hh, StartTid)=8
Group By OrdreID

I min kode ser det så således ud:

rs1.Open "Select Count(OrdreID) as cID, OrdreiD From vSpotLen" & _
"Where DatePart(hh, StartTid)=" & x & " Group By
OrdreID", con, adOpenStatic, adLockOptimistic

Det virker så til gengæld ikke. Får fejlen:

'hh' is not a recognized OPTIMIZER LOCK HINTS option"

Har fræst google igennem, men synes ikke jeg kunne finde noget der
passede min lille ting....

Any ideas?


mvh /Snedker
---
Klip det citerede væk, du ikke besvarer
Besvar venligst under det citerede

 
 
Lars Hessellund (29-10-2002)
Kommentar
Fra : Lars Hessellund


Dato : 29-10-02 01:34

Hmm.... ved ikke hvad din fejl betyder...men prøv at skrive 'h' istedet for
hh....
/Lars



Peter Lykkegaard (29-10-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 29-10-02 08:06

Som svar på skriblerier nedfældet af Snedker :

> rs1.Open "Select Count(OrdreID) as cID, OrdreiD From vSpotLen" & _
> "Where DatePart(hh, StartTid)=" & x & " Group By
> OrdreID", con, adOpenStatic, adLockOptimistic
>
> Det virker så til gengæld ikke. Får fejlen:
>
Prøv lige at hente den Select statement fra debuggeren eller vha Profileren
Det ser ud som om du prøver noget ala

Select Count(OrdreID) as cID, OrdreiD
From vSpotLenWhere DatePart(hh, StartTid)=" & x & "
Group By OrdreID

Hvor tabellen får aliaset DatePart og hh bliver "lock hint"

mvh/Peter Lykkegaard



Snedker (29-10-2002)
Kommentar
Fra : Snedker


Dato : 29-10-02 12:16

On Tue, 29 Oct 2002 08:05:41 +0100, "Peter Lykkegaard"
<polonline@hot.mail.com> wrote:

>Select Count(OrdreID) as cID, OrdreiD
>From vSpotLenWhere DatePart(hh, StartTid)=" & x & "
>Group By OrdreID

Jeeee! Der mangler et mellemrum mellem mit From og Where clause.


mvh /Snedker
---
Klip det citerede væk, du ikke besvarer
Besvar venligst under det citerede

Peter Lykkegaard (29-10-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 29-10-02 13:47

Som svar på skriblerier nedfældet af Snedker :

> Jeeee! Der mangler et mellemrum mellem mit From og Where clause.
>
>
Godt set

Hver eneste gang man snubler over en SQL statement der ikke _burde_ fejle,
så kan man få megen hjælp ved at have Profileren kørende, for opsnappe hvad
der bliver sendt til MSSQL

Skriv dette ti gange på en kridttavle hver aften før du går i seng, indtil
du starter Profileren per automatik, når du laver tests

mvh/Peter Lykkegaard



Snedker (29-10-2002)
Kommentar
Fra : Snedker


Dato : 29-10-02 13:50

On Tue, 29 Oct 2002 13:47:09 +0100, "Peter Lykkegaard"
<polonline@hot.mail.com> wrote:

>Hver eneste gang man snubler over en SQL statement der ikke _burde_ fejle,
>så kan man få megen hjælp ved at have Profileren kørende, for opsnappe hvad
>der bliver sendt til MSSQL

Ja - bortset fra at mit statement aldrig nåede frem til Profileren..?
Under hvilken event burde jeg se det? Jeg har alt under TSQL med...

mvh /Snedker
---
Klip det citerede væk, du ikke besvarer
Besvar venligst under det citerede

Peter Lykkegaard (29-10-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 29-10-02 14:36

Som svar på skriblerier nedfældet af Snedker :

> On Tue, 29 Oct 2002 13:47:09 +0100, "Peter Lykkegaard"
> <polonline@hot.mail.com> wrote:
>
>> Hver eneste gang man snubler over en SQL statement der ikke _burde_
>> fejle, så kan man få megen hjælp ved at have Profileren kørende, for
>> opsnappe hvad der bliver sendt til MSSQL
>
> Ja - bortset fra at mit statement aldrig nåede frem til Profileren..?
> Under hvilken event burde jeg se det? Jeg har alt under TSQL med...
>
Øhh, damn
Er det 7 eller 2K?
Og brugte du (profiler) wizarden, eller?
Kan du se andre statements fra din app?

Når du får den fejlmeddelsen du får, så burde du også se den i profileren
"før" den når MSSQL

mvh/Peter Lykkegaard




Snedker (29-10-2002)
Kommentar
Fra : Snedker


Dato : 29-10-02 19:35

On Tue, 29 Oct 2002 14:35:30 +0100, "Peter Lykkegaard"
<polonline@hot.mail.com> wrote:


>> Ja - bortset fra at mit statement aldrig nåede frem til Profileren..?
>> Under hvilken event burde jeg se det? Jeg har alt under TSQL med...
>>
>Øhh, damn
>Er det 7 eller 2K?
2K

>Og brugte du (profiler) wizarden, eller?
Jeps.
>Kan du se andre statements fra din app?
Jeps


>Når du får den fejlmeddelsen du får, så burde du også se den i profileren
>"før" den når MSSQL

Ja, det skulle jeg jo også mene..

mvh /snedker
---
Klip det citerede væk, du ikke besvarer
Besvar venligst under det citerede

Peter Lykkegaard (29-10-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 29-10-02 21:12

Som svar på skriblerier forfattet af Snedker

> On Tue, 29 Oct 2002 14:35:30 +0100, "Peter Lykkegaard"
> <polonline@hot.mail.com> wrote:
>
>> Når du får den fejlmeddelsen du får, så burde du også se den i
>> profileren "før" den når MSSQL
>
> Ja, det skulle jeg jo også mene..
>
Hmm, bruger ODBC eller OLEDB - eller?

mvh/Peter Lykkegaard



Stig Johansen (30-10-2002)
Kommentar
Fra : Stig Johansen


Dato : 30-10-02 05:21

Hej.

"Peter Lykkegaard" <polonline@hotmail.com> wrote in message
news:apmq2n$sof$1@sunsite.dk...
> Som svar på skriblerier forfattet af Snedker
>
> > On Tue, 29 Oct 2002 14:35:30 +0100, "Peter Lykkegaard"
> > <polonline@hot.mail.com> wrote:
> >
> >> Når du får den fejlmeddelsen du får, så burde du også se den i
> >> profileren "før" den når MSSQL

Profileren er en tilbagemelding fra serveren, ok IKKE en intercept fra
klient.
Som du skriver, er det et uvurderligt værktøj hvis man bruger M$ SQLServer,
men det er ikke et debugger værktøj.
Debug gøres ved at skrive statementet ud, og derefter kopiere det over i
Query Analyzer.

> > Ja, det skulle jeg jo også mene..
> >
> Hmm, bruger ODBC eller OLEDB - eller?

Not relevant, se ovenstående.

--

Med venlig hilsen/Best regards
Stig Johansen
Stig.Johansen@udvikling.it.dk
(remove dot dk)




Peter Lykkegaard (30-10-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 30-10-02 08:09

Som svar på skriblerier nedfældet af Stig Johansen :

> Profileren er en tilbagemelding fra serveren, ok IKKE en intercept fra
> klient.

Hmm, uanset hvor meget skod jeg laver i mine statements så kan jeg se dem i
profileren
Det kan også være at jeg husker totalt forkert og jeg henter SQL strengen
fra script debuggeren
Jeg vil lige prøve det af i løbet af i dag

> Som du skriver, er det et uvurderligt værktøj hvis man bruger M$
> SQLServer, men det er ikke et debugger værktøj.

Nej, det har jeg heller ikke påstået

> Debug gøres ved at skrive statementet ud, og derefter kopiere det
> over i Query Analyzer.
>
Jeps, jeg plejer at kopiere den fra Profileren eller Script Debuggerens
intermediate vindue

>>> Ja, det skulle jeg jo også mene..
>>>
>> Hmm, bruger ODBC eller OLEDB - eller?
>
> Not relevant, se ovenstående.
>
Hmmm, jeg tænkte at ODBC driveren måske returnede den fejl Snedker fik?
Anyway som sagt vil jeg lige prøve det af

mvh/Peter Lykkegaard



Peter Lykkegaard (30-10-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 30-10-02 21:38

Som svar på skriblerier forfattet af Stig Johansen

> Profileren er en tilbagemelding fra serveren, ok IKKE en intercept fra
> klient.
> Som du skriver, er det et uvurderligt værktøj hvis man bruger M$
> SQLServer, men det er ikke et debugger værktøj.
> Debug gøres ved at skrive statementet ud, og derefter kopiere det
> over i Query Analyzer.
>
Du kan faktisk snildt få mange af de informationer som QA tilbyder frem i
Profileren
Fx execution plans/statistics, tablescans, duration etc

Når du nu siger debugger er det så T-SQL Debuggeren i Visual Studio du
tænker på eller?

mvh/Peter Lykkegaard



Stig Johansen (31-10-2002)
Kommentar
Fra : Stig Johansen


Dato : 31-10-02 06:12

Hej.

Ja, det var måske lidt kort formuleret, men jeg havde lidt travlt.
Jeg prøver at uddybe lidt hvad tanken var.

"Peter Lykkegaard" <polonline@hotmail.com> wrote in message
news:appfvl$su3$1@sunsite.dk...
> Som svar på skriblerier forfattet af Stig Johansen
>
> > Profileren er en tilbagemelding fra serveren, ok IKKE en intercept fra
> > klient.

Dette var en hjælp til overblik til alle. Det var for at fortælle, at
profileren ikke nødvendigvis behøver at køre på samme klient.

> > Som du skriver, er det et uvurderligt værktøj hvis man bruger M$
> > SQLServer, men det er ikke et debugger værktøj.

Det her var for at give dig ret i, at det er et godt værktøj.

> > Debug gøres ved at skrive statementet ud, og derefter kopiere det
> > over i Query Analyzer.

Det her var i virkeligheden et råd til at gøre udviklingen nemmere. Hvis man
gør det under udviklingen, har man mulighed for løbende at checke sine
statements, men også kvalitetssikre sine svartider, evt. køre en index
analyse osv.

> Når du nu siger debugger er det så T-SQL Debuggeren i Visual Studio du
> tænker på eller?

Jeg tænkte debug som begreb.

--

Med venlig hilsen/Best regards
Stig Johansen
Stig.Johansen@udvikling.it.dk
(remove dot dk)




Peter Lykkegaard (31-10-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 31-10-02 08:04

Som svar på skriblerier nedfældet af Stig Johansen :

> Ja, det var måske lidt kort formuleret, men jeg havde lidt travlt.
> Jeg prøver at uddybe lidt hvad tanken var.



>
> "Peter Lykkegaard" <polonline@hotmail.com> wrote in message
> news:appfvl$su3$1@sunsite.dk...
>> Som svar på skriblerier forfattet af Stig Johansen
>>
>>> Profileren er en tilbagemelding fra serveren, ok IKKE en intercept
>>> fra klient.
>
> Dette var en hjælp til overblik til alle. Det var for at fortælle, at
> profileren ikke nødvendigvis behøver at køre på samme klient.
>
Ja det er korrekt
Profileren giver en hvis belastning på serveren
Kan være en fordel at køre den på en anden box, hvos/når serveren er ved at
dø pga tablescans og man har være et skodhoved
Liden tue kan vælte stort læs

>>> Debug gøres ved at skrive statementet ud, og derefter kopiere det
>>> over i Query Analyzer.
>
> Det her var i virkeligheden et råd til at gøre udviklingen nemmere.
> Hvis man gør det under udviklingen, har man mulighed for løbende at
> checke sine statements, men også kvalitetssikre sine svartider, evt.
> køre en index analyse osv.

Du kan køre få svartiderne direkte og lave indexanalyse i Profileren
Overtid kan man samle et load i profileren og laden den gnaske loadet
igennem efterfølgende
Det giver en mere præcis ananlyse end QA kan tilbyde - imho
>
>> Når du nu siger debugger er det så T-SQL Debuggeren i Visual Studio
>> du tænker på eller?
>
> Jeg tænkte debug som begreb.
>
Det er ikke lige det jeg forstår ved debugning
Ved debugning går man ind i sourcen og kan analysere/ændre værdier i
variabler etc

Her er print statements i øvrigt ganske gode - man skal bare huske at fjene
dem igen - ellers får man multiple recordsets i VB/ADO





Stig Johansen (01-11-2002)
Kommentar
Fra : Stig Johansen


Dato : 01-11-02 06:21

Hej.

"Peter Lykkegaard" <polonline@hot.mail.com> wrote in message
news:_y4w9.4$741.385@news.get2net.dk...
> > Jeg tænkte debug som begreb.
> >
> Det er ikke lige det jeg forstår ved debugning
> Ved debugning går man ind i sourcen og kan analysere/ændre værdier i
> variabler etc

Ja, eller man kan skrive variabler ud på stdout/stdlist osv..
Den kryptiske bemærkning gik ud på, at hvis man laver ordentlig kode, så har
man ikke brug for debugging.

--

Med venlig hilsen/Best regards
Stig Johansen
Stig.Johansen@udvikling.it.dk
(remove dot dk)




Peter Lykkegaard (30-10-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 30-10-02 21:27

Som svar på skriblerier forfattet af Snedker

> On Tue, 29 Oct 2002 13:47:09 +0100, "Peter Lykkegaard"
> <polonline@hot.mail.com> wrote:
>
>> Hver eneste gang man snubler over en SQL statement der ikke _burde_
>> fejle, så kan man få megen hjælp ved at have Profileren kørende, for
>> opsnappe hvad der bliver sendt til MSSQL
>
> Ja - bortset fra at mit statement aldrig nåede frem til Profileren..?
> Under hvilken event burde jeg se det? Jeg har alt under TSQL med...
>
Det er det event der hedder SQL:BatchStarting
Den kommer fint med når jeg lægger den (SQL-sætningen der fejl) ind i min
egen scriptkode
Det virker både fra QA og VBScript via OLEDB

Normalt bruger jeg den template der hedder SQLProfilerTSQL
Du skifter template i Tools -> Options -> General -> Template Name

Jeg sad lige og legede med de forskellige templates og oprettede bland andet
en ny, man kan fakstisk få Execution Plan og andre debuginformationer vist i
Profileren, cool

Indtil nu har jeg "bare" brugt den til at cache SQLstatements så jeg kan
arbejde videre med dem i QA

mvh/Peter Lykkegaard



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

Månedens bedste
Årets bedste
Sidste års bedste