私はあなたがsqliteのINSERT文でのparamsを使用するにはどうすればよい次のデータベースSmart Mobile Studioのsqlite INSERTステートメントでparamsを使用しますか?
SqlResult := fDataBase.Exec("CREATE TABLE workstations (workstation string, location string, userId string);");
を作成しました。
は例えば、私はそのような
FDatabase.Exec("INSERT INTO workstations values(?,?,?);", [AWorkstation, ALocation, AUserId]);
ようなものになるだろうと仮定しかし、Execは文字列のみを取る........ので、私は実際に含まれるように、文字列全体を構築する必要がありますパラーム?私が尋ねる
FDatabase.Exec("INSERT INTO workstations values(+ AWorkstation + ',' + ALocation + ',' + AUserId +');");
理由は、
TSQLiteDatabaseが
TSQLiteStatementクラスSQL & Paramsプロパティ
を持って
と次に返すのcreateStatement機能を有していることですメソッド
は、私が代わりにデータベースexecを呼び出すので、私は代わりに、のcreateStatementを行うSQLとのparamsを割り当て、その後、実行しますか? リリース
を実行する準備
stm:= fDatabase.CreateStatement;
stm.SQL:= ?
stm.Params:= ?
stm.execute;
は、私も、私は値をハードコードした場合、これは
FDatabase.Exec("INSERT INTO workstations (workstation, location, userid) values('WS0202', 'Maintenance', 'jdoe');");
を動作しますが、
もそれを試してみましたPARAMS私が使用できるようにする必要が
FDatabase.Exec('INSERT INTO workstations (workstation, location, userid) values(' + AWorkstation + ',' + ALocation + ',' + AUserId +');');
を試してみましたフォーマット機能を使用しても動作しません。
FDatabase.Exec(Format("INSERT INTO workstations (workstation, location, userid) values(%s ,%s, %s);", [AWorkstation, ALocation, AUserId]));