FreeTDSライブラリを使用するために、古いデータベースコードの簡単なプロトタイプポートを試しています。現在、私は次のようなクエリを見ています
SELECT x,y,z from MyTable WHERE id = @arg1
クエリを実行すると、当然、次のようなエラーが発生します。Must declare the scalar variable "@arg1".
しかし、1つのことが私にはわかりません。この変数を宣言するにはどうすればよいですか?APIドキュメントとコード例を何度も調べましたが、この些細なタスクを解決する方法が見つからないようです。
私が現在使用しているコードは次のとおりです。
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;
}
}