sql server - Inconsistency between two apparently identical SQL commands running through ASP -
i have large database system in sql server 2012 , front end interface written in asp. users can query database , have dictionary pick typos , alternate spellings.
historically users have single word search, or multi word , or or search. have finished writing exact multi-word search, , search includes multiple variations dictionary.
in examples below searching therefore "stroke unit" or "storke unit" in various fields. note working version text cut , pasted output non-working version, , not present. apologies length of statements, have lot of fields search. , and or searches have longer statements have never had problem them.
i have absolutely no idea why 1 version works , other doesn't, grateful tips. (i don't have error checking every line of connection statement, hoping might appear)
my code currently
err.clear lineout("version 1: not working") session("version1")="insert dbo.temp_rct_existing_results "+session("doris_rct_sel")+session("doris_rct_from2")+" order acronym, year desc, authors, title" lineout("<br>-<br>["+session("version1")+"]") set conn =server.createobject("adodb.connection") lineout("error number on create ="+cstr(err.number)) conn.open adserverlocn lineout("error number on open="+cstr(err.number)) conn.execute session("version1") lineout("error number on execute="+cstr(err.number)) conn.close set conn=nothing lineout("<br>-<br>version 2: working") session("version2")="select distinct ref.ref_id refid, ref.ref_ltitle title, ref.ref_authrs authors, ref.ref_year year, study.st_acronym acronym, ref.ref_citation citation,ref.ref_url,ref.ref_pubid, study.st_intdtls studydets, study.st_isrctn ,study.st_nct, study.st_registers,study.st_ukcrn,study.st_name,study.st_sysrev,study.st_status,ref.ref_doris_order, 'bob2' belongsto,st_doi, '2016-11-08' searchdate, study.st_size, ref_ortitl otitle interv inner join st_int on interv.int_id = st_int.[int] inner join study on st_int.st = study.study_id inner join ref_st on study.study_id = ref_st.st inner join ref on ref_st.ref = ref.ref_id study.st_confid='open' , ref.ref_pubsta='published' , (((ref.ref_ltitle '%stroke unit %' or study.st_intdtls '%stroke unit %' or interv.int_method '%stroke unit %' or interv.int_code1 '%stroke unit %' or interv.int_code2 '%stroke unit %' or interv.int_code3 '%stroke unit %' or interv.int_code4 '%stroke unit %' or interv.int_disease '%stroke unit %' or interv.int_condition '%stroke unit %')) or ((ref.ref_ltitle '%storke unit %' or study.st_intdtls '%storke unit %' or interv.int_method '%storke unit %' or interv.int_code1 '%storke unit %' or interv.int_code2 '%storke unit %' or interv.int_code3 '%storke unit %' or interv.int_code4 '%storke unit %' or interv.int_disease '%storke unit %' or interv.int_condition '%storke unit %'))) , (study.st_sysrev='-') , (study.st_status='completed')" session("version2")="insert dbo.temp_rct_existing_results "+session("version2")+" order acronym, year desc, authors, title" lineout("<br>-<br>["+session("version2")+"]") set conn =server.createobject("adodb.connection") conn.open adserverlocn conn.execute session("version2") conn.close set conn=nothing
the output is
version 1: not working
insert dbo.temp_rct_existing_results select distinct ref.ref_id refid, ref.ref_ltitle title, ref.ref_authrs authors, ref.ref_year year, study.st_acronym acronym, ref.ref_citation citation, ref.ref_url, ref.ref_pubid, study.st_intdtls studydets, study.st_isrctn, study.st_nct, study.st_registers, study.st_ukcrn, study.st_name, study.st_sysrev, study.st_status, ref.ref_doris_order, 'bob' belongsto, st_doi, '2016-11-08' searchdate, study.st_size, ref_ortitl otitle interv inner join st_int on interv.int_id = st_int.[int] inner join study on st_int.st = study.study_id inner join ref_st on study.study_id = ref_st.st inner join ref on ref_st.ref = ref.ref_id study.st_confid = 'open' , ref.ref_pubsta = 'published' , ( (( ref.ref_ltitle '%stroke unit %' or study.st_intdtls '%stroke unit %' or interv.int_method '%stroke unit %' or interv.int_code1 '%stroke unit %' or interv.int_code2 '%stroke unit %' or interv.int_code3 '%stroke unit %' or interv.int_code4 '%stroke unit %' or interv.int_disease '%stroke unit %' or interv.int_condition '%stroke unit %' )) or (( ref.ref_ltitle '%storke unit %' or study.st_intdtls '%storke unit %' or interv.int_method '%storke unit %' or interv.int_code1 '%storke unit %' or interv.int_code2 '%storke unit %' or interv.int_code3 '%storke unit %' or interv.int_code4 '%storke unit %' or interv.int_disease '%storke unit %' or interv.int_condition '%storke unit %' )) ) , ( study.st_sysrev = '-' ) , ( study.st_status = 'completed' ) order acronym, year desc, authors, title
error number on create =0
error number on open=0
error number on execute=0
version 2: working
insert dbo.temp_rct_existing_results select distinct ref.ref_id refid, ref.ref_ltitle title, ref.ref_authrs authors, ref.ref_year year, study.st_acronym acronym, ref.ref_citation citation, ref.ref_url, ref.ref_pubid, study.st_intdtls studydets, study.st_isrctn, study.st_nct, study.st_registers, study.st_ukcrn, study.st_name, study.st_sysrev, study.st_status, ref.ref_doris_order, 'bob2' belongsto, st_doi, '2016-11-08' searchdate, study.st_size, ref_ortitl otitle interv inner join st_int on interv.int_id = st_int.[int] inner join study on st_int.st = study.study_id inner join ref_st on study.study_id = ref_st.st inner join ref on ref_st.ref = ref.ref_id study.st_confid = 'open' , ref.ref_pubsta = 'published' , ( (( ref.ref_ltitle '%stroke unit %' or study.st_intdtls '%stroke unit %' or interv.int_method '%stroke unit %' or interv.int_code1 '%stroke unit %' or interv.int_code2 '%stroke unit %' or interv.int_code3 '%stroke unit %' or interv.int_code4 '%stroke unit %' or interv.int_disease '%stroke unit %' or interv.int_condition '%stroke unit %' )) or (( ref.ref_ltitle '%storke unit %' or study.st_intdtls '%storke unit %' or interv.int_method '%storke unit %' or interv.int_code1 '%storke unit %' or interv.int_code2 '%storke unit %' or interv.int_code3 '%storke unit %' or interv.int_code4 '%storke unit %' or interv.int_disease '%storke unit %' or interv.int_condition '%storke unit %' )) ) , ( study.st_sysrev = '-' ) , ( study.st_status = 'completed' ) order acronym, year desc, authors, title
if cut , and post non-working version sql server management studio, works perfectly. have swapped order of working , non-working versions see if makes difference.
many in advance.
Comments
Post a Comment