Udtrækning af record i MS SQL
HejJeg 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.