delphi操作access数据库怎样用参数传递字段名?
发布网友
发布时间:2022-04-10 21:59
我来回答
共3个回答
热心网友
时间:2022-04-10 23:28
拼SQL语句,然后在 TADOQuery或者TADODataSet中执行。例如:
strFieldNameList: array[0..10] of string;
strFieldValueList: array[0..10] of string;
for i := 0 to 10 do
begin
if strSQL = '' then
strSQL := Format('SET %s = %s', [strFieldNameList[i], strFieldValueList[i]])
else
strSQL := Format('%s, %s = %s', [strFieldNameList[i], strFieldValueList[i]]);
end;
strSQL := Format('UPDATE AlarmInfo %s WHERE 筛选条件', [strSQL]);
注意:
如果 strFieldNameList[i] 字段是一个字符串类型的,那么在给 strFieldValueList[i]赋值的时候一定要加QuotedStr() 函数,例如: strFieldValueList[2] := QuotedStr('ABC');
热心网友
时间:2022-04-11 00:46
你这种情况,变量要保存成哈希组, key=value 也可以用list。然后再通过for 循环生成 sql
这样造成核外操作及资源占用,你才10多个,建议还是手动写,如果,超过20,30了再采用
估计你是引号弄晕了,可以用qutoedstr(trim(edtAlarmName.Text));
热心网友
时间:2022-04-11 02:21
改成如下代码:
sqlstr := 'update '+AlarmXName+' set ‘+AlarmXName+' ='''+trim(edtAlarmName.Text)'''';