Avatar billede newbie_s Nybegynder
20. juli 2009 - 19:41 Der er 3 kommentarer og
1 løsning

Udtrækning af record i MS SQL

Hej

Jeg har en tabel med kun en række data. Lad os sige det drejer sig om fortløbende tal. Jeg tilgår DB via C++ object TADOQuery hvor der er en parameter defineret til output (outputVar, nvarchar(40) ), og afvikler min Query med execsql().

Det jeg gerne vil have er en tilfældig record fra min tabel, eller fx den første eller sidste. Fuldstændig lige meget hvilken det er.

Jeg forstillede mig i første omgang at bruge funktionerne LAST() eller FIRST() men de understøttes ikke.

Derefter har jeg forsøgt mig med TOP funktionen som følger:

MyList->Add("DECLARE @var1 nvarchar(40)");
MyList->Add("SELECT @var1 = 'SELECT TOP 1 col FROM table'");
MyList->Add("SET :outputVar = @var1"); 


osv.

Alternativt forsøgte jeg med følgende

MyList->Add("DECLARE @var1 nvarchar(40)");
MyList->Add("SELECT @var1 TOP 1 col FROM table");
MyList->Add("SET :outputVar = @var1");

hvilket gav en Exception....

Der anvendes Microsoft SQL server 2008

Kan nogen være behjælpelige?
Det skal lige siges at det er kun SQL syntaxen det er galt med. Der er fin forbindelse til databasen, da jeg sagtnes kan bruge flg SQL funktionaliteter SELECT, INSERT, UPDATE, CREATE TABLE, MIN(), MAX().

Måske et dårligt eksempel med at det er fortløbende tal der er i tabellen, da det egentlig er en tekst streng på 40 karakterer(incl \0) der hentes, derfor er nvarchar anvendt.
Avatar billede arne_v Ekspert
21. juli 2009 - 02:58 #1
SELECT TOP 1 * FROM tabel ORDER BY NEWID()

måske
Avatar billede newbie_s Nybegynder
11. august 2009 - 23:52 #2
ja det virker fint.

Smider du et svar
Avatar billede arne_v Ekspert
12. august 2009 - 00:43 #3
svar
Avatar billede arne_v Ekspert
22. august 2009 - 17:11 #4
Så mangler du bare at acceptere svaret.
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