{
if (bsi->bi->upper_func)
{
- bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,toupper(f->f_sub_initial->bv_val),NULL);
+ bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,ldap_pvt_str2upper(f->f_sub_initial->bv_val),NULL);
}
else
bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,f->f_sub_initial->bv_val,NULL);
//Debug(LDAP_DEBUG_TRACE,"==>backsql_process_sub_filter(): sub_any='%s'\n",f->f_sub_any[i]->bv_val,0,0);
if (bsi->bi->upper_func)
{
- bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,toupper(f->f_sub_any[i]->bv_val),"%",NULL);
+ bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,ldap_pvt_str2upper(f->f_sub_any[i]->bv_val),"%",NULL);
}
else
bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,f->f_sub_any[i]->bv_val,"%",NULL);
if (f->f_sub_final!=NULL)
if (bsi->bi->upper_func)
{
- bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,toupper(f->f_sub_final->bv_val),NULL);
+ bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,ldap_pvt_str2upper(f->f_sub_final->bv_val),NULL);
}
else
bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,f->f_sub_final->bv_val,NULL);
if (bsi->bi->upper_func)
bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,"(",
bsi->bi->upper_func,"(",at->sel_expr,")='",
- toupper(f->f_av_value->bv_val),"')",NULL);
+ ldap_pvt_str2upper(f->f_av_value->bv_val),"')",NULL);
else
bsi->flt_where=backsql_strcat(bsi->flt_where,&bsi->fwhere_len,"(",at->sel_expr,"='",
f->f_av_value->bv_val,"')",NULL);
bsi->sel_len=bsi->from_len=bsi->jwhere_len=bsi->fwhere_len=0;
bsi->sel=backsql_strcat(bsi->sel,&bsi->sel_len,
- "SELECT ldap_entries.id,",bsi->oc->keytbl,".",bsi->oc->keycol,
+ "SELECT DISTINCT ldap_entries.id,",bsi->oc->keytbl,".",bsi->oc->keycol,
", '",bsi->oc->name,"' AS objectClass",
", ldap_entries.dn AS dn",
NULL);
//Debug(LDAP_DEBUG_TRACE,"==>_SQLPrepare()\n", 0,0,0);
SQLGetInfo(dbh,SQL_DRIVER_NAME,drv_name,30,&len);
//Debug(LDAP_DEBUG_TRACE,"_SQLPrepare(): driver name='%s'\n", drv_name,0,0);
- for (i=0;i<30 && drv_name[i];i++)
- drv_name[i]=toupper(drv_name[i]);
- if (!strncmp(drv_name,"SQLSRV32.DLL",30))
+ if (!strncmp(ldap_pvt_str2upper(drv_name),"SQLSRV32.DLL",30))
{
//stupid default result set in MS SQL Server does not support multiple active statements
//on the same connection -- so we are trying to make it not to use default result set...