首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreeTDS中的@variables

FreeTDS中的@variables
EN

Stack Overflow用户
提问于 2012-06-02 19:32:54
回答 1查看 559关注 0票数 0

我正在尝试一个快速的原型-移植一些旧的数据库代码来使用FreeTDS库。目前,我正在查看类似于以下内容的查询

代码语言:javascript
复制
SELECT x,y,z from MyTable WHERE id = @arg1

当我执行查询时,我自然会得到像Must declare the scalar variable "@arg1".这样的错误

但有一件事我没有意识到。我如何声明这个变量?我一遍又一遍地看着API docs and code examples,似乎找不到如何解决这个本应微不足道的任务。

我目前使用的代码是:

代码语言:javascript
复制
if(dbcmd(proc, "SELECT x,y,z from MyTable WHERE id = @arg1") != SUCCEED) {
  return fail("Failed to dbcmd()"); 
}

if(dbsqlexec(proc) != SUCCEED) {
  return fail("Failed to dbsqlexec()");
}

while((retcode=dbresults(proc)) == SUCCEED) {
  while(dbnextrow(proc) != NO_MORE_ROWS) {
    int len = dbdatlen(proc, 1);
    char* data = (char*)dbdata(proc, 1);
    cout << string(data, len) << endl;
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-03 06:07:21

您可以尝试“声明@MyVariable int”或"@arg1",OleDbType.Integer“在您的dbcmd(proc,"SELECT .....”)后添加为dbcmd(dbproc,"HERE“);

代码语言:javascript
复制
dbcmd(dbproc,"SELECT x,y,z from MyTable WHERE id = @arg1");
dbcmd(dbproc, "DECLARE @arg1 int" );

我不认为有任何API,但是我确信这是你可以使用它的方式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10861958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档