Avatar billede totalpc Seniormester
21. januar 2011 - 14:40 Der er 7 kommentarer og
1 løsning

Select statement

Hej

Jeg har importeret min access base i min nye SQL 2008 express base.

Før brugte jeg :
strSQL1 = "SELECT count(*) as antal1 FROM [Log] where dato=#" & dato_new &"# and logtype='visit'"

i mit scritp, men det giver en fejl:
Microsoft SQL Server Native Client 10.0 fejl '80040e14'

Incorrect syntax near '#'.

Så vidt jeg husker er der noget specielt med dato og access, men hvordan skal ovenstående omskrives når den skal fyres af mod SQL ?
Avatar billede arne_v Ekspert
21. januar 2011 - 15:08 #1
... WHERE dato = CAST('" & datoiyyyymmddformat & "' AS DATE)"
Avatar billede arne_v Ekspert
21. januar 2011 - 15:08 #2
eller langt bedre: brug parameters
Avatar billede totalpc Seniormester
21. januar 2011 - 19:53 #3
Tak det virker fint, læg et svar!
Kan du give et eksempel på parametre brugen?
Avatar billede arne_v Ekspert
21. januar 2011 - 19:57 #4
svar
Avatar billede arne_v Ekspert
21. januar 2011 - 19:57 #5
et ASP eksempel?
Avatar billede totalpc Seniormester
21. januar 2011 - 20:15 #6
Ja classic ASP hvis du gider/kan :)
Avatar billede arne_v Ekspert
21. januar 2011 - 22:27 #7
INSERT eksempel:

Set cmd = Server.CreateObject("ADODB.Command")
cmd.ActiveConnection = con
cmd.CommandText = "INSERT INTO params(id,tid) VALUES(@id,@tid)"
cmd.Parameters.Append(cmd.CreateParameter("@id", adInteger, adParamInput))
cmd.Parameters.Append(cmd.CreateParameter("@tid", adDate, adParamInput))
cmd.Parameters("@id") = 3
cmd.Parameters("@tid") = CDate("9-JUN-2005")
cmd.Execute

tricket er at du assigner en Date til parameteren og ADO så sørger for at få den korrekt over til databasen.
Avatar billede hrc Mester
22. januar 2011 - 07:18 #8
En anden fordel (som jeg lærte af en Miracle-fyr) var, at blev scriptet brugt mange gange, så ville MSSQL kun oprette én execution plan for den parameteriserede select mens den ville oprette en for hver af de hårdkodede. Det er betyder altså også mindre arbejde for serveren.
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
Computerworld tilbyder specialiserede kurser i database-management

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