Search code examples
delphidelphi-2010sybasedevartunidac

How to pass NULL value from Unidac Query component in Delphi?


When I am using StoredProc component in Delphi using ParamByname('ParamName').Clear I'm able to send NULL value.

But how can I pass NULL value when using a Query component?

with Query do
begin
 SQL.ADD('exec d_upd_calc'+Quoted(EditCalc.Text));
end

In the above scenario I want to send NULL if the edit box is blank.

I am using Delphi 2010, Unidac with Sybase.


Solution

  • Even in Queries you can work with parameters:

    Query.SQL.Text := 'exec d_upd_calc :myparam';
    Query.Prepare;
    Query.ParamByName('myparam').Clear;
    

    And it's better to use parameters than to build the complete string, because you must not handle quotes and avoid security leaks via SQL-injection.