我的 executeQueries.ec 文件中有这段代码
sprintf(sqlQuery,
"select distinct e.emp_id, e.join_date \
from employees e
where e.emp_id in (?) and e.dob <= '%s')");
$prepare empDataStmt from $sqlQuery;
if (sqlca.sqlcode)
{
fprintf(stderr, "Error %d in prepare empDataStmt%s\n",
sqlca.sqlcode, sqlQuery);
return 0;
}
$declare empDataCursor cursor for incptDatesStmt;
if (pcs_sql_check("Error in declaring empDataCursor Stmt"))
{
return 1;
}
$open empDataCursor using $empIds_,dob_ ;
当我 dbx 代码和 printempIds_
时,我在控制台上得到了这个:
""04-Emp1","W2-Emp2""
这意味着 empIds_ 的内容是"04-Emp1","W2-Emp2"
(包括引号)。问题是数量empIds
可以是 1 到 100 或 500 之间的任何值。例如,它甚至可以是:
"04-Emp1","W2-Emp2","04-Emp4","W2-Emp3","0A-Emp1","E2-Emp7"
因此,我无法让我的代码工作。任何人都可以帮助我使用“?”来编写这段代码。对于可以处理任意数量的参数化查询empIds
。请注意,empIds_ 的内容将始终嵌入双引号。我不知道这是好事还是坏事,但我不能做任何事情来阻止它。