[DAPUG] LocalSQL, SQLite og STRICT keyword

3 views
Skip to first unread message

Thomas Lassen

unread,
Feb 25, 2025, 5:04:56 AMFeb 25
to DAPUG
Hej

Vi har noget kode der afvikler SQLite kode via noget localSQL. Jeg har nu på den hårde måde konstateret at SQLite i udgangspunktet ikke har samme håndtering af aggregate functions i forbindelse med angivelse "group by" udtryk. Helt konkret er det ikke standard at man skal angive kolonner at gruppere efter.

Imidlertid kan jeg konstatere at hvis man arbejder med deciderede SQLite databaser, så kan man oprette tabeller med angivelse af keyword "STRICT", og så vil efterfølgende afviklinger af aggregate funktioner kræve af man gruppere på kolonner der ikke aggregeres over.

Nu til spørgsmålet: 

Når vi kører localSQL, ved en af jer om man kan give at vi gerne køre med brug af "STRICT"?

På forhånd tak.

Med venlig hilsen
Thomas Lassen

Thomas Nørskov Stoustrup

unread,
Feb 25, 2025, 5:55:03 AMFeb 25
to DAPUG

Hej Thomas

 

Jeg vil gerne prøve at hjælpe, men jeg forstår ikke dit problem. Så vidt jeg ved, tillader SQLite queries med aggregerede funktioner, som andre SQL-implementeringer ville afvise; fordi resultatet ikke er entydigt, så man skal passe på, hvad man beder SQLite om 😊

 

Kan du beskrive dine data, din query, hvilket resultat du forventer, og hvilket resultat du får i SQLite (i LocalSQL)?

 

Jeg har en gang eller to rapporteret fejl til Embarcadero i implementeringen af SQLite i FireDAC i forhold til SQLite’s egen dokumentation. Måske har du fundet endnu et tilfælde her.

 

Jeg benyttede LocalSQL for første gang for en måned siden, så min erfaring med det er begrænset. Jeg har en del erfaring med SQLites aggregerede funktioner, men ingen erfaring med andre databaser end SQLite, så jeg ved ikke, hvordan aggregerede funktioner ’normalt’ opfører sig.

 

Du har uden tvivl allerede læst dette (eller tilsvarende):

https://www.sqlitetutorial.net/sqlite-aggregate-functions/

 

Og afsnit 6 her:

https://www.sqlite.org/quirks.html#aggregate_queries_can_contain_non_aggregate_result_columns_that_are_not_in_the_group_by_clause

 

 

Vh

Thomas

 

 

 

Thomas Nørskov Stoustrup
Development Engineer, MSc

Delta Optical Thin Film A/S
Fremtidsvej 1

2970 Hørsholm
Denmark
Direct: +45 3029 1600

t...@deltaopticalthinfilm.com



Sign up for our newsletter.

LI-In-Bug.png

--
Du har modtaget denne besked, fordi du abonnerer på gruppen "DAPUG" i Google Grupper.
Hvis du vil ophæve abonnementet på denne gruppe og ikke længere modtage mails fra den, skal du sende en mail til dapug+un...@googlegroups.com.
Du kan se denne diskussion ved at gå til https://groups.google.com/d/msgid/dapug/CABUWFUJunLSFZ%2Bnrcd%2B_nNdqVLqWpD4gYO_-n%3DKmJ%2B3K7rRsRA%40mail.gmail.com.

Thomas Lassen

unread,
Feb 27, 2025, 1:44:34 AMFeb 27
to Thomas Nørskov Stoustrup, DAPUG
Hej Thomas

Din indledende sætning viser at du 100% har forstået mit problem, det er netop problemet i afsnit 6 i det sidste link jeg gerne vil til livs. Bruger man en SQLite database kan man oprette tabeller og markere dem "STRICT", men det er ikke vores situation. Vi vil gerne bare afvikle noget SQLite kode imod data vi har liggende i vores program.

Med venlig hilsen
Thomas

Reply all
Reply to author
Forward
0 new messages