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