这段代码不起作用(我从另一个问题得到这个),因为它的参数太少:sqldirect需要一个处理程序和一个长度。
我从高层次上知道句柄是什么,但我只在准备和绑定(bind)语句时看到它们,而不仅仅是像这样直接执行一次的语句。我正在学习 SQL,我发现所有这些都非常令人困惑。
有人可以解释如何为这段代码创建句柄,并可能指导我阅读一本好的 SQL 书籍或学习资源吗?很难在网上找到我可以关注的任何信息。
for (n = 0; n < 10000; n++) {
char sql[1000];
sprintf(sql, "insert into mytable (cola, colb) values(%d,%d)", n, n);
SQLExecDirect(sql);
}
编辑:哎呀..我想我修复了我发布的代码中的错误。这个问题假设 sprintf 行没有缺少参数:
for (n = 0; n < 10000; n++) {
char sql[1000];
sprintf(sql, "insert into mytable (cola, colb) values(%d,%d)", n, n);
SQLExecDirect(sql);
}
最佳答案
正如 @DanielE 所指出的,您忘记了 sprintf
的第一个参数,无论如何,这在 for
循环中更合适:
SQLPrepare("insert into mytable (cola, colb) values(?,?);");
for (n = 0; n < 10000; n++) {
SQLBindParameter(1, n);
SQLBindParameter(2, n);
SQLExecute;
}
关于SQL 句柄以及如何正确创建一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25451325/