在 Smart Mobile Studio 的 sqlite INSERT 语句中使用参数?
Using params in a sqlite INSERT statement in Smart Mobile Studio?
我创建了以下数据库
SqlResult := fDataBase.Exec("CREATE TABLE workstations (workstation string, location string, userId string);");
如何在 sqlite INSERT 语句中使用参数。
例如,我假设它会是这样的
FDatabase.Exec("INSERT INTO workstations values(?,?,?);", [AWorkstation, ALocation, AUserId]);
但是,Exec 只需要一个字符串........所以我必须实际构建整个字符串以包含参数吗?
FDatabase.Exec("INSERT INTO workstations values( + AWorkstation + ',' + ALocation + ',' + AUserId +');" );
我问的原因是
TSQLiteDatabase 有一个 CreateStatement 函数 returns
TSQLiteStatementclass
其中有一个 SQL & 参数 属性
以及以下方法
准备
执行
发布
我不是调用数据库 exec,而是创建语句,分配 sql 和参数,然后执行吗?
例如
stm:= fDatabase.CreateStatement;
stm.SQL:= ?
stm.Params:= ?
stm.execute;
我什至尝试过
FDatabase.Exec('INSERT INTO workstations (workstation, location, userid) values(' + AWorkstation + ',' + ALocation + ',' + AUserId +');');
如果我对这些值进行硬编码,就可以了
FDatabase.Exec("INSERT INTO workstations (workstation, location, userid) values('WS0202', 'Maintenance', 'jdoe');");
但是,我需要能够使用参数
也试过格式化功能还是不行
FDatabase.Exec(Format("INSERT INTO workstations (workstation, location, userid) values(%s ,%s, %s );", [AWorkstation, ALocation, AUserId]));
FDatabase.Exec(Format("INSERT INTO workstations (workstation, location, userid) values('%s' ,'%s', '%s');", [AWorkstation, ALocation, AUserId]));
我创建了以下数据库
SqlResult := fDataBase.Exec("CREATE TABLE workstations (workstation string, location string, userId string);");
如何在 sqlite INSERT 语句中使用参数。
例如,我假设它会是这样的
FDatabase.Exec("INSERT INTO workstations values(?,?,?);", [AWorkstation, ALocation, AUserId]);
但是,Exec 只需要一个字符串........所以我必须实际构建整个字符串以包含参数吗?
FDatabase.Exec("INSERT INTO workstations values( + AWorkstation + ',' + ALocation + ',' + AUserId +');" );
我问的原因是
TSQLiteDatabase 有一个 CreateStatement 函数 returns
TSQLiteStatementclass
其中有一个 SQL & 参数 属性
以及以下方法
准备 执行 发布
我不是调用数据库 exec,而是创建语句,分配 sql 和参数,然后执行吗?
例如
stm:= fDatabase.CreateStatement;
stm.SQL:= ?
stm.Params:= ?
stm.execute;
我什至尝试过
FDatabase.Exec('INSERT INTO workstations (workstation, location, userid) values(' + AWorkstation + ',' + ALocation + ',' + AUserId +');');
如果我对这些值进行硬编码,就可以了
FDatabase.Exec("INSERT INTO workstations (workstation, location, userid) values('WS0202', 'Maintenance', 'jdoe');");
但是,我需要能够使用参数
也试过格式化功能还是不行
FDatabase.Exec(Format("INSERT INTO workstations (workstation, location, userid) values(%s ,%s, %s );", [AWorkstation, ALocation, AUserId]));
FDatabase.Exec(Format("INSERT INTO workstations (workstation, location, userid) values('%s' ,'%s', '%s');", [AWorkstation, ALocation, AUserId]));