[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 558
  • Last Modified:

TSQL Delphi query get parameter error when where containing " and % BOTH characters

select * from table_name where colname like ('%" :%')

getting error : no value for parameter '%')

paramcheck is disabled, but not helps
0
RT_
Asked:
RT_
  • 3
  • 3
1 Solution
 
ste5anSenior DeveloperCommented:
What chars are you looking for? How does the condition looks like in SSMS?

Keep in mind that ' and " need to be escaped. E.g.

Condition := 'WHERE colname LIKE ''%:%''';

Open in new window

0
 
RT_Author Commented:
here are the string, that i am searcing for :

ACER monitor AL1512 15" 1024*768, 400:1 kontrasztarány, 350cd/m2 - használt

but on insert statement, the problem is the same.

When i'll cut the " or the :  chars, the query is working.

The database is on Mysql.
0
 
ste5anSenior DeveloperCommented:
Yup, the single quotation mark is the Pascal string delimiter and the colon is the indicator for a parameter (haven't seen this either in your first post).

The single quotation mark must be doubled to be escaped. The colon needs that you set it by a string variable:

SqlStatement := 'SELECT * FROM table_name WHERE colname LIKE ( ''%":%'');';
AdoDataSet.ParamCheck := False;
AdoDataSet.CommandText := SqlStatement;
AdoDataSet..Open;

Open in new window


The order of ParamChek and the CommandText assignement is necessary to make it work.
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
RT_Author Commented:
here is the exact code, the double quotation is there but, still the no value for parameter 1


f_DataModule.MSHQms_fotabla_v.SQL.Text := 'select * from ms_raktar where megjegyzes like (''%ACER monitor AL1512 15" 1024*768, 400:1 kontrasztarány, 350cd/m2 - használt%'');';

f_DataModule.MSHQms_fotabla_v.ParamCheck := False;
f_DataModule.MSHQms_fotabla_v.Open;
0
 
ste5anSenior DeveloperCommented:
No, take a look at my sample again.

f_DataModule.MSHQms_fotabla_v.Close; // Just in case that not.
f_DataModule.MSHQms_fotabla_v.SQL.Clear;
f_DataModule.MSHQms_fotabla_v.ParamCheck := False;
f_DataModule.MSHQms_fotabla_v.SQL.Text := 'select * from ms_raktar where megjegyzes like (''%ACER monitor AL1512 15" 1024*768, 400:1 kontrasztarány, 350cd/m2 - használt%'');';
f_DataModule.MSHQms_fotabla_v.Open;

Open in new window

0
 
RT_Author Commented:
Thanks a lot, i have found the difference and now it works!
0

Featured Post

[Webinar] Kill tickets & tabs using PowerShell

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now