my problem, concerning prepared statements in java:
select trackingid table trackingid = 5735053
trackingid integer column in database. whe change query to:
select trackingid table trackingid = '5735053'
it works fine converts automaticly. same goes query:
select trackingid table trackingid '%5735%'
this works fine , database finding results. in java want pass input value of user query. works string , statement not int:
string query = "select anystring table anystring ?"; connectdatabase(); pstmt = connection.preparestatement(query); pstmt.setstring(1, "%"+input+"%"); result = pstmt.executequery();
now want pass integer through statement , have tried many things 0 results. won't work:
string query = "select anyint table anyint ?"; connectdatabase(); pstmt = connection.preparestatement(query); pstmt.setstring(1, "%"+input+"%"); result = pstmt.executequery();
but if type query in database programm works fine , finding results. can me here?
you can cast field varchar: cast(anyint varchar)
. reason works literal sql server knows comparison between int , string , automatically coerce int string. when use parameter, parameter has same type column: int, value %<somenumber>%
not valid value (although i'm surprised don't exception).
another option might cast parameter: cast(? varchar)
. not 100% sure casting parameter supported sql server.
Comments
Post a Comment