delphi 查询数据库如果sql语句很长怎么办
1个回答
展开全部
1.在数据库中字段内容巨大的时候,一般情况下是不能直接看到其内容的,只能选中打开才能看到。如果不是就不知道你是什么情况了。
2. 看到你的做法,想给你点建议。插入数据字字符字段的时候,由于字符内容不确定,可能含有特殊字符,如果采用
'insert into dbRevSms values(''' + edit1.Text + ''')'
这种使用各字符串拼装成一个大字符串的方法,然后用大字符串去提交给SQL解析,由于小字符串的内容不确定,可能造成SQL解析不正确,或者是造成不可预料的后果(极端情况下,例如数据库被删除等,与SQL注入式攻击类似)。
所以此类需要使用字符串变量的语句应该使用控件中提供的参数功能,如下所示
fQry.Close;
fQry.SQL.Clear;
fQry.SQL.Text := 'insert into dbRevSms values(:TemStr1)';
fQry.ParamCheck := True;
with fQry.Parameters.ParamByName('TemStr1') do
begin
DataType := ftString;
Value := '乱七八糟的内容等等';
end;
fQry.ExecSQL;
如此,不管你的字符串的内容到底是什么,都可以保证你要的插入功能正常执行。
2. 看到你的做法,想给你点建议。插入数据字字符字段的时候,由于字符内容不确定,可能含有特殊字符,如果采用
'insert into dbRevSms values(''' + edit1.Text + ''')'
这种使用各字符串拼装成一个大字符串的方法,然后用大字符串去提交给SQL解析,由于小字符串的内容不确定,可能造成SQL解析不正确,或者是造成不可预料的后果(极端情况下,例如数据库被删除等,与SQL注入式攻击类似)。
所以此类需要使用字符串变量的语句应该使用控件中提供的参数功能,如下所示
fQry.Close;
fQry.SQL.Clear;
fQry.SQL.Text := 'insert into dbRevSms values(:TemStr1)';
fQry.ParamCheck := True;
with fQry.Parameters.ParamByName('TemStr1') do
begin
DataType := ftString;
Value := '乱七八糟的内容等等';
end;
fQry.ExecSQL;
如此,不管你的字符串的内容到底是什么,都可以保证你要的插入功能正常执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询