Zvláštní chování při použití TOP 1 v SQL dotazu

V tomto fóru můžete hlásit nalezené chyby, dávat návrhy na vylepšení vývojářům PROMOTIC SCADA software a vkládat ostatní témata.

Zvláštní chování při použití TOP 1 v SQL dotazu

Postby SILL » Thu 27. Mar 2025 22:02:33

Dobrý den,

při použití PmaDatabase (ODBC) používám pro Open() sql dotaz "SELECT TOP 1 * ... ". Když podmínce vyhovuje jediný výsledek tak je vše v pořádku, ale jakmile podmínce vyhovuje více výsledků, tak je z nějakého důvodu vráceno více řádků, ale ve všech je stejný řádek. Jakmile při testování TOP 1 zruším, tak už řádky jsou vráceny správně.

Je toto chování s TOP 1 správné? Použit je SQL Server a Promotic 9.0.29.

S pozdravem,
Libor
SILL
 
Posts: 39
Joined: Wed 24. Aug 2016 19:19:16

Re: Zvláštní chování při použití TOP 1 v SQL dotazu

Postby Tomáš Bräuer » Mon 31. Mar 2025 6:57:14

Dobrý den,
to podle mne není správně. Pro MSSQL Server příkaz SELECT TOP 1 ... určitě má vracet jeden záznam, pokud jde o jednoduchou tabulku, není to uložená procedura, trigger atd. Zkoušel jste to v sql konzoli, nebo management studiu nebo v našem PmDbAdmin.chm? Osobně jsem se stím nikdy nesetkal, nejsem ale specialista MS SQL.

PmaDatabase už roky nepoužíváme, takže těžkou odhadnout. U PmaDatabase bývala volba PassThrough , která pouštěla SQL command do cílové databáze, jinak to zpracovávalo DAO přímo. Tzn pokud šel dotaz skrze DAO engine, potom tomu TOP 1 nerozumí, protože se to týká jenom MS SQL. Jiné Db to mají jinak. Už je to 10 let, co jsem se setkal s PmaDatabase, opravdu nevím.
Tomáš Bräuer
Administrátor
 
Posts: 168
Joined: Thu 13. Dec 2012 9:13:13


Return to Hlášení chyb, návrhy na vylepšení, ostatní...

Who is online

Users browsing this forum: No registered users and 4 guests

cron