アプリケーションが生成する特定の値のプレースホルダーを使用してSQL文字列をユーザーが入力できるようにするアプリケーションがあります。アプリケーションはプレースホルダーを値に置き換え、さまざまなデータベースバックエンドを介してSQL文字列を実行します。
ODBCバックエンドの場合、SQL strinでSQLExecDirect()を呼び出します。これは、通常のクエリではうまく機能しますが、パラメーターを使用するストアドプロシージャでは失敗します。
このメカニズムを拡張してストアドプロシージャをサポートする簡単な方法はありますか?SQLをどのように書く必要があるか?
私が今考えることができる唯一のことは、SQL文字列の解析を開始し、「呼び出し」が含まれている場合はSQLBindParameter()をn回呼び出すことです。ただし、SQLの解析には注意が必要です。
何か案は ?
動作するSQLの例:SELECT columnA from foo where columnB ='%placeholder'
動作しないSQL:CALL StoredFoo('%placeholder')