问各位一个问题,我用c++ builder下的access数据库,想执行下面的语句,不知道在sql下如何引入参数,表达方法是否有问题?StrToDateTime(end_date)和StrToDateTime(start_date)是我程序中的参数ADODataSetClick->CommandText = "SELECT * FROM click_info WHERE add_date BETWEEN  +&StrToDateTime(start_date)&+ and +&StrToDateTime(end_date)&+";

解决方案 »

  1.   

    [code=C++][/ADODataSetClick->CommandText = "SELECT * FROM click_info WHERE add_date BETWEEN '#" +StrToDateTime(start_date)+ "#' and '#" + StrToDateTime(end_date)+ "#'"; code]
      

  2.   

    晕了,没搞好ADODataSetClick->CommandText = "SELECT * FROM click_info WHERE add_date BETWEEN '#" +StrToDateTime(start_date)+ "#' and '#" + StrToDateTime(end_date)+ "#'"; 
      

  3.   

    access中日期的要加#号不同类型有占区别的,比如数字的,你在sql语句里面不用单引号。这些是基础了可以的话就结贴吧:)
      

  4.   

    我的意思是对于不同类型的变量是否有不同的表达格式,比如我想尝试用一个字符串类型的变量,或者数字类型的变量比如:var_count = 5;
    var_string = "hello world";ADODataSetClick->CommandText = "SELECT * FROM click_info WHERE add_count = var_count";
    ADODataSetClick->CommandText = "SELECT * FROM click_info WHERE add_string = var_string";这个是我的本意想问的东西,可能我表达上有些模糊,本人是做通信设备嵌入式系统的,也算老程序员了,不过对于数据库想过的东西本来也不熟,这次只是偶尔帮人做点小东西所以才用到了delphi,还是希望JeffChung能够帮忙解答一下,我会很感激的,我分数不多,如果你要求更多分数的话当然我尽量满足要求。
      

  5.   

    你上面的把变量都写进双引号里面去了,它就会被当作是字符串了,所以是不对的。
    var_count = 5; 
    var_string = "hello world"; ADODataSetClick->CommandText = "SELECT * FROM click_info WHERE add_count = "+ var_count; 
    //SELECT * FROM click_info WHERE add_count = 5ADODataSetClick->CommandText = "SELECT * FROM click_info WHERE add_string = '"+ var_string +"'"; 
    //SELECT * FROM click_info WHERE add_string = 'hello world'