Notifications, Params and Float

Discussion of open issues, suggestions and bugs regarding SDAC (SQL Server Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
LHSoft
Posts: 130
Joined: Sat 18 Aug 2012 08:33

Notifications, Params and Float

Post by LHSoft » Sun 26 Feb 2017 11:35

Hello,
I'm using notification an a table without problems as long as passing normal SQL-Where Strings.
But if using Params on a float field there is a notification error:
SQLMonitor without params (without error):

Code: Select all

IF NOT EXISTS (SELECT * FROM sys.service_queues WHERE name = 'SDAC_NS_51_QUEUE') CREATE QUEUE SDAC_NS_51_QUEUE
IF NOT EXISTS (SELECT * FROM sys.services WHERE name = 'SDAC_NS_51') CREATE SERVICE SDAC_NS_51 ON QUEUE SDAC_NS_51_QUEUE([http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification])
SELECT q.name FROM sys.service_queues q, sys.services s WHERE (s.service_queue_id = q.object_id) AND (s.name = 'SDAC_NS_51')

select Kundennummer,Kundenkarte,Kategorie,Titel,Vorname,Name,Zusatz,Strasse,PLZ,Ort,Landkreis,Bundesland,Land,Telefon,Telefon2,Email,Geburtstag,Tag,Monat,Suchbegriff,weiblich,AutoAnrede,BriefAnrede,Rabatt,Festrabatt,Valuta1,Valuta2,Gutschrift,GutschriftBefristet,AblaufGutschriftBefristet,GutschriftGeburtstag,AblaufGutschriftGeburtstag,GutschriftBonus,AblaufGutschriftBonus,Bank,BLZ,Kontoinhaber,Kontonummer,IBAN,BIC,Rechnungskauf,Newsletter,Briefe,Gutscheinbriefe,Bonusbriefe,Geburtstagsbriefe,gesperrt,Stichwort1,Stichwort2,Stichwort3,Stichwort4,FilKZs,Erfassung,letzteBearbeitung,letzterOnlineAbgleich,letzterKassenAbgleich,Kennzeichen,KennzeichenOLS,Sprache,UID,VersandAdressen,Infos,History,oldOLSBools from dbo.MoStmKun
WHERE GutschriftBonus=0

/* Check connection */

select Kundennummer,Kundenkarte,Kategorie,Titel,Vorname,Name,Zusatz,Strasse,PLZ,Ort,Landkreis,Bundesland,Land,Telefon,Telefon2,Email,Geburtstag,Tag,Monat,Suchbegriff,weiblich,AutoAnrede,BriefAnrede,Rabatt,Festrabatt,Valuta1,Valuta2,Gutschrift,GutschriftBefristet,AblaufGutschriftBefristet,GutschriftGeburtstag,AblaufGutschriftGeburtstag,GutschriftBonus,AblaufGutschriftBonus,Bank,BLZ,Kontoinhaber,Kontonummer,IBAN,BIC,Rechnungskauf,Newsletter,Briefe,Gutscheinbriefe,Bonusbriefe,Geburtstagsbriefe,gesperrt,Stichwort1,Stichwort2,Stichwort3,Stichwort4,FilKZs,Erfassung,letzteBearbeitung,letzterOnlineAbgleich,letzterKassenAbgleich,Kennzeichen,KennzeichenOLS,Sprache,UID,VersandAdressen,Infos,History,oldOLSBools from dbo.MoStmKun
WHERE GutschriftBonus=0

Object destroyed: TMSSQL ($0DE414C0)

Connect: sa@SQLModeMain

WAITFOR (RECEIVE message_body, status, queuing_order, conversation_group_id, conversation_handle, message_sequence_number, service_contract_name, service_contract_id, message_type_name, message_type_id, validation FROM SDAC_NS_51_QUEUE), TIMEOUT 2147483647

SELECT * FROM MoKonKunKat
SQLMonitor with params (and Error):

Code: Select all

IF NOT EXISTS (SELECT * FROM sys.service_queues WHERE name = 'SDAC_NS_51_QUEUE') CREATE QUEUE SDAC_NS_51_QUEUE
IF NOT EXISTS (SELECT * FROM sys.services WHERE name = 'SDAC_NS_51') CREATE SERVICE SDAC_NS_51 ON QUEUE SDAC_NS_51_QUEUE([http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification])
SELECT q.name FROM sys.service_queues q, sys.services s WHERE (s.service_queue_id = q.object_id) AND (s.name = 'SDAC_NS_51')

select Kundennummer,Kundenkarte,Kategorie,Titel,Vorname,Name,Zusatz,Strasse,PLZ,Ort,Landkreis,Bundesland,Land,Telefon,Telefon2,Email,Geburtstag,Tag,Monat,Suchbegriff,weiblich,AutoAnrede,BriefAnrede,Rabatt,Festrabatt,Valuta1,Valuta2,Gutschrift,GutschriftBefristet,AblaufGutschriftBefristet,GutschriftGeburtstag,AblaufGutschriftGeburtstag,GutschriftBonus,AblaufGutschriftBonus,Bank,BLZ,Kontoinhaber,Kontonummer,IBAN,BIC,Rechnungskauf,Newsletter,Briefe,Gutscheinbriefe,Bonusbriefe,Geburtstagsbriefe,gesperrt,Stichwort1,Stichwort2,Stichwort3,Stichwort4,FilKZs,Erfassung,letzteBearbeitung,letzterOnlineAbgleich,letzterKassenAbgleich,Kennzeichen,KennzeichenOLS,Sprache,UID,VersandAdressen,Infos,History,oldOLSBools from dbo.MoStmKun
WHERE GutschriftBonus=:GutschriftBonus1
:GutschriftBonus1(Float)=0

/* Check connection */

select Kundennummer,Kundenkarte,Kategorie,Titel,Vorname,Name,Zusatz,Strasse,PLZ,Ort,Landkreis,Bundesland,Land,Telefon,Telefon2,Email,Geburtstag,Tag,Monat,Suchbegriff,weiblich,AutoAnrede,BriefAnrede,Rabatt,Festrabatt,Valuta1,Valuta2,Gutschrift,GutschriftBefristet,AblaufGutschriftBefristet,GutschriftGeburtstag,AblaufGutschriftGeburtstag,GutschriftBonus,AblaufGutschriftBonus,Bank,BLZ,Kontoinhaber,Kontonummer,IBAN,BIC,Rechnungskauf,Newsletter,Briefe,Gutscheinbriefe,Bonusbriefe,Geburtstagsbriefe,gesperrt,Stichwort1,Stichwort2,Stichwort3,Stichwort4,FilKZs,Erfassung,letzteBearbeitung,letzterOnlineAbgleich,letzterKassenAbgleich,Kennzeichen,KennzeichenOLS,Sprache,UID,VersandAdressen,Infos,History,oldOLSBools from dbo.MoStmKun
WHERE GutschriftBonus=:GutschriftBonus1
:GutschriftBonus1(Float)=0

Object destroyed: TMSSQL ($0E0EB400)
 
Connect: sa@SQLModeMain
 
WAITFOR (RECEIVE message_body, status, queuing_order, conversation_group_id, conversation_handle, message_sequence_number, service_contract_name, service_contract_id, message_type_name, message_type_id, validation FROM SDAC_NS_51_QUEUE), TIMEOUT 2147483647
 
WAITFOR (RECEIVE message_body, status, queuing_order, conversation_group_id, conversation_handle, message_sequence_number, service_contract_name, service_contract_id, message_type_name, message_type_id, validation FROM SDAC_NS_51_QUEUE), TIMEOUT 2147483647

Statement does not support notifications

EDatabaseError
EDatabaseError

SELECT * FROM MoKonKunKat
This only happens when having a Float-Field in Where Statement.
All other fields work fine with params.

Can you see an error on my side?

best regards
Hans

ViktorV
Devart Team
Posts: 3168
Joined: Wed 30 Jul 2014 07:16

Re: Notifications, Params and Float

Post by ViktorV » Mon 27 Feb 2017 12:55

You get this error due to the fact that you are using an unsupported SELECT statement: https://technet.microsoft.com/en-us/lib ... .105).aspx (The statement must not have comparison or expression based on double/real).

Post Reply